起因
因為肺炎問題需要遠程辦公,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