内网穿透软件-frp
内网穿透软件的作用是解决想要在公司访问家里内网NAS,或是在家里访问公司服务问题。主要有以下方式:
路由器上有固定的公网IP或动态的公网IP:常见的方案动态域名解析做端口转发方式等。
路由器上无公网IP:常见的实现方案向日葵、teamviewer、ngrok、frp、zerotier one等。
向日葵、teamviewer等是直接厂商的成熟方案,主要提供桌面访问和控制功能;frp、ngrok、zerotier one可以提供端口级服务访问功能,如SSH、HTTP、流媒体服务等,因此受到很有有更多需求的人的选择使用。
本文提到的FRP和ngrok类似都需要有一个公网的服务器提供对应服务,而zerotier one不需要公网服务器,但是因为采用UDP协议,稳定性较差,有的运营商会进行限制。本文主要介绍FRP穿透软件。
frp简介
frp 是一个使用 Go 语言开发的高性能的反向代理应用,全名:Fast Reverse Proxy,可以帮助您轻松地进行内网穿透,对外网提供服务。frp 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。
frp配置
1、实现功能
(1)外网通过远程桌面访问内网机器
2、配置准备
(1)公网服务器1台(如果没有公网服务器可以网上搜索公共frp服务器,或者我的免费云申请免费云服务器,免费码MYFREEY-UX8MWCR-20200124)
2、frp安装配置
(1)frp服务安装
本文运行环境centos 7
wget https://github.com/fatedier/frp/releases/frp_0.30.0_linux_amd64.tar.gz
tar -C /usr/local -xzf frp_0.30.0_linux_amd64.tar.gz
cd /usr/local/frp_0.13.0_linux_amd64
vim frps.ini #修改配置文件信息
(2) frps配置
[common]
# 服务器端口
bind_port = 6000
# 客户端连接凭证
token=123456
max_pool_count=5
# 服务器看板的访问端口
dashboard_port = 7000
# 服务器看板账户
dashboard_user = admin
dashboard_pwd =123456
(3) frps运行
frps服务器需打开服务器端口和看板端口
#运行frps程序
./frps
3、frps服务脚本-设置frps开机自启动
frps.service
[Unit]
Description=frps
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=/usr/local/frp_0.30.0_linux_amd64/frps -c /usr/local/frp_0.30.0_linux_amd64/frps.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
将文件copy的/etc/systemd/system,脚本下载地址:
# 启动 frp 并设置开机启动
systemctl enable frpc
systemctl start frpc
systemctl status frpc
4、frpc客户端安装配置
在需被访问的电脑,下载客户端软件,地址:
https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_windows_amd64.zip
运行安装后,修改frpc.ini文件
[common]
server_addr = 19.56.37.48 #公网服务器ip
server_port = 6000 #与服务端bind_port一致
#公网通过远程桌面访问内部服务器
[service1]
type = tcp #连接协议
local_ip = 127.0.0.1 #内网服务器ip
local_port = 3389 #ssh默认端口号
remote_port = 6001 #自定义的访问内部远程桌面
token=123456
运行frpc程序。
5、远程桌面访问
采用远程桌面,目标地址19.56.37.48,端口6001.
6、看板监控
浏览器访问19.56.37.4,端口7000,登录后即可看到frp客户端的连接情况。