1. 程式人生 > 實用技巧 >FRP——搭建內網穿透伺服器

FRP——搭建內網穿透伺服器

FRP—— Fast Reverse Proxy


軟體介紹:

  frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it supports TCP and UDP, as well as HTTP and HTTPS protocols, where requests can be forwarded to internal services by domain name. frp also has a P2P connect mode.

  frp 是一個可用於內網穿透的高效能的反向代理應用,支援 tcp, udp 協議,為 http 和 https 應用協議提供了額外的能力,且嘗試性支援了點對點穿透。

準備:

  • 具備公網IP伺服器(Ubuntu 18.04.4 LTS,阿里雲)
  • 本地計算機(Ubuntu 20.04 LTS)

操作:

1.FRP軟體包

  從github頁面下載FRP軟體包:https://github.com/fatedier/frp/releases

  從中選擇適合自己系統及架構的版本下載,並將軟體包分別放在伺服器和本地計算機中,任意位置均可。具體方法可以使用wget,也可以使用scp,方法不限。此次設定將軟體包放在了/home路徑下。

  版本列表如下:

  

  

  注1:軟體包中包含伺服器端和客戶端兩種程式,以frps和frpc區分。frps即為frp server,frpc即為frp client。  

  注2:可在終端中輸入指令arch來檢視架構。

root@iZ2zejeormv0s1jgutmmejZ:~# arch
x86_64

2.伺服器FRP程式設定(frp server)

  解壓軟體包: 

 tar -zxvf frp_0.33.0_linux_386.tar.gz

  進入解壓後軟體包目錄,並刪除客戶端檔案:

rm -rf frpc*

3.伺服器FRP配置(frp server)

  開啟frps.ini檔案,並編輯引數:

  設定bind_port引數,此埠用來連線客戶端。

# frps.ini
[common]
bind_port = 7000

  設定dash_board引數,分別設定埠號、登入使用者名稱和登入密碼。設定此引數後可以通過瀏覽器檢視FRP的服務資訊。

dashboard_port = 7201
dashboard_user = user
dashboard_pwd = password

  注:通過瀏覽器輸入“伺服器IP:7201”進行訪問。

4.本地計算機FRP程式設定(frp client)

  解壓軟體包:

tar -zxvf frp_0.33.0_linux_386.tar.gz

  進入解壓後軟體包目錄,並刪除伺服器端檔案:

rm -rf frps*

5.客戶端FRP配置(frp client)

  [common]下設定伺服器IP及埠,埠須與伺服器中frps.ini檔案的設定的相同。

  [ssh]設定ssh服務對映:

    local_port:設定為本地計算機ssh埠22

    remote_port:設定與local_port相連線的伺服器埠。

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7200

  注:可新增更多其它服務對映,具體設定請參考官方文件。

6.埠檢查

  確保伺服器和本地計算機相關埠已開啟,尤其是伺服器會有相應的策略組,需在伺服器控制檯開啟。可使用nmap等工具進行測試。

7.啟動服務

  在伺服器執行服務端程式:

./frps -c frps.ini

  服務端程式執行成功則顯示如下資訊:

2020/07/29 11:33:10 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
2020/07/29 11:33:10 [I] [service.go:277] Dashboard listen on 0.0.0.0:7500
2020/07/29 11:33:10 [I] [root.go:209] start frps success

  在本地計算機執行客戶端程式:

./frpc -c frpc.ini

  客戶端程式執行成功則顯示如下資訊:

2020/07/29 05:42:56 [I] [service.go:282] [26687067e8a12f6f] login to server success, get run id [26687067e8a12f6f], server udp port [0]
2020/07/29 05:42:56 [I] [proxy_manager.go:144] [26687067e8a12f6f] proxy added: [ssh]
2020/07/29 05:42:56 [I] [control.go:179] [26687067e8a12f6f] [ssh] start proxy success

8.測試

  從別的計算機上通過以下指令則可連線到本地計算機。

ssh -oPort=7200 [email protected]

  至此,成功從外網訪問內網計算機,實現內網穿透。

注:更多功能使用及介紹可參考frp中文文件。

  frp中文件:https://github.com/fatedier/frp/blob/master/README_zh.md


2020-07-29 14:10:11