天天看點

69.9K Star!最強開源網絡穿透工具,無腦選擇!

作者:散文随風想

作為一名開發者,有很多場景需要用到内網穿透,比如:我們在接入一些大平台做第三方應用時,在本地開發微信公衆号工具的時候需要讓微信平台能否通路到本地提供的接口。除此之外,還有很多其他場景,也會用到,比如:把放在家裡的NAS或伺服器暴露到公網上,這樣在外面的時候也可以随時随地的通路。

說到内網傳統,TJ君第一個想到的是國内最早的一款知名軟體:花生殼。但是今天不是要推薦它,而是要推薦一個更牛的開源項目:frp!該項目目前已經收獲了69.9 K Star,在GitHub上獲得了極大的認可!

69.9K Star!最強開源網絡穿透工具,無腦選擇!

下載下傳安裝

frp目前已經提供了大部分作業系統的支援版本,通過這個連結:https://github.com/fatedier/frp/releases, 就可以下載下傳到适合你使用的安裝。

69.9K Star!最強開源網絡穿透工具,無腦選擇!

圖 1

以Windows的包為例,解壓後可以獲得這些内容:

69.9K Star!最強開源網絡穿透工具,無腦選擇!

圖 2

frps是服務端程式,frpc是用戶端程式。ini檔案就是對應的配置檔案。

暴露内網服務

内網穿透的玩法有很多,這裡列舉一個比較常見的例子。

比如:我要暴露一個隻有自己能通路到伺服器。那麼可以這樣配置:

配置 frps.ini,并啟動服務端 frps

[common]
bind_port = 7000
           

在需要暴露到外網的機器上部署 frpc,配置如下:

[common]
server_addr = x.x.x.x 
server_port = 7000

[secret_ssh]
type = stcp
# 隻有 sk 一緻的使用者才能通路到此服務
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
           

在想要通路内網服務的機器上也部署 frpc,配置如下:

[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh_visitor]
type = stcp
# stcp 的通路者
role = visitor
# 要通路的 stcp 代理的名字
server_name = secret_ssh
sk = abcdefg
# 綁定本地端口用于通路 SSH 服務
bind_addr = 127.0.0.1
bind_port = 6000
           

把frpc也都啟動起來之後,通過 SSH 就可以通路内網機器了

ssh -oPort=6000 [email protected]
           

其他支援

除了上面的玩法之外,frp還有很多玩法,比如:

  • 自定義域名通路内網的 Web 服務
  • 轉發 DNS 查詢請求
  • 轉發 Unix 域套接字
  • 對外提供簡單的檔案通路服務
  • 為本地 HTTP 服務啟用 HTTPS
  • 點對點内網穿透

篇幅有限,具體如何配置這裡就不多說了,有需要的讀者可以直接檢視官方文檔,均有詳細的服務端用戶端配置案例。

最後,奉上相關連結:

開源位址:https://github.com/fatedier/frp/

文檔位址:https://gofrp.org/docs/