frp内网穿透是通过一个带有公网IP的服务器进行中转,对被控主机实现反向代理,用户通过访问frps(中转服务器)来实现对frpc(被控主机)的远程访问。
frp项目地址:https://github.com/fatedier/frp
本人环境以腾讯云服务器作为中转机,中转服务器使用Centos7.6 64位,被控主机使用Centos7.6 64位,用户使用Windows10。
frps中转服务器配置
登录你的腾讯云或阿里云服务器:
1、下载frp 放到你的服务器根目录下面
在一台有公网IP且有域名的主机上配置frps,我这里以腾讯云Centos7.x主机为例,依次执行以下命令:
tar xf frp_0.29.1_linux_amd64.tar.gz
mv frp_0.29.1_linux_amd64 /usr/local
cd /usr/local/frp_0.29.1_linux_amd64
rm -f frpc*
2、配置frps,执行命令:
vi frps.ini
内容填入:(注意服务器上这些个端口都要放行否则不能工作)
[common]
bind_port = 5443 #控制通信端口
vhost_http_port = 8081 #web端口
dashboard_user = 用户名 #frp控制面板用户名
dashboard_pwd = 密码 #frp控制面板密码
dashboard_port = 6443 #frp控制面板端口
3、启动frps 执行命令:启动服务./frps -c ./frps.ini,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini
配置启动服务
vi /etc/systemd/system/frps.service
填入以下内容:
[Unit]
Description=frps daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frp_0.29.1_linux_amd64/frps -c /usr/local/frp_0.29.1_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
执行命令:
systemctl enable frps
systemctl start frps
重启命令:systemctl restart frps
4、访问监控平台
http://公网IP:6443
输入帐户密码
如果访问不了,请使用ss -lnt命令检查端口是否启动,是否因为防火墙原因拦截。
至此frps中转服务器配置完成
内网服务器配置:
1、把刚才下载的frp安装包放到你的内网服务器根目录,并且登录你的内网服务器依次执行命令:
tar xf frp_0.29.1_linux_amd64.tar.gz
mv frp_0.29.1_linux_amd64 /usr/local
cd /usr/local/frp_0.29.1_linux_amd64
rm -f frps*
2、配置frpc 执行命令:
vi ./frpc.ini
输入以下内容:
[common]
server_addr = #你的外网服务器IP
server_port = 5443 #外网服务器的通信服务端口
[ssh]
type = tcp
local_ip = 192.168.2.61 #内网的服务器IP
local_port = 22 #内网的SSH端口
remote_port = 6000 #对应外网的SSH端口
[web]
type = http
local_ip = 192.168.2.61 #内网的服务器IP
local_port = 99 #内网的web端口
remote_port = 8081 #对应外网的WEB端口
custom_domains = #你的外网域名
启动服务:执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini,建议先运行该命令,只要运行过程中有错误,都会回显。
如果运行报错,需要重新修改配置文件,需要先停止FRP的运行:
#查询进程与结束进程命令:
ps -ef |grep frpc
kill -9 [进程号]
3、配置启动服务 执行命令:
vi /etc/systemd/system/frpc.service
填入以下内容:
[Unit]
Description=frpc daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frp_0.29.1_linux_amd64/frpc -c /usr/local/frp_0.29.1_linux_amd64/frpc.ini
[Install]
WantedBy=multi-user.target
执行命令:
systemctl enable frpc
systemctl start frpc
重启命令:systemctl restart frpc
至此frpc被控主机配置完成
此时可通过x.x.x.x:6000连接内网ssh,通过http://x.x.x.x:8081访问内网主机web
SSH访问的用户名和密码就是你内网服务器的root用户名和密码;