frp是一款內(nèi)網(wǎng)穿透工具,它可以讓處于內(nèi)網(wǎng)或防火墻后的設(shè)備對(duì)外界提供服務(wù)
下載和安裝
查看系統(tǒng)版本
uname -a
然后根據(jù)系統(tǒng)類型在frp releases下載對(duì)應(yīng)版本的frp
解壓
# server
tar -zxvf frp_0.34.3_linux_amd64.tar.gz
# client
tar -zxvf frp_0.34.3_darwin_amd64.tar.gz
服務(wù)端配置
進(jìn)入解壓后的目錄,我們主要關(guān)注以下幾個(gè)配置文件,服務(wù)端配置文件frps和frps.ini,以及客戶端配置文件frpc和frpc.ini。由于現(xiàn)在配置的是服務(wù)端,客戶端配置文件可先忽略。
frps.ini
[common]
bind_port = 7000
dashboard_port = 7500
# dashboard 用戶名密碼,默認(rèn)都為 admin,如果不需要,需要主動(dòng)設(shè)置為空
dashboard_user = admin
dashboard_pwd = admin
- bind_port 必須。服務(wù)端運(yùn)行端口
- dashboard_port 可選。服務(wù)端管理后臺(tái)的運(yùn)行端口,在配置完成后可以通過
server_ip:dashboard_port訪問。文檔地址https://gofrp.org/docs/features/common/ui/ - token 可選。服務(wù)端和客戶端之間口令
- dashboard_user 可選。管理后臺(tái)用戶名
- dashboard_pwd 可選。管理后臺(tái)用戶密碼
運(yùn)行
./frps -c frps.ini
如果輸出以下內(nèi)容表示服務(wù)啟動(dòng)成功了
2020/12/08 22:57:31 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000
2020/12/08 22:57:32 [I] [service.go:289] Dashboard listen on 0.0.0.0:7500
2020/12/08 22:57:32 [I] [root.go:215] start frps success
如果要讓服務(wù)后臺(tái)運(yùn)行,輸入
nohup ./frps -c frps.ini
客戶端配置
./frpc.ini
[common]
server_addr = server_ip_address
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 8888
remote_port = 8888
- type = tcp 公網(wǎng)連接內(nèi)網(wǎng)服務(wù)使用的協(xié)議
- server_addr 服務(wù)器的ip地址
- server_port 服務(wù)端frp運(yùn)行端口
- local_ip、local_port 本地需要暴露到公網(wǎng)的服務(wù)地址和端口
- remote_port 服務(wù)端frp監(jiān)聽端口,訪問此端口的流量將會(huì)被轉(zhuǎn)發(fā)到本地服務(wù)對(duì)應(yīng)的端口(local_port)。
運(yùn)行服務(wù)
./frpc -c frpc.ini
如果看到以下輸出表示服務(wù)運(yùn)行正常
2020/12/08 23:26:16 [I] [service.go:288] [d435dea2236599d2] login to server success, get run id [d435dea2236599d2], server udp port [0]
2020/12/08 23:26:16 [I] [proxy_manager.go:144] [d435dea2236599d2] proxy added: [ssh]
2020/12/08 23:26:16 [I] [control.go:180] [d435dea2236599d2] [ssh] start proxy success
服務(wù)端和客戶端都配置成功后,外網(wǎng)的主機(jī)通過server_ip:remote_ip就可以訪問到部署在本地的服務(wù)了。frp還有許多其他應(yīng)用,可以參考這些示例學(xué)習(xí)。