起因
因为肺炎问题需要远程办公,Teamviewer是个不错的解决方案,但是因为漏洞问题,公司屏蔽了Teamviewer。其他软件如:向日葵,Anydesk,都不是太好用,所以使用frp进行内网穿透
内网穿透?frp?
- 内网穿透,即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。
- frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
注:frp 仍然处于开发阶段,未经充分测试与验证,不推荐用于生产环境。
master 分支用于发布稳定版本,dev 分支用于开发,您可以尝试下载最新的 release 版本进行测试。
目前的交互协议可能随时改变,不保证向后兼容,升级新版本时需要注意公告说明同时升级服务端和客户端。
下载
FRP Github下载地址
下载frp_0.31.1_linux_amd64.tar.gz
服务端配置
- 解压
tar -xzvf frp_0.31.1_linux_amd64.tar.gz
- 修改配置文件
frps.ini
[common]
bind_port = 7000
auto_token=123456 #凭证
dashboard_port = 7500 #web端口
dashboard_user = admin #登录名
dashboard_pwd = admin #密码
- 后台运行
nohup ./frps -c frps.ini >/dev/null 2>&1 &
客户端配置
- 修改
frpc.ini
[common]
server_addr = ip
server_port = 7000
auto_token=123456
[INGXX]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
- 运行
frpc.exe -c frpc.ini
多个客户端修改名称和remote_port
端口即可
windows远程桌面链接 server_addr:remote_port
开机启动
方式一
需要登陆以后才可以使用
新建一个vbs文件
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "d:\frp\frpc.exe -c d:\frp\frpc.ini",0
WIN+R
运行Shell:startup
把VBS脚本放进去即可
方式二
用winsw将frp注册为系统服务
这个方法最稳定,这是我最终用的方法。
下载winsw
winsw GitHub下载地址
改名为winsw.exe,放到frp相同的目录里,在同一个目录里创建一个utf8编码的文本文件,文件名是 winsw.xml,内容是:
<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>
以管理员权限打开一个命令窗口,cd到frp所在目录,执行:
winsw install
winsw start
大功告成!
如果要卸载服务,执行命令:
winsw stop
winsw uninstall