跨局域網遠程連接神器——frp內網穿透
? 放寒假回家想用服務器跑代碼、想用校園網下文章、甚至還想用服務器打兩把游戲,這該怎么辦?有的大佬會想,可以在家買一個服務器嘛!如果是這樣就打擾了,,,對于我這樣的窮人就只能合理利用學校的資源,遠程連接學校的服務器了,但是家里網和校園網不在同一局域網這該如何連接?frp內網穿透是一個很好的選擇!
1、frp是什么?
? frp 是一個高性能的反向代理應用,可以幫助您輕松地進行內網穿透,對外網提供服務,支持 tcp, http, https 等協議型別,并且 web 服務支持根據域名進行路由轉發,frp 是一款跨平臺的內網穿透工具,支持 Windows、macOS 與 Linux,它需要你有一臺擁有固定公網 IP 的電腦,VPS 最好,然后就能愉快的進行內網穿透了,還支持 https,甚至可以用它進行小程式開發,
2、frp的作用
-
利用處于內網或防火墻后的機器,對外網環境提供 http 或 https 服務,
-
對于 http 服務支持基于域名的虛擬主機,支持自定義域名系結,使多個域名可以共用一個80埠,
-
利用處于內網或防火墻后的機器,對外網環境提供 tcp 服務,例如在家里通過 ssh 訪問處于公司內網環境內的主機,
-
可查看通過代理的所有 http 請求和回應的詳細資訊,(待開發)
3、遠程為什么選用frp
- 遠程桌面使用TeamViewer,可用,但需要訪問端也擁有TeamViewer軟體,不是很方便,希望能使用Windows自帶的遠程桌面,且TeamViewer不易實作遠程檔案訪問,
- 使用蒲公英VPN軟體進行組網,可用,但免費版本網路速度極慢,體驗不佳,幾乎無法正常使用,
- 使用花生殼軟體進行DDNS決議,可用,但同第二點所述,免費版本有帶寬限制,無法實際使用,
- 搭建frp服務器進行內網穿透,可用且推薦,可以達到不錯的速度,且理論上可以開放任何想要的埠,可以實作的功能遠不止遠程桌面或者檔案共享
4、frp配置
3.1 前期作業
搭建一個完整的frp服務鏈,我們需要:
-
VPS一臺(也可以是具有公網ip的物體機,博主這邊用的是阿里云的服務器,學生價包年也就幾十塊)
-
訪問設備與被訪問設備
-
一些簡單的Linux操作指令基礎
-
frp程式檔案,根據自己的要求下載對應版本的程式下載地址

3.2 frp 服務的部署
1、將下載好的frp程式檔案傳入服務器
2、解壓檔案
tar -zxvf frp_0.34.3_linux_amd64.tar.gz
3、此處可以將frp_0.34.3_linux_amd64檔案夾改名為frp,方便操作使用:
mv frp_0.34.3_linux_amd64 frp
4、進入frp目錄
cd frp
5、編輯frps.ini檔案
vim frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
privilege_token = frp888
dashboard_port = 7700
dashboard_user = admin
dashboard_pwd = admin
6、服務端啟動frp
./frps -c ./frps.ini
啟動后輸入http://[服務器公網ip]:7700,并輸入所設定的賬號(admin)和密碼(admin)就可以看到以下管理界面:

如果上述界面無法訪問進行下面步奏,如果可以跳過下面步驟直接進行客戶端的配置,
7、打開服務器防火墻
sudo ufw enable
打開防火墻以后如果發現服務器無法進行運程訪問了,那應該是防火墻把22埠關閉了,解決方案:在服務器終端執行命令:
sudo ufw allow 22
8、防火墻打開服務器端埠
sudo ufw allow 7000
sudo ufw allow 7001
sudo ufw allow 7700
完成上述操作后,再輸入http://[服務器公網ip]:7700就可以訪問上述界面了
服務端frp開機自啟動
1、添加systemd組態檔:
vim /usr/lib/systemd/system/frp.service
編輯檔案內容如下;
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
其中ExecStart的路徑根據自己的路徑定義
2、設定frp開機啟動:
systemctl daemon-reload
systemctl enable frp
3、啟動frp(終止frp把start改為stop即可):
systemctl start frp
4、查看frp是否啟動:
ps aux | grep frps
顯示如下結果就成功了:

3.3 被訪問機配置
Linux系統
將frp_0.34.3_linux_amd64檔案傳入到被訪問系統的指定目錄下中、解壓、重命名為frp、切換到frp檔案中、編輯frpc.ini檔案
# frpc.ini
[common]
# 你的frp服務器的公網ip
server_addr = x.x.x.x
# 你的frp服務器的默認埠
server_port = 7000
[rdp]
type = stcp
# 只有 sk 一致的用戶才能訪問到此服務
sk = 123456789
local_ip = 127.0.0.1
# 遠程桌面的本地埠號
local_port = 22
啟動frp
frpc -c frpc.ini
windows系統
將frp_0.34.3_window_amd64檔案傳入到被訪問系統的指定目錄下中、解壓、重命名為frp、切換到frp檔案中、編輯frpc.ini檔案,
# frpc.ini
[common]
# 你的frp服務器的公網ip
server_addr = x.x.x.x
# 你的frp服務器的默認埠
server_port = 7000
[rdp]
type = stcp
# 只有 sk 一致的用戶才能訪問到此服務
sk = 123456789
local_ip = 127.0.0.1
# 遠程桌面的本地埠號
local_port = 3389
啟動frp
frpc -c frpc.ini
3.4 訪問端配置
訪問端一般都是windows的系統,在訪問端電腦打開rp_0.34.3_window_amd64,解壓、重命名為frp、切換到frp檔案中、編輯frpc.ini檔案,
# frpc.ini
[common]
# 你的frp服務器的公網ip
server_addr = x.x.x.x
# 你的frp服務器的默認埠
server_port = 7000
[rdp_visitor]
type = stcp
# stcp 的訪問者
role = visitor
# 要訪問的 stcp 代理的名字
server_name = rdp
# 只有 sk 一致的用戶才能訪問到此服務
sk = 123456789
# 系結本地埠用于訪問 遠程桌面 服務
bind_addr = 127.0.0.1
bind_port = 1000
訪問linux系統:

訪問windows端

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250761.html
標籤:其他
