內(nèi)網(wǎng)穿透工具 frp

frp 是一個高性能的反向代理應用,可以幫助您輕松地進行內(nèi)網(wǎng)穿透,對外網(wǎng)提供服務,支持 tcp, http, https 等協(xié)議類型,并且 web 服務支持根據(jù)域名進行路由轉發(fā)。

frp 的作用

利用處于內(nèi)網(wǎng)或防火墻后的機器,對外網(wǎng)環(huán)境提供 http 或 https 服務。

對于 http 服務支持基于域名的虛擬主機,支持自定義域名綁定,使多個域名可以共用一個80端口。

利用處于內(nèi)網(wǎng)或防火墻后的機器,對外網(wǎng)環(huán)境提供 tcp 服務,例如在家里通過 ssh 訪問處于公司內(nèi)網(wǎng)環(huán)境內(nèi)的主機。

可查看通過代理的所有 http 請求和響應的詳細信息。(待開發(fā))

開發(fā)狀態(tài)

frp 目前正在前期開發(fā)階段,master 分支用于發(fā)布穩(wěn)定版本,dev 分支用于開發(fā),您可以嘗試下載最新的 release 版本進行測試。

目前的交互協(xié)議可能隨時改變,不能保證向后兼容,升級新版本時需要注意公告說明。

架構


使用示例

根據(jù)對應的操作系統(tǒng)及架構,從Release頁面下載最新版本的程序。

? ? 將?frps?及?frps.ini?放到有公網(wǎng) IP 的機器上。

? ? 將?frpc?及?frpc.ini?放到處于內(nèi)網(wǎng)環(huán)境的機器上。

通過 ssh 訪問公司內(nèi)網(wǎng)機器

修改 frps.ini 文件,配置一個名為 ssh 的反向代理:

# frps.ini[common]bind_port=7000[ssh]listen_port=6000auth_token=123

啟動 frps:

./frps -c./frps.ini

修改 frpc.ini 文件,設置 frps 所在服務器的 IP 為 x.x.x.x:

# frpc.ini[common]server_addr= x.x.x.xserver_port=7000auth_token=123[ssh]local_port=22

啟動 frpc:

./frpc -c./frpc.ini

通過 ssh 訪問內(nèi)網(wǎng)機器,假設用戶名為 test:

ssh-oPort=6000test@x.x.x.x

通過指定域名訪問部署于內(nèi)網(wǎng)的 web 服務

有時想要讓其他人通過域名訪問或者測試我們在本地搭建的 web 服務,但是由于本地機器沒有公網(wǎng) IP,無法將域名解析到本地的機器,通過 frp 就可以實現(xiàn)這一功能,以下示例為 http 服務,https 服務配置方法相同, vhost_http_port 替換為 vhost_https_port, type 設置為 https 即可。

修改 frps.ini 文件,配置一個名為 web 的 http 反向代理,設置 http 訪問端口為 8080,綁定自定義域名 www.yourdomain.com:

# frps.ini[common] bind_port = 7000vhost_http_port = 8080[web]type = httpcustom_domains = www.yourdomain.comauth_token = 123

啟動 frps;

./frps -c./frps.ini

修改 frpc.ini 文件,設置 frps 所在的服務器的 IP 為 x.x.x.x,local_port 為本地機器上 web 服務對應的端口:

# frpc.ini[common]server_addr= x.x.x.xserver_port=7000auth_token=123[web]type= httplocal_port=80

?啟動 frpc:

./frpc -c./frpc.ini

www.yourdomain.com的域名 A 記錄解析到 x.x.x.x,如果服務器已經(jīng)有對應的域名,也可以將 CNAME 記錄解析到服務器原先的域名。

通過瀏覽器訪問?http://www.yourdomain.com:8080?即可訪問到處于內(nèi)網(wǎng)機器上的 web 服務。

開發(fā)計劃

計劃在后續(xù)版本中加入的功能與優(yōu)化,排名不分先后,如果有其他功能建議歡迎在issues中反饋。

Dashboard 界面。

流量,連接數(shù)等代理信息統(tǒng)計與展示。

udp 協(xié)議支持。

針對短連接的連接池優(yōu)化。

特權模式支持端口白名單。

支持泛域名。

支持 url 路由轉發(fā)。

frpc 支持負載均衡到后端不同服務。

frpc debug 模式,控制臺顯示代理狀態(tài),類似 ngrok 啟動后的界面。

frpc http 請求及響應信息展示。

支持 udp 打洞的方式,提供兩邊內(nèi)網(wǎng)機器直接通信,流量不經(jīng)過服務器轉發(fā)。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容