在Windows上配置FRP
在Windows上配置FRP
FRP
从 Github 获得用于 Windows 的 FRP 副本后,应当将其解压到不包含特殊字符的路径(如C:\FRP\)。
她应当至少包含以下文件:
frps.exe
frps.ini
frps_full.ini
frpc.exe
frpc.ini
frpc_full.ini
FRPS
frps.exe 是FRP的服务器主程序,frps.ini 是 FRPS 的配置文件,frps_full.ini 是示例的、包含注释的 FRPS 配置文件。
应当注意到,如果直接双击启动 frps.exe ,她将显示以下内容,并在几秒钟后退出。
This is a command line tool.
You need to open cmd.exe and run it from there.
/*翻译
这是一个命令行工具。
你需要打开cmd.exe并从那里运行它。*/
按照提示,我们按下Windows+X,C,然后 cd /d 到了存放有 frps.exe 的目录。
通过以下命令使 frps 加载 frps.ini 运行。
frps -c frps.ini
也可以在 frps.exe 的存放目录下创建Windows 命令脚本 (.cmd),其内容应该为:
cd /d %~dp0
frps -c frps.ini
frps.ini 是 frp 服务器中重要的配置文件,错误的配置会导致服务无法访问,部分重要的参数会直接导致 frp 服务器无法启动。
以下是一个示例的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 项目来查阅文档,可以使用更多本文没有提到的参数来提高穿透服务器的安全性和效率。
请参考以下文档仔细修改 frps.ini 中的每条参数。
[common]
# [common] 是配置文件中不可或缺的部分
bind_addr = 0.0.0.0
# 侦听的IP地址,如果为0.0.0.0,则接受所有网络的访问。
# IPv6 的文字地址或主机名必须在方括号 [ ] 内。例如 "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"。
bind_port = 7000
# 绑定用于TCP协议的端口。
bind_udp_port = 7001
# 绑定用于UDP协议的端口。
kcp_bind_port = 7000
# 绑定用于KCP协议的UDP端口,可以与 bind_port 相同。
# 如果未设置,则在 FRPS 中禁用 KCP。
# proxy_bind_addr = 127.0.0.1
# 指定代理将侦听的地址,默认值与 bind_addr 相同。
vhost_http_port = 80
vhost_https_port = 443
# 可选的,如果要支持虚拟主机,必须设置HTTP端口。
# 注意:http端口和https端口可以与 bind_port 相同。
# vhost_http_timeout = 60
# 虚拟主机HTTP服务器的响应标头超时(秒),默认值为 60。
# tcpmux_httpconnect_port = 1337
# TcpMuxHttpConnectPort 指定服务器侦听 TCP HTTP CONNECT 请求的端口。如果值为 0,则服务器不会在一个端口上多路复用TCP请求。如果不是,它将侦听HTTP CONNECT请求的此值。默认情况下,此值为0。
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# 设置dashboard_addr和dashboard_port以查看FRPS仪表板。
# dashboard_addr的默认值与bind_addr相同。
# 仪表板仅在设置dashboard_port时可用。
dashboard_user = admin
dashboard_pwd = admin
# 仪表盘基本身份验证保护的用户和密码,如果未设置,则默认值均为admin。
log_file = ./frps.log
# 日志文件路径。如果此值为console ,仅将日志输出到控制台。
log_level = info
# 日志记录等级,可以为 trace, debug, info, warn, error。
log_max_days = 3
# 日志最长天数,超过此天数的日志会被删除。
disable_log_color = false
# 当 log_file 为console时禁用日志颜色,默认值为 false。
token = 12345678
# 授权密钥。
allow_ports = 2000-3000,3001,3003,4000-50000
# 只允许FRPC绑定你列出的端口。如果什么都不设置,就没有任何限制。
subdomain_host = frps.com
# 如果subdomain_host不为空,可以在 frpc 的配置文件中设置类型为 http 或 https 时的子域。
# 当子域为test时,路由使用的主机为 test.frps.com。
# custom_404_page = /path/to/404.html
# 自定义HTTP请求的404页面。
FRPC
frpc.exe 是FRP的客户端主程序,frpc.ini 是 FRPC 的配置文件,frpc_full.ini 是示例的、包含注释的 FRPC 配置文件。
和FRPS一样,如果直接双击启动 frpc.exe ,她将显示以下内容,并在几秒钟后退出。
This is a command line tool.
You need to open cmd.exe and run it from there.
/*翻译
这是一个命令行工具。
你需要打开cmd.exe并从那里运行它。*/
所以,我们再打开cmd然后cd /d到包含frpc.exe的目录,并运行以下指令使frpc.exe使用frpc.ini启动:
frpc -c frpc.ini
也可以在 frpc.exe 的存放目录下创建Windows 命令脚本 (.cmd),其内容应该为:
cd /d %~dp0
frpc -c frpc.ini
frpc.ini 是 frp客户端中重要的配置文件,错误的配置会导致服务无法访问,部分重要的参数会直接导致 frp客户端无法启动。
以下是一个示例的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 项目来查阅文档,可以使用更多本文没有提到的参数来提高穿透服务器的安全性和效率。
请参考以下文档仔细修改 frpc.ini 中的每条参数。
[common]
# [common] 是配置文件中不可或缺的部分
server_addr = 0.0.0.0
server_port = 7000
# 服务器的IP地址。
# IPv6 的文字地址或主机名必须在方括号 [ ] 内。例如 "[::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,可以在此处设置http_proxy。
# 仅在协议为 tcp 时有效。
log_file = ./frpc.log
# 日志文件路径。如果此值为console ,仅将日志输出到控制台。
log_level = info
# 日志记录等级,可以为 trace, debug, info, warn, error。
log_max_days = 3
# 日志最长天数,超过此天数的日志会被删除。
disable_log_color = false
# 当 log_file 为console时禁用日志颜色,默认值为 false。
token = 12345678
# 授权密钥。必须与FRPS上的授权密钥一致,否则服务将不会工作。
user = your_name
# 如果使用此配置,代理名称将更改为 {user}.{proxy}。
[ssh]
# 'ssh' 必须是全局唯一的代理名称。
# 如果 [common] 部分中的user不为空,则会更改为 {user}.{proxy},例如"your_name.ssh"。
type = tcp
# 代理类型,可以为 tcp | udp | http | https | stcp | xtcp, 默认是tcp。
local_ip = 127.0.0.1
local_port = 22
# 本地服务的地址和端口。
remote_port = 6001
# 在FRPS服务器上使用的端口。如果值为0, FRPS会随机分配一个端口。
use_encryption = false
# 如果为 true, frps 和 frpc之间的消息将会被加密, 默认为 false。
use_compression = false
# 如果为 true, frps 和 frpc之间的消息将会被压缩, 默认为 false。
[range:tcp_port]
# 如果要公开多个端口,请在节名称中添加'range:'前缀。
# frpc 会生成多个代理,例如'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 协议的安全认证。
# 如果未设置,无需认证即可访此custom_domains。
subdomain = web01
# 如果 FRPS 的subdomain_host为 frps.com,则可以通过 http://web01.frps.com 代理访问 [Web01]。
custom_domains = web01.yourdomain.com
locations = /,/pic
# 位置仅对http类型有效。
host_header_rewrite = example.com
# 重写请求头中的host。
header_X-From-Where = frp
# 带有前缀 "header_" 的参数可用来更新HTTP请求头。
[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
# 如果不为空,FRPC 将使用代理协议将连接信息传输到本地服务。
# 值为v1 或 v2 或空。