frp 是一個可用于內(nèi)網(wǎng)穿透的高性能的反向代理應(yīng)用沸停,支持 tcp膜毁、 udp 協(xié)議昭卓,為 http 和 https 應(yīng)用協(xié)議提供了額外的能力愤钾,且嘗試性支持了點(diǎn)對點(diǎn)穿透。
如果你之前用過ngrok候醒,一定不會對frp的功能陌生能颁。ngrok 開源版好久沒更新了,高級版需要花錢倒淫。
內(nèi)網(wǎng)穿透
通俗的講伙菊,我在本地啟動了個http服務(wù),只能在局域網(wǎng)訪問敌土,怎么能讓局域網(wǎng)外的人瞧瞧呢镜硕?這就需要內(nèi)網(wǎng)的服務(wù)擺脫限制,穿透到外網(wǎng)去返干,顧名思義了 “內(nèi)網(wǎng)穿透”兴枯。
哲學(xué)三問之:有什么用
做過 微信開發(fā) 么,在驗(yàn)證 遠(yuǎn)程服務(wù)地址 的時(shí)候矩欠,需要頻繁的修改财剖,或者遠(yuǎn)程服務(wù)器不能隨意修改,有固定的發(fā)布日期癌淮。
你可以在本地修改躺坟,通過內(nèi)網(wǎng)穿透 映射到到一個遠(yuǎn)程服務(wù)地址, 微信鏈接到這個遠(yuǎn)程地址乳蓄,其實(shí)鏈接的是本地開發(fā)環(huán)境咪橙。等全部功能開發(fā)完畢,統(tǒng)一部署到正式的遠(yuǎn)程服務(wù)器上虚倒,這方便的很啊美侦。
通過自定義域名訪問部署于內(nèi)網(wǎng)的 web 服務(wù)
下載
https://github.com/fatedier/frp/releases/tag/v0.25.3
服務(wù)器端
需要先買好一臺vps,部署好環(huán)境裹刮,ip是 x.x.x.x
,并在防火墻上開啟5555擦囊、3000端口涧郊。服務(wù)器端運(yùn)行的是 frp-s
命令。
# frps.ini 文件
[common]
bind_port = 5555
vhost_http_port=3000 # 遠(yuǎn)程服務(wù)要映射的端口號
運(yùn)行 frps -c ./frps.ini
本地服務(wù)
本地端運(yùn)行的是 frp-c
命令。
# frpc.ini 文件
[common]
server_addr = x.x.x.x
server_port = 5555
[web]
type = http
local_port = 3000 #本地服務(wù)3000端口
custom_domains = x.x.x.x
運(yùn)行 frpc -c ./frpc.ini
啟動本地服務(wù)
確保啟動frps搏熄,再啟動frpc,最后在啟動本地的http服務(wù)止后。
好比有個nodejs項(xiàng)目, 使用 npm start
啟動服務(wù)古戴。
過程
本地3000端口的服務(wù),映射到了 x.x.x.x:3000
localhost:3000 => frpc => 5555端口 => frps => x.x.x.x:3000
訪問端口可以不一樣,本地8000端口的服務(wù)喳逛,映射到了 x.x.x.x:4000
localhost:8000 => frpc => 5555端口 => frps => x.x.x.x:4000
你也可以用不同的端口映射
localhost:8000 => frpc => 6666端口 => frps => x.x.x.x:4000
都可以通過配置文件進(jìn)行修改
我的博客即將同步至騰訊云+社區(qū)姐呐,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=3kh51td0b3ggw
參考:
http://wjp2013.github.io/tool/frp/
https://github.com/fatedier/frp/blob/master/README_zh.md
https://blog.ilemonrain.com/linux/frp-for-proxyconnect.html
http://www.reibang.com/p/057e3266f380
https://github.com/cnlh/nps