中文文檔 https://www.cnblogs.com/sanduzxcvbnm/p/8508741.html
[必須]標(biāo)識(shí)頭
[common]
是不可或缺的部分
[必須]frps服務(wù)端IP
server_addr = 0.0.0.0
0.0.0.0為FRP服務(wù)端IP,客戶端要填寫為服務(wù)端已配置的對(duì)應(yīng)的IP,或者是服務(wù)端的服務(wù)器(VPS)IP。
[必須]frps服務(wù)端通訊端口
server_port = 7000
客戶端連接到服務(wù)端內(nèi)網(wǎng)穿透?jìng)鬏敂?shù)據(jù)的端口,請(qǐng)改為服務(wù)端已配置的對(duì)應(yīng)端口。
[必須]連接認(rèn)證密鑰-特權(quán)模式
privilege_token = www.nat.ee
客戶端連接到FRP服務(wù)端的登錄驗(yàn)證密鑰,請(qǐng)改為服務(wù)端已配置的對(duì)應(yīng)密鑰。
記錄運(yùn)行日志
日志存放路徑
log_file = /etc/frp/log/frps.log
請(qǐng)改為需要存放在那里的正確路徑。
日志記錄類別
log_level = info
可選:trace, debug, info, warn, error
最多保存多少天日志
log_max_days = 7
可自定義保存多少天。
你的內(nèi)網(wǎng)穿透名稱,將顯示為 {名稱}.{對(duì)應(yīng)服務(wù)名稱}
user = your_name
請(qǐng)?zhí)畲笮懽帜负蛿?shù)字,不要用中文填寫。
決定第一次登錄失敗時(shí)是否退出程序,否則連續(xù)登錄到frps服務(wù)端
login_fail_exit = true
可選:false,true
默認(rèn)是true,否則可以不填此參數(shù)或者改為false,則持續(xù)連接登錄到frps而不退出。
用于連接frps服務(wù)端的通訊協(xié)議
protocol = tcp
支持tcp和kcp,默認(rèn)是tcp
注意:kcp需要服務(wù)端配置參數(shù)已開啟,才支持。
使用tcp流復(fù)用,默認(rèn)為true
tcp_mux = true
可選:false,true
必須與frps服務(wù)端已經(jīng)配置參數(shù)相同,否則服務(wù)端沒有,可以不填此參數(shù)。
內(nèi)網(wǎng)穿透服務(wù)限制最大連接池上限
pool_count = 5
限制本客戶端內(nèi)網(wǎng)穿透可以創(chuàng)建的總連接池上限,避免大量資源占用??勺远x。默認(rèn)為0不限制,或者不填此參數(shù)。
注意:假如服務(wù)端已配置了限制,而你設(shè)置的高于服務(wù)端的,則按服務(wù)端的為準(zhǔn)采取限制。
通過(guò)http api設(shè)置管理frpc動(dòng)作的管理地址,例如reload
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin
【上面用于總體對(duì)接frps服務(wù)端各參數(shù),下面的用于客戶端穿透各應(yīng)用的配置參數(shù)?!?/p>
對(duì)應(yīng)穿透服務(wù)名稱
[name]
建立每個(gè)穿透服務(wù),都需要命名一個(gè)此服務(wù)的名稱,不能和其他已建立的相同。
穿透協(xié)議類型
type = tcp
可選:tcp,udp,http,https,stcp,xtcp
你要穿透什么應(yīng)用要搞清楚,此應(yīng)用是用什么協(xié)議的。
本地監(jiān)聽I(yíng)P
local_ip = 127.0.0.1
可以是本地的局域網(wǎng)IP,也可以是本機(jī)的127.0.0.1 IP,
例如你的局域網(wǎng)是互通的,你可以在本設(shè)備建立穿透局域網(wǎng)其他IP的應(yīng)用。
本地監(jiān)聽端口
local_port = 22
用于監(jiān)聽本地設(shè)備需要穿透的端口,比如我要穿透到本機(jī)的SSH端口,而SSH端口為22,則這樣理解。
遠(yuǎn)程監(jiān)聽端口
remote_port = 6001
用于frps服務(wù)端的,分配建立穿透到內(nèi)網(wǎng)對(duì)應(yīng)應(yīng)用的公網(wǎng)端口。
需要frps服務(wù)端已開放此端口給frpc客戶端允許對(duì)接使用。
例如我可以連接到此(frps服務(wù)端IP:端口),則可以穿透到我的內(nèi)網(wǎng)對(duì)應(yīng)應(yīng)用服務(wù)。
穿透通訊加密
use_encryption = false
可選:false,true
默認(rèn)為false則不開啟,或者不填此參數(shù),為true則開啟frps服務(wù)端和frpc客戶端之間通訊加密。
穿透通訊壓縮
use_compression = false
可選:false,true
默認(rèn)為false則不開啟,或者不填此參數(shù),為true則開啟frps服務(wù)端和frpc客戶端之間通訊壓縮。
分配自定義域名訪問穿透服務(wù)
custom_domains = demo.com
用于你的穿透服務(wù)的唯一訪問域名,假如沒有域名,則此處請(qǐng)?zhí)顬閒rps服務(wù)端的服務(wù)器(IP)
自己有多個(gè)域名,可以配置不同穿透應(yīng)用服務(wù),用不同域名,只需要將對(duì)應(yīng)域名解析到frps服務(wù)端的服務(wù)器(IP)既可。
也支持泛解析識(shí)別,例如將(demo.com)域名已經(jīng)泛解析到frps服務(wù)端的服務(wù)器(IP)
而想通過(guò)(abc123.demo.com)訪問到對(duì)應(yīng)穿透服務(wù)
則在對(duì)應(yīng)穿透服務(wù),custom_domains參數(shù)中填abc123.demo.com
分配對(duì)應(yīng)穿透應(yīng)用服務(wù)唯一的子域名,用于訪問
subdomain = abc123
假如frps服務(wù)端已經(jīng)配置了subdomain_host參數(shù)域名,并且已經(jīng)泛(*)解析到frps服務(wù)端的服務(wù)器(VPS)IP,則可以使用此參數(shù),否則不能用。
例如已經(jīng)泛解析(demo.com)域名并且frps服務(wù)端配置好的,使用此subdomain參數(shù),只需要填子域名,而不需要填(demo.com)
subdomain = 填abc123,則可以通過(guò)(abc123.demo.com)訪問
為HTTP協(xié)議,添加HTTP用戶名和密碼安全認(rèn)證
http_user = admin
自定義用戶名
http_pwd = admin
自定義密碼
僅支持http,https類型協(xié)議。
例如我的WEB頁(yè)面,訪問前,需要進(jìn)行驗(yàn)證,才可以訪問。可以添加此參數(shù)。
安全地暴露內(nèi)網(wǎng)服務(wù)
對(duì)于某些服務(wù)來(lái)說(shuō)如果直接暴露于公網(wǎng)上將會(huì)存在安全隱患。
sk = abcdefg
可自定義
此參數(shù)用于進(jìn)一步驗(yàn)證,本地訪問穿透服務(wù)的安全連接,需要雙方frpc客戶端都需要配置,僅適用于stcp和xtcp協(xié)議類型。
修改 Host Header
通常情況下 frp 不會(huì)修改轉(zhuǎn)發(fā)的任何數(shù)據(jù)。但有一些后端服務(wù)會(huì)根據(jù) http 請(qǐng)求 header 中的 host 字段來(lái)展現(xiàn)不同的網(wǎng)站,例如 nginx 的虛擬主機(jī)服務(wù),啟用 host-header 的修改功能可以動(dòng)態(tài)修改 http 請(qǐng)求中的 host 字段。該功能僅限于 http 類型的代理。
frpc.ini
[web]
type = http
local_port = 80
custom_domains = test.yourdomain.com
host_header_rewrite = dev.yourdomain.com
原來(lái) http 請(qǐng)求中的 host 字段 test.yourdomain.com 轉(zhuǎn)發(fā)到后端服務(wù)時(shí)會(huì)被替換為 dev.yourdomain.com。
URL 路由
frp 支持根據(jù)請(qǐng)求的 URL 路徑路由轉(zhuǎn)發(fā)到不同的后端服務(wù)。
通過(guò)配置文件中的 locations 字段指定一個(gè)或多個(gè) proxy 能夠匹配的 URL 前綴(目前僅支持最大前綴匹配,之后會(huì)考慮正則匹配)。例如指定 locations = /news,則所有 URL 以 /news 開頭的請(qǐng)求都會(huì)被轉(zhuǎn)發(fā)到這個(gè)服務(wù)。
frpc.ini
[web01]
type = http
local_port = 80
custom_domains = web.yourdomain.com
locations = /
[web02]
type = http
local_port = 81
custom_domains = web.yourdomain.com
locations = /news,/about
按照上述的示例配置后,web.yourdomain.com 這個(gè)域名下所有以 /news 以及 /about 作為前綴的 URL 請(qǐng)求都會(huì)被轉(zhuǎn)發(fā)到 web02,其余的請(qǐng)求會(huì)被轉(zhuǎn)發(fā)到 web01。
通過(guò)代理連接 frps
在只能通過(guò)代理訪問外網(wǎng)的環(huán)境內(nèi),frpc 支持通過(guò) HTTP PROXY 和 frps 進(jìn)行通信。
可以通過(guò)設(shè)置 HTTP_PROXY 系統(tǒng)環(huán)境變量或者通過(guò)在 frpc 的配置文件中設(shè)置 http_proxy 參數(shù)來(lái)使用此功能。
僅在 protocol = tcp 時(shí)生效
frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
http_proxy = http://user:pwd@192.168.1.128:8080
插件
默認(rèn)情況下,frpc 只會(huì)轉(zhuǎn)發(fā)請(qǐng)求到本地 tcp 或 udp 端口。
插件模式是為了在客戶端提供更加豐富的功能,目前內(nèi)置的插件有 unix_domain_socket、http_proxy、socks5。
通過(guò) plugin 指定需要使用的插件,插件的配置參數(shù)都以 plugin_ 開頭。使用插件后 local_ip 和 local_port 不再需要配置。
使用 http_proxy 插件的示例:
frpc.ini
[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc
plugin_http_user 和 plugin_http_passwd 即為 http_proxy 插件可選的配置參數(shù)。
范圍端口映射
在 frpc 的配置文件中可以指定映射多個(gè)端口,目前只支持 tcp 和 udp 的類型。
這一功能通過(guò) range: 段落標(biāo)記來(lái)實(shí)現(xiàn),客戶端會(huì)解析這個(gè)標(biāo)記中的配置,將其拆分成多個(gè) proxy,每一個(gè) proxy 以數(shù)字為后綴命名。
例如要映射本地 6000-6005, 6007 這6個(gè)端口,主要配置如下:
frpc.ini
[range:test_tcp]
type = tcp
local_ip = 127.0.0.1
local_port = 6000-6006,6007
remote_port = 6000-6006,6007
實(shí)際連接成功后會(huì)創(chuàng)建 6 個(gè) proxy,命名為 test_tcp_0, test_tcp_1 ... test_tcp_5。
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。