
一文講透 AI Agent 與 AI Workflow 的區(qū)別和深度解析:從自動(dòng)化到智能化的演進(jìn)
frp(Fast Reverse Proxy)[1] 是一個(gè)高性能的反向代理工具,使用 Go 語(yǔ)言編寫,能夠幫助你輕松地將內(nèi)網(wǎng)服務(wù)暴露到公網(wǎng),實(shí)現(xiàn)安全、快速、便捷的內(nèi)網(wǎng)代理。它支持 TCP、UDP、HTTP、HTTPS 等多種協(xié)議,并提供豐富的功能,例如自定義域名、負(fù)載均衡、加密傳輸?shù)?,能夠滿足各種場(chǎng)景下的內(nèi)網(wǎng)代理需求。
Sealos
一個(gè)云操作系統(tǒng),集本地開發(fā)、線上測(cè)試、打包上線為一體,無(wú)需云計(jì)算專業(yè)知識(shí),就能在幾秒鐘內(nèi)部署、管理和擴(kuò)展您的應(yīng)用。官方網(wǎng)站:https://sealos.run
目前 frp 在 GitHub 上已經(jīng)獲得了超過(guò) 83000 顆星。
frp 的核心思想是利用反向代理技術(shù),將內(nèi)網(wǎng)服務(wù)通過(guò)一個(gè)公網(wǎng)服務(wù)器進(jìn)行轉(zhuǎn)發(fā),從而實(shí)現(xiàn)外部用戶對(duì)內(nèi)網(wǎng)服務(wù)的訪問。架構(gòu)圖如下:
它的工作原理可以簡(jiǎn)單概括為:
frp 的主要功能特性包括:
為了更直觀地展示 frp 的優(yōu)勢(shì),我們可以將其與市面上的其他主流內(nèi)網(wǎng)代理解決方案進(jìn)行對(duì)比:
特性 | frp | ngrok | Cloudflare Tunnel |
開源 | 是 | 否 | 否 |
免費(fèi)使用 | 是 | 有限制 | 有限制 |
自托管 | 支持 | 不支持 | 不支持 |
多協(xié)議支持 | TCP/UDP/HTTP(S) | 主要支持 HTTP(S) | HTTP(S) |
配置復(fù)雜度 | 低 | 中 | 中 |
性能 | 高 | 中 | 高 |
安全特性 | 豐富 | 基本 | 豐富 |
社區(qū)支持 | 活躍 | 有限 | 有限 |
雖然 ngrok 在易用性方面略勝一籌,Cloudflare Tunnel 則在全球化部署上有優(yōu)勢(shì),但 frp 在開源友好度、功能靈活性和成本控制上獨(dú)樹一幟。特別是對(duì)于希望完全控制內(nèi)網(wǎng)代理基礎(chǔ)設(shè)施的團(tuán)隊(duì)來(lái)說(shuō),frp 提供了一個(gè)完美的平衡點(diǎn)。
frp 有多種安裝方式,你可以通過(guò)二進(jìn)制來(lái)安裝,也可以通過(guò) Docker 鏡像來(lái)部署。但你必須購(gòu)買一臺(tái)具有公網(wǎng) IP 的服務(wù)器。
對(duì)于沒有技術(shù)背景的同學(xué)而言,你也不用擔(dān)心安裝問題,Sealos 應(yīng)用商店[2]提供了一鍵部署的應(yīng)用模板,點(diǎn)一下鼠標(biāo)即可完成部署,非常絲滑。而且不需要再單獨(dú)購(gòu)買具有公網(wǎng) IP 的服務(wù)器了,直接按量付費(fèi)即可。
如果你想快速部署一個(gè) frp,又不想陷入繁瑣的安裝和配置過(guò)程,可以試試 Sealos。
直接打開 frp 應(yīng)用模板:
然后點(diǎn)擊右上角的 “去 Sealos 部署”。
如果您是第一次使用 Sealos[3],則需要注冊(cè)登錄 Sealos 公有云賬號(hào),登錄之后會(huì)立即跳轉(zhuǎn)到模板的部署頁(yè)面。
這里需要填一下管理面板的用戶名和密碼:
填好參數(shù)之后,點(diǎn)擊右上角的 “部署應(yīng)用” 開始部署。部署完成后,直接點(diǎn)擊應(yīng)用的 “詳情” 進(jìn)入該應(yīng)用的詳情頁(yè)面。
等待應(yīng)用狀態(tài)變成 running 之后,直接點(diǎn)擊端口 7500 對(duì)應(yīng)的外網(wǎng)地址便可打開 frp 的管理界面。
除此之外,還有另外一種打開方式,先刷新 Sealos 桌面 (也就是在 cloud.sealos.run 界面刷新瀏覽器),然后你就會(huì)發(fā)現(xiàn) Sealos 桌面多了個(gè)圖標(biāo):
直接點(diǎn)擊這個(gè)圖標(biāo)就可以打開 frp 的管理界面。輸入之前部署時(shí)設(shè)置的用戶名和密碼就可以登錄了。
是不是有點(diǎn)似曾相識(shí)?沒錯(cuò),很像 Windows 的快捷方式!
單機(jī)操作系統(tǒng)可以這么玩,Sealos 云操作系統(tǒng)當(dāng)然也可以這么玩。
下面我們通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)快速體驗(yàn)一下 frp 的使用。
設(shè)我們要將本地 Linux 機(jī)器上運(yùn)行在 80 端口的 Web 服務(wù)暴露到公網(wǎng)。首先要在 Web 服務(wù)所在的本地機(jī)器上下載 frpc 二進(jìn)制文件:
# 設(shè)置 VERSION 環(huán)境變量為 latest 版本號(hào)
VERSION=$(curl -s https://api.github.com/repos/fatedier/frp/releases/latest | grep -oE '"tag_name": "[^"]+"' | head -n1 | cut -d'"' -f4 | cut -d 'v' -f2)
# 下載最新版本 frp
wget https://github.com/fatedier/frp/releases/download/v${VERSION}/frp_${VERSION}_linux_amd64.tar.gz
# 解壓
tar zxf frp_${VERSION}_linux_amd64.tar.gz
cd frp_${VERSION}_linux_amd64
編寫客戶端配置文件:
# frpc.toml
serverAddr = "frp-udkhnlcc.bja.sealos.run"
serverPort = 46451
[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["frp-udkhnlcc.bja.sealos.run"]
serverAddr
的值替換為你的 frp 服務(wù)的 80 端口對(duì)應(yīng)的公網(wǎng)地址:serverPort
的值替換為你的 frp 服務(wù)的 7000 端口對(duì)應(yīng)的外網(wǎng)端口。在 frp 服務(wù)詳情頁(yè)面點(diǎn)擊左上角的 “管理所有資源”:然后將鼠標(biāo)拉到最下面,即可看到 7000 端口對(duì)應(yīng)的外網(wǎng)端口:
customDomains
的值替換為你的 frp 服務(wù)的 80 端口對(duì)應(yīng)的公網(wǎng)地址。啟動(dòng) frpc:
./frpc -c ./frpc.toml
現(xiàn)在讓我們回到 frp 服務(wù)詳情頁(yè)面,點(diǎn)擊 80 端口對(duì)應(yīng)的外網(wǎng)地址就能打訪問地機(jī)器的 Web 服務(wù)了。
太強(qiáng)了!
注意:由于國(guó)內(nèi)政策原因,后續(xù) Sealos 公有云逐漸合規(guī)之后,國(guó)內(nèi)可用區(qū)的二級(jí)域名只能作為測(cè)試使用,如果想正式使用,必須使用自己的域名。
frp 不僅可以進(jìn)行 HTTP/HTTPS 代理,還有很多高級(jí)用法。
以 SSH 服務(wù)為例,客戶端配置如下:
# frpc.toml
serverAddr = "wvvirfjfkjnt.bja.sealos.run"
serverPort = 46451
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 31577
在 frp 服務(wù)詳情頁(yè)面點(diǎn)擊左上角的 “管理所有資源”:
然后將鼠標(biāo)拉到最下面,除了 7000 端口之外,還暴露了一個(gè) TCP 端口,將這個(gè)端口的值作為上述 frpc 配置文件中 remotePort 的值即可。
啟動(dòng) frpc:
./frpc -c ./frpc.toml
現(xiàn)在我們到另外一臺(tái)機(jī)器上就可以通過(guò) ssh -oPort=31577 root@wvvirfjfkjnt.bja.sealos.run
來(lái)訪問內(nèi)網(wǎng)機(jī)器的 SSH 服務(wù)了:
frp 支持在傳輸過(guò)程中對(duì) TCP 數(shù)據(jù)進(jìn)行加密和壓縮,以提高安全性和傳輸效率。還以 SSH 服務(wù)為例,直接添加兩個(gè)參數(shù) transport.useEncryption 和 transport.useCompression 就可以支持加密和壓縮了。
# frpc.toml
serverAddr = "wvvirfjfkjnt.bja.sealos.run"
serverPort = 46451
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 31577
transport.useEncryption = true
transport.useCompression = true
假設(shè)你的本地 Web 有多個(gè)服務(wù),分散在不同的機(jī)器上 (或者同一個(gè)機(jī)器的不同端口),便可以通過(guò)配置 group
來(lái)實(shí)現(xiàn)多個(gè)代理的負(fù)載均衡。
# frpc.toml
serverAddr = "wvvirfjfkjnt.bja.sealos.run"
serverPort = 46451
[[proxies]]
name = "web1"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["frp-udkhnlcc.bja.sealos.run"]
loadBalancer.group = "web"
loadBalancer.groupKey = "123"
[[proxies]]
name = "web2"
type = "http"
localIP = "x.x.x.x"
localPort = 80
customDomains = ["frp-udkhnlcc.bja.sealos.run"]
loadBalancer.group = "web"
loadBalancer.groupKey = "123"
當(dāng)然,除了 http 之外,frp 也支持 tcp 和 tcpmux 的負(fù)載均衡。
frp 還有更多強(qiáng)大的特性,如:
限于篇幅,這里就不一一介紹了。感興趣的同學(xué)可以查看 frp 的官方文檔[4]了解更多細(xì)節(jié)。
frp 作為一款輕量級(jí)的內(nèi)網(wǎng)代理工具,具有以下優(yōu)勢(shì):
無(wú)論是個(gè)人開發(fā)測(cè)試,還是小型團(tuán)隊(duì)內(nèi)部使用,frp 都是一個(gè)非常好的選擇。大家可以嘗試使用一下,相信會(huì)給你的開發(fā)工作帶來(lái)很大的便利。
文章轉(zhuǎn)載自:8 萬(wàn) star!我愿稱之為內(nèi)網(wǎng)代理之神,輕松將本地服務(wù)暴露到公網(wǎng)!
一文講透 AI Agent 與 AI Workflow 的區(qū)別和深度解析:從自動(dòng)化到智能化的演進(jìn)
實(shí)測(cè)告訴你:DeepSeek-R1 7B、32B、671B差距有多大
6個(gè)大模型的核心技術(shù)介紹
太強(qiáng)了!各個(gè)行業(yè)的AI大模型!金融、教育、醫(yī)療、法律
在Sealos 平臺(tái)的幫助下一個(gè)人維護(hù)著 6000 個(gè)數(shù)據(jù)庫(kù)
通義萬(wàn)相,開源!
使用Cursor 和 Devbox 一鍵搞定開發(fā)環(huán)境
DeepSeekMath:挑戰(zhàn)大語(yǔ)言模型的數(shù)學(xué)推理極限
新型脈沖神經(jīng)網(wǎng)絡(luò)+大模型研究進(jìn)展!
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)