跨局域網遠程連接神器——frp內網穿透

跨局域網遠程連接神器——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端

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章