搭建Frp内网穿透,实现公网windows远程桌面连接
使用Frp内网穿透工具使处于内网中的电脑能够像访问公网电脑一样方便,比如将公司或个人电脑里面的web项目让别人能够访问以便于自己及时修改,或者是进行远程或ssh连接。能够实现内网穿透的还有花生壳,ngrok等,但frp使用起来更加简便灵活,以及项目一直开源,所以本文选择frp作为示例。
Frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
[项目地址][1]
数据准备:
• 公网IP: X.X.X.X
• 内网IP: 192.168.1.101
• 映射到公网的域名:xxx.com
本文中内网电脑使用的是win10系统,公网电脑为win系统。
一. 服务端配置
此脚本是Frp一键部署Linux服务端,像酸酸乳、v2ray 等一键.sh脚本,安装、更新、重启、开机启动等服务。
[脚本代码地址][2]
服务端安装支持:Centos | Debian | Ubuntu (32bit / 64bit)
Install(安装)
1 2 3
| 1. wget https://raw.githubusercontent.com/MvsCode/frp-onekey/master/install-frps.sh -O ./install-frps.sh 2. chmod 700 ./install-frps.sh 3. ./install-frps.sh install
|
Uninstall(卸载)
1
| 1. ./install-frps.sh uninstall
|
Update(更新)
1
| 1. ./install-frps.sh update
|
服务端相关命令
1 2 3 4 5 6
| frps start frps stop frps restart frps status frps config frps version
|
脚本将会自动识别机器的IP地址,所有选项支持自定义,也均可默认配置,也就是直接按回车,程序就会使用默认配置进行安装
步骤说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| Please select frps download url: [1].aliyun [2].github (default)
Please input frps bind_port[1-65535](Default Server Port: 5443):
Please input frps vhost_http_port[1-65535](Default : 80):
Please input frps vhost_https_port[1-65535](Default : 443):
Please input frps dashboard_port [1-65535] (Default : 6443):
Please input frps dashboard_user(Default :admin):
Please input frps dashboard_pwd(Default :ZBdmQ53):
Please input frps token(Default :eOajAGbI5ZrSmU3a):
Please input frps subdomain_host(Default :35.189.139.184):
Please input frps max_pool_count [1-200] (Default : 50):
Please select log_level 1: info (default) 2: warn 3: error 4: debug
Please input frps log_max_days [1-30] (Default : 3 day):
Please select log_file 1: enable (default) 2: disable
Please select tcp_mux 1: enable (default) 2: disable
Please select kcp support 1: enable (default) 2: disable
|
启动成功后,本地访问 http://ip或者自定义域名:6433 即可看到WEB控制台。到此安装服务端成功!

二. 客户端配置
具有内网IP的电脑将作为客户端(frpc), 本文中客户端使用的是win10 64位系统,所以在releases页面下载frp_0.25.0_windows_amd64.zip解压,只需保留frpc frpc.ini两个文件,其他可以删除
通过 ssh 访问公司内网机器(例)
修改 frps.ini 文件,这里使用了最简化的配置:
1 2 3
| [common] bind_port = 7000 token = 1234
|
修改完成后在此此文件目录下启动服务 执行此命令
1 2 3 4
| • 前台启动 ./frps -c ./frps.ini • 后台启动 nohup ./frps -c ./frps.ini &
|
修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x
1 2 3 4 5 6 7 8 9 10
| [common] server_addr = x.x.x.x server_port = 7000 token = 1234
[ssh] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 6000
|
修改完成后在此此文件目录下启动服务 执行此命令
1 2 3 4
| • 前台启动 ./frpc -c ./frpc.ini • 后台启动 nohup ./frpc -c ./frpc.ini &
|
三. 设置开机启动和后台运行
同样的道理,也需要对客户端设置后台运行和开机自启。借助[winsw][4]工具可以将frpc注册为windows系统中的服务。
下载winsw最新版,为了方便将其重命名为winsw.exe, 将该文件和frpc.exe放在一起,然后新建winsw.xml写入以下内容:
1 2 3 4 5 6 7 8 9 10
| <service> <id>frp</id> <name>frp这里是服务的名称</name> <description>这里是服务的介绍,随便写</description> <executable>frpc</executable> <arguments>-c frpc.ini</arguments> <onfailure action="restart" delay="60 sec"/> <onfailure action="restart" delay="120 sec"/> <logmode>reset</logmode> </service>
|
然后使用winsw install和winsw start命令即可将frpc安装为系统服务。
win+r后通过services.msc进入到服务列表页面找到frp服务。为了确保frpc在连接失败后自动尝试重新连接,在恢复tap页进行如下设置:

使用微软远程工具,填入公网IP,ssh端口号以及主机名,设置如下:

使用问题
1.检查是否关闭服务端防火墙或者是开启要用到的端口
2.域名映射是否正确,检查能不能ping得通域名(域名前面不要忘了www)