frp使用
環(huán)境
(公網(wǎng))服務(wù)器
系統(tǒng):Centos7.9 64位 UEFI版本

JDK:17.0.15

本地服務(wù)器
系統(tǒng)Centos7
安裝的frp版本frp_0.63.0_linux_amd64.tar.gz
官網(wǎng) https://gofrp.org/zh-cn/docs/setup/
下載地址:https://github.com/fatedier/frp/releases
參考:http://www.rzrgm.cn/joy99/p/18962652
解壓到/usr/local/frp 目錄

部署腳本(參考)
#!/bin/bash tar -zxvf frp_0.63.0_linux_amd64.tar.gz -C /usr/local/ cd /usr/local/ mv frp_0.63.0_linux_amd64 frp mkdir -p /usr/local/frp/logs chown -R root:root /usr/local/frp cat > /usr/local/frp/frps.ini << \EOF [common] bind_address = 0.0.0.0 bind_port = 9111 authentication_method = token authenticate_heartbeats = false authenticate_new_work_conns = false token = Frp@2023! log_file = /usr/local/frp/logs/frps.log log_level = info log_max_days = 30 EOF cat > /usr/local/frp/frpc.ini << \EOF [common] server_addr = 127.0.0.1 server_port = 9111 authentication_method = token authenticate_heartbeats = false token = Frp@2023! log_file = /usr/local/frp/logs/frpc.log log_level = info log_max_days = 30 [forward_locahost_SSH] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 22122 EOF cat > /usr/lib/systemd/system/frps.service << \EOF [Unit] Description=Frp Server Service After=network.target [Service] Type=simple User=root Restart=on-failure RestartSec=5s ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini [Install] WantedBy=multi-user.target EOF cat > /usr/lib/systemd/system/frpc.service << \EOF [Unit] Description=Frp Client Service After=network.target [Service] Type=simple User=root Restart=on-failure RestartSec=5s ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini ExecReload=/usr/local/frp/frpc reload -c /usr/local/frp/frpc.ini [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable frps.service systemctl enable frpc.service systemctl start frps.service sleep 2 systemctl restart frpc.service
配置并啟動(dòng) frp 進(jìn)程
在使用之前,需要進(jìn)行一些配置。不同版本配置文件格式不一致,早起可能是 .ini 或其它格式。本文以當(dāng)前最新版 0.63.0 版本為例,配置文件是 toml 格式。
服務(wù)端配置文件 frps.toml。
bindAddr = "0.0.0.0" # 服務(wù)端監(jiān)聽地址,用于接收 frpc 的連接。默認(rèn)監(jiān)聽 0.0.0.0, 表示監(jiān)聽所有網(wǎng)絡(luò)接口。 bindPort = 7000 # 服務(wù)端監(jiān)聽端口,默認(rèn)值為 7000,客戶端通過此端口連接。 vhostHTTPPort = 7001 # 接收http請(qǐng)求 auth.token = "myfrptoken" # 客戶端需要配置對(duì)應(yīng)的token才允許映射 #僅允許服務(wù)器上的指定端口/端口范圍 避免濫用端口 allowPorts = [ # 范圍指定 { start = 5000, end = 5500}, # 單獨(dú)指定 # { single = 5501}, ] # 儀表盤配置 # The default value is 127.0.0.1. Change it to 0.0.0.0 when you want to access it from a public network. webServer.addr = "0.0.0.0" webServer.port = 7002 webServer.user = "admin" webServer.password = "admin"
配置https證書
bindPort = 700 transport.tls.certFile = "/home/frp/ssl/server.crt" transport.tls.keyFile = "/home/frp/ssl/server.key" transport.tls.trustedCaFile = "/home/frp/ssl/ca.crt" vhostHTTPPort = 7001 vhostHTTPSPort = 7003 #transport.tls.force = false auth.token = "myfrptoken" log.to = "/home/frp/log/frp.log" log.level = "error" log.maxDays = 60
服務(wù)端配置完成之后,通過 ./frps -c ./frps.toml 啟動(dòng)。啟動(dòng)之前,記得把公網(wǎng)服務(wù)器的 7000, 7001,7002 的端口打開, 5000-5500 用到哪個(gè)打開哪個(gè)。一般可以通過購買的服務(wù)器的控制臺(tái)進(jìn)行設(shè)置。
客戶端配置文件為 frpc.toml。
serverAddr = "你的服務(wù)器 ip" serverPort = 7000 # 和服務(wù)端進(jìn)行通信的端口,與服務(wù)端 bindPort 保持一致。 auth.token = "myfrptoken" # token 校驗(yàn),和服務(wù)端保持一致。 [[proxies]] name = "comfyui" # 要映射的服務(wù)名,隨便起。比如我想映射本機(jī)的 comfyui 進(jìn)程。 type = "tcp" localIP = "0.0.0.0" localPort = 8188 # 本機(jī)需要映射的端口,比如本機(jī) comfyui 進(jìn)程端口是 8188 remotePort = 5000 #映射到云服務(wù)器的哪個(gè)端口,需要打開服務(wù)器的這個(gè)端口。
serverAddr = "你的服務(wù)器 ip" serverPort = 7000 auth.method = "token" auth.token = "myfrptoken" log.to = "/usr/local/frp/log/frp.log" log.level = "error" log.maxDays = 120 transport.tls.certFile = "/usr/local/frp/ssl/client.crt" transport.tls.keyFile = "/usr/local/frp/ssl/client.key" transport.tls.trustedCaFile = "/usr/local/frp/ssl/ca.crt" [[proxies]] name = "htts2http" type = "https" customDomains = ["xx.client.com"] [proxies.plugin] type = "https2http" localAddr = "127.0.0.1:8081" crtPath = "/data1/frp/ssl/client.crt" keyPath = "/data1/frp/ssl/client.key" hostHeaderRewrite = "127.0.0.1" requestHeaders.set.x-from-where = "frp" [[proxies]] name = "web1" type = "http" localIP="0.0.0.0" localPort = 8082 locations = ["/"] customDomains = ["xx.client.com","www.xx.com"] [[proxies]] name = "web2" type = "http" localIP="0.0.0.0" localPort = 8083 locations = ["/page1"] customDomains = ["xx.client.com","www.xx.com"]
客戶端的 proxies 可以配置多個(gè)。針對(duì)不溝通的服務(wù),啟動(dòng)不同的端口即可。
其它網(wǎng)絡(luò)通過 http://云服務(wù)器ip:remotePort 即可訪問你本地機(jī)器 localPort 對(duì)應(yīng)的進(jìn)程。

同一臺(tái)機(jī)器代理兩個(gè)端口的方法
在客戶端的 frpc.toml 文件中,可以通過添加多個(gè) [[proxies]] 塊來實(shí)現(xiàn)同一臺(tái)機(jī)器代理多個(gè)端口。例如,在 Linux 客戶端的 frpc.toml 文件中:
serverAddr = "x.x.x.x" serverPort = 7000 auth.method = "token" auth.token = "12344321" [[proxies]] name = "pvessh" type = "tcp" localIP = "0.0.0.0" localPort = 22 remotePort = 8087 [[proxies]] name = "pvehttp" type = "tcp" localIP = "0.0.0.0" localPort = 8006 remotePort = 8487
其他
|
作者:chenze 出處:http://www.rzrgm.cn/chenze-Index/ 本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。 如果文中有什么錯(cuò)誤,歡迎指出。以免更多的人被誤導(dǎo)。 |

浙公網(wǎng)安備 33010602011771號(hào)