在Windows上配置FRP
在Windows上配置FRP
FRP
從 Github 獲得用于 Windows 的 FRP 副本后,應(yīng)當(dāng)將其解壓到不包含特殊字符的路徑(如C:\FRP\)。
她應(yīng)當(dāng)至少包含以下文件:
frps.exe
frps.ini
frps_full.ini
frpc.exe
frpc.ini
frpc_full.ini
FRPS
frps.exe 是FRP的服務(wù)器主程序,frps.ini 是 FRPS 的配置文件,frps_full.ini 是示例的、包含注釋的 FRPS 配置文件。
?
應(yīng)當(dāng)注意到,如果直接雙擊啟動(dòng) frps.exe ,她將顯示以下內(nèi)容,并在幾秒鐘后退出。
This is a command line tool.
You need to open cmd.exe and run it from there.
/*翻譯
這是一個(gè)命令行工具。
你需要打開cmd.exe并從那里運(yùn)行它。*/
?
按照提示,我們按下Windows+X,C,然后 cd /d 到了存放有 frps.exe 的目錄。
通過以下命令使 frps 加載 frps.ini 運(yùn)行。
frps -c frps.ini
也可以在 frps.exe 的存放目錄下創(chuàng)建Windows 命令腳本 (.cmd),其內(nèi)容應(yīng)該為:
cd /d %~dp0
frps -c frps.ini
?
frps.ini 是 frp 服務(wù)器中重要的配置文件,錯(cuò)誤的配置會(huì)導(dǎo)致服務(wù)無法訪問,部分重要的參數(shù)會(huì)直接導(dǎo)致 frp 服務(wù)器無法啟動(dòng)。
?
以下是一個(gè)示例的frps.ini。
[common]
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7002
vhost_http_port = 80
vhost_https_port = 443
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 114514
log_file = ./frps.log
log_level = trace
log_max_days = 32
token = 114514
subdomain_host = frp.wm
?
注意:訪問官方 Github 項(xiàng)目來查閱文檔,可以使用更多本文沒有提到的參數(shù)來提高穿透服務(wù)器的安全性和效率。
請(qǐng)參考以下文檔仔細(xì)修改 frps.ini 中的每條參數(shù)。
[common]
# [common] 是配置文件中不可或缺的部分
?
bind_addr = 0.0.0.0
# 偵聽的IP地址,如果為0.0.0.0,則接受所有網(wǎng)絡(luò)的訪問。
# IPv6 的文字地址或主機(jī)名必須在方括號(hào) [ ] 內(nèi)。例如 "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"。
?
bind_port = 7000
# 綁定用于TCP協(xié)議的端口。
?
bind_udp_port = 7001
# 綁定用于UDP協(xié)議的端口。
?
kcp_bind_port = 7000
# 綁定用于KCP協(xié)議的UDP端口,可以與 bind_port 相同。
# 如果未設(shè)置,則在 FRPS 中禁用 KCP。
?
# proxy_bind_addr = 127.0.0.1
# 指定代理將偵聽的地址,默認(rèn)值與 bind_addr 相同。
?
vhost_http_port = 80
vhost_https_port = 443
# 可選的,如果要支持虛擬主機(jī),必須設(shè)置HTTP端口。
# 注意:http端口和https端口可以與 bind_port 相同。
?
# vhost_http_timeout = 60
# 虛擬主機(jī)HTTP服務(wù)器的響應(yīng)標(biāo)頭超時(shí)(秒),默認(rèn)值為 60。
?
# tcpmux_httpconnect_port = 1337
# TcpMuxHttpConnectPort 指定服務(wù)器偵聽 TCP HTTP CONNECT 請(qǐng)求的端口。如果值為 0,則服務(wù)器不會(huì)在一個(gè)端口上多路復(fù)用TCP請(qǐng)求。如果不是,它將偵聽HTTP CONNECT請(qǐng)求的此值。默認(rèn)情況下,此值為0。
?
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# 設(shè)置dashboard_addr和dashboard_port以查看FRPS儀表板。
# dashboard_addr的默認(rèn)值與bind_addr相同。
# 儀表板僅在設(shè)置dashboard_port時(shí)可用。
?
dashboard_user = admin
dashboard_pwd = admin
# 儀表盤基本身份驗(yàn)證保護(hù)的用戶和密碼,如果未設(shè)置,則默認(rèn)值均為admin。
?
log_file = ./frps.log
# 日志文件路徑。如果此值為console ,僅將日志輸出到控制臺(tái)。
?
log_level = info
# 日志記錄等級(jí),可以為 trace, debug, info, warn, error。
?
log_max_days = 3
# 日志最長天數(shù),超過此天數(shù)的日志會(huì)被刪除。
?
disable_log_color = false
# 當(dāng) log_file 為console時(shí)禁用日志顏色,默認(rèn)值為 false。
?
token = 12345678
# 授權(quán)密鑰。
?
allow_ports = 2000-3000,3001,3003,4000-50000
# 只允許FRPC綁定你列出的端口。如果什么都不設(shè)置,就沒有任何限制。
?
subdomain_host = frps.com
# 如果subdomain_host不為空,可以在 frpc 的配置文件中設(shè)置類型為 http 或 https 時(shí)的子域。
# 當(dāng)子域?yàn)閠est時(shí),路由使用的主機(jī)為 test.frps.com。
?
# custom_404_page = /path/to/404.html
# 自定義HTTP請(qǐng)求的404頁面。
?
?
?
?
FRPC
frpc.exe 是FRP的客戶端主程序,frpc.ini 是 FRPC 的配置文件,frpc_full.ini 是示例的、包含注釋的 FRPC 配置文件。
?
和FRPS一樣,如果直接雙擊啟動(dòng) frpc.exe ,她將顯示以下內(nèi)容,并在幾秒鐘后退出。
This is a command line tool.
You need to open cmd.exe and run it from there.
/*翻譯
這是一個(gè)命令行工具。
你需要打開cmd.exe并從那里運(yùn)行它。*/
?
所以,我們?cè)俅蜷_cmd然后cd /d到包含frpc.exe的目錄,并運(yùn)行以下指令使frpc.exe使用frpc.ini啟動(dòng):
frpc -c frpc.ini
也可以在 frpc.exe 的存放目錄下創(chuàng)建Windows 命令腳本 (.cmd),其內(nèi)容應(yīng)該為:
cd /d %~dp0
frpc -c frpc.ini
?
frpc.ini 是 frp客戶端中重要的配置文件,錯(cuò)誤的配置會(huì)導(dǎo)致服務(wù)無法訪問,部分重要的參數(shù)會(huì)直接導(dǎo)致 frp客戶端無法啟動(dòng)。
?
以下是一個(gè)示例的frpc.ini。
[common]
server_addr = 127.0.0.1
server_port = 7000
token = 114514
?
[Wemakeli]
type = http
local_ip = 127.0.0.1
local_port = 12120
custom_domains = wemakeli.net.wm
?
注意:訪問官方 Github 項(xiàng)目來查閱文檔,可以使用更多本文沒有提到的參數(shù)來提高穿透服務(wù)器的安全性和效率。
請(qǐng)參考以下文檔仔細(xì)修改 frpc.ini 中的每條參數(shù)。
?
[common]
# [common] 是配置文件中不可或缺的部分
?
server_addr = 0.0.0.0
server_port = 7000
# 服務(wù)器的IP地址。
# IPv6 的文字地址或主機(jī)名必須在方括號(hào) [ ] 內(nèi)。例如 "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"。
?
# http_proxy = http://user:passwd@192.168.1.128:8080
# http_proxy = socks5://user:passwd@192.168.1.128:1080
# http_proxy = ntlm://user:passwd@192.168.1.128:2080
# 如果要通過代理連接 FRPS,可以在此處設(shè)置http_proxy。
# 僅在協(xié)議為 tcp 時(shí)有效。
?
log_file = ./frpc.log
# 日志文件路徑。如果此值為console ,僅將日志輸出到控制臺(tái)。
?
log_level = info
# 日志記錄等級(jí),可以為 trace, debug, info, warn, error。
?
log_max_days = 3
# 日志最長天數(shù),超過此天數(shù)的日志會(huì)被刪除。
?
disable_log_color = false
# 當(dāng) log_file 為console時(shí)禁用日志顏色,默認(rèn)值為 false。
?
token = 12345678
# 授權(quán)密鑰。必須與FRPS上的授權(quán)密鑰一致,否則服務(wù)將不會(huì)工作。
?
user = your_name
# 如果使用此配置,代理名稱將更改為 {user}.{proxy}。
?
[ssh]
# 'ssh' 必須是全局唯一的代理名稱。
# 如果 [common] 部分中的user不為空,則會(huì)更改為 {user}.{proxy},例如"your_name.ssh"。
?
type = tcp
# 代理類型,可以為 tcp | udp | http | https | stcp | xtcp, 默認(rèn)是tcp。
?
local_ip = 127.0.0.1
local_port = 22
# 本地服務(wù)的地址和端口。
?
remote_port = 6001
# 在FRPS服務(wù)器上使用的端口。如果值為0, FRPS會(huì)隨機(jī)分配一個(gè)端口。
?
use_encryption = false
# 如果為 true, frps 和 frpc之間的消息將會(huì)被加密, 默認(rèn)為 false。
?
use_compression = false
# 如果為 true, frps 和 frpc之間的消息將會(huì)被壓縮, 默認(rèn)為 false。
?
[range:tcp_port]
# 如果要公開多個(gè)端口,請(qǐng)?jiān)诠?jié)名稱中添加'range:'前綴。
# frpc 會(huì)生成多個(gè)代理,例如'tcp_port_6010', 'tcp_port_6011'等。
?
type = tcp
local_ip = 127.0.0.1
local_port = 6010-6020,6022,6024-6028
remote_port = 6010-6020,6022,6024-6028
use_encryption = false
use_compression = false
?
[dns]
type = udp
local_ip = 114.114.114.114
local_port = 53
remote_port = 6002
use_encryption = false
use_compression = false
?
[range:udp_port]
type = udp
local_ip = 127.0.0.1
local_port = 6010-6020
remote_port = 6010-6020
use_encryption = false
use_compression = false
?
[web01]
# 將域名解析為[server_addr],以便使用 http://web01.yourdomain.com 瀏覽 web01 。
?
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
?
http_user = admin
http_pwd = admin
# http_user和http_pwd是 http 協(xié)議的安全認(rèn)證。
# 如果未設(shè)置,無需認(rèn)證即可訪此custom_domains。
?
subdomain = web01
# 如果 FRPS 的subdomain_host為 frps.com,則可以通過 http://web01.frps.com 代理訪問 [Web01]。
?
custom_domains = web01.yourdomain.com
?
locations = /,/pic
# 位置僅對(duì)http類型有效。
?
host_header_rewrite = example.com
# 重寫請(qǐng)求頭中的host。
?
header_X-From-Where = frp
# 帶有前綴 "header_" 的參數(shù)可用來更新HTTP請(qǐng)求頭。
?
[web02]
# 將域名解析為[server_addr],以便使用 https://web02.yourdomain.com 瀏覽 web02 。
?
type = https
local_ip = 127.0.0.1
local_port = 8000
use_encryption = false
use_compression = false
subdomain = web02
custom_domains = web02.yourdomain.com
?
proxy_protocol_version = v2
# 如果不為空,F(xiàn)RPC 將使用代理協(xié)議將連接信息傳輸?shù)奖镜胤?wù)。
# 值為v1 或 v2 或空。
?