frp内网穿透安装及配置
frp内网穿透安装及配置
下载安装包
本次的演示环境为:
服务端:Alibaba Cloud Linux
客户端:Windows 11 x86_64
配置
服务端 frps.toml
# frps.toml
bindAddr = "0.0.0.0" # 服务端绑定的 IP 地址,0.0.0.0 表示监听所有网络接口
bindPort = 7000 # 服务端监听的 TCP 端口,客户端通过此端口连接
kcpBindPort = 7000 # 服务端监听的 KCP 端口,用于加速连接
vhostHTTPPort = 8080 # 服务端监听的 HTTP 端口,用于支持虚拟主机功能
subdomainHost = "baizesz.com" # 虚拟主机的域名后缀,客户端可以通过子域名访问服务
userConnTimeout = 60 # 用户连接超时时间(单位:秒),客户端在指定时间内未完成连接则会被断开
auth.method = "token" # 鉴权方法,此处使用 token 方式进行身份验证
auth.token = "123456" # 鉴权 token,客户端需要使用此 token 才能连接到服务端
webServer.addr = "0.0.0.0" # Web 服务器的绑定地址,0.0.0.0 表示监听所有网络接口
webServer.port = 7500 # Web 服务器的监听端口,用于访问 Web 管理界面
webServer.user = "admin" # Web 管理界面的用户名
webServer.password = "admin" # Web 管理界面的密码
#log.to="./frps.log" # 日志输出路径,注释掉表示不启用文件日志输出
log.level = "trace" # 日志级别,trace 表示记录所有日志信息,包括调试信息
log.maxDays = 3 # 日志文件保留的最大天数
#allowPorts = [ # 允许客户端使用的端口范围,注释掉表示不限制端口
# { start = 6000, end = 7000 },
#]
客户端 frpc.toml
serverAddr = "120.24.191.53" # 服务端的 IP 地址,客户端连接的目标地址
serverPort = 7000 # 服务端的监听端口,客户端通过此端口连接服务端
loginFailExit = true # 登录失败时是否退出客户端,true 表示登录失败则退出
#log.to = "./frpc.log" # 日志输出路径,注释掉表示不启用文件日志输出
log.level = "trace" # 日志级别,trace 表示记录所有日志信息,包括调试信息
log.maxDays = 3 # 日志文件保留的最大天数
auth.method = "token" # 鉴权方法,此处使用 token 方式进行身份验证
auth.token = "123456" # 鉴权 token,客户端需要使用此 token 才能连接到服务端
transport.dialServerTimeout = 60 # 连接服务端的超时时间(单位:秒)
webServer.addr = "127.0.0.1" # Web 服务器的绑定地址,仅监听本地访问
webServer.port = 7400 # Web 服务器的监听端口,用于访问 Web 管理界面
webServer.user = "admin" # Web 管理界面的用户名
webServer.password = "admin" # Web 管理界面的密码
# 定义代理服务,用于将本地服务暴露到公网
[[proxies]]
name = "django" # 代理服务的名称
type = "http" # 代理类型,此处为 HTTP 代理
localIP = "127.0.0.1" # 本地服务的 IP 地址
localPort = 8000 # 本地服务的端口
subdomain = "api" # 子域名,通过 <subdomain>.<subdomainHost> 访问服务
[[proxies]]
name = "webui" # 另一个代理服务的名称
type = "http" # 代理类型,此处为 HTTP 代理
localIP = "127.0.0.1" # 本地服务的 IP 地址
localPort = 7860 # 本地服务的端口
subdomain = "webui" # 子域名,通过 <subdomain>.<subdomainHost> 访问服务
子域名映射
就是设置公网DNS的解析,这里以阿里云的域名为例
操作路径:公网DNS解析 >> 权威域名解析 >> 解析设置 >> 添加记录
如果 frpc.toml 文件中配置了多个子域,则一个个依次添加
记录类型:A
主机记录:api.baizesz.com // 添加api这个子域
记录值:填写你服务器的ip地址
其它使用默认值就行
防火墙设置
云服务器端口授权
在阿里云服务器控制台 >> 安全组 >> 入方向 >> 添加对应的规则 》协议类型 tcp, 端口填上上面frps.toml配置文件中所有的商品号,源选择所有IPv4(0.0.0.0/0)
系统防火墙设置
若在云服务器端口授权后,使用下面命令无法连通,则需要设置云服务系统的防火墙端口放行
测试端口连通性:
# 改成云服务器的 ip 以及端口号
telnet 120.24.191.53 8080
# 或者用下面这个命令
Test-NetConnection -ComputerName 120.24.191.53 -Port 7500
如果能连通,则不需要设置,否则按下面命令在服务器端进行设置
# 查看所有允许的端口
sudo firewall-cmd --list-all
# 添加一个7400端口
sudo firewall-cmd --add-port=7400/tcp --permanent
# 刷新防火墙配置
sudo firewall-cmd --reload
启动
服务端
cd xxx/frps_path/ # 进入 frps 的目录
./frps -c ./frps.toml # 用frps.toml 文件配置启动 frps
启动成功就可以看到下信息(根据你映射的端口不一样,信息会有差别)
# ./frps -c ./frps.toml
2025-01-22 21:22:37.390 [I] [frps/root.go:105] frps uses config file: ./frps.toml
2025-01-22 21:22:37.646 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:7000
2025-01-22 21:22:37.646 [I] [server/service.go:246] frps kcp listen on udp 0.0.0.0:7000
2025-01-22 21:22:37.646 [I] [server/service.go:305] http service listen on 0.0.0.0:8080
2025-01-22 21:22:37.646 [I] [frps/root.go:114] frps started successfully
2025-01-22 21:22:37.646 [I] [server/service.go:351] dashboard listen on 0.0.0.0:7500
客户端
cd xxx/frpc_path/ # 进入 frps 的目录
./frpc -c ./frpc.toml # 用frps.toml 文件配置启动 frps
启动成功就可以看到下信息(根据你映射的端口不一样,信息会有差别)
# .\frpc.exe -c .\frpc.toml
2025-01-22 21:25:30.085 [I] [sub/root.go:142] start frpc service for config file [.\frpc.toml]
2025-01-22 21:25:30.089 [I] [client/service.go:295] try to connect to server...
2025-01-22 21:25:30.089 [I] [client/service.go:174] admin server listen on 127.0.0.1:7400
2025-01-22 21:25:30.121 [I] [client/service.go:287] [9adf4570a2ac6630] login to server success, get run id [9adf4570a2ac6630]
2025-01-22 21:25:30.121 [I] [proxy/proxy_manager.go:173] [9adf4570a2ac6630] proxy added: [django webui]
2025-01-22 21:25:30.121 [T] [proxy/proxy_wrapper.go:200] [9adf4570a2ac6630] [webui] change status from [new] to [wait start]
2025-01-22 21:25:30.121 [T] [proxy/proxy_wrapper.go:200] [9adf4570a2ac6630] [django] change status from [new] to [wait start]
2025-01-22 21:25:30.131 [I] [client/control.go:168] [9adf4570a2ac6630] [webui] start proxy success
2025-01-22 21:25:30.131 [I] [client/control.go:168] [9adf4570a2ac6630] [django] start proxy success
防火墙设置
以下是详细步骤指导如何在Windows防火墙中允许frp客户端(frpc.exe)及本地服务端口通过防火墙,确保内网穿透正常工作:
允许frpc.exe通过防火墙
-
打开Windows Defender 防火墙
- 按下
Win + S,输入防火墙,选择Windows Defender 防火墙>高级安全。
- 按下
-
创建入站规则
-
右侧点击
入站规则>新建规则...。 -
规则类型:选择
程序> 下一步。 -
程序路径:点击
浏览,找到frpc.exe的路径(如D:\Baizesz\frp\frpc.exe)> 下一步。 -
操作:选择
允许连接> 下一步。 -
配置文件:勾选
域、专用、公用(全选)> 下一步。 -
名称:输入规则名称,如
允许frpc客户端> 完成。
-
-
创建出站规则(可选,通常frpc需主动连接服务器)
- 重复上述步骤,在
出站规则中为frpc.exe创建允许规则。
允许本地服务端口通过防火墙
如果本地服务(如Ollama的11434端口、ComfyUI的8188端口)被防火墙阻止,需单独放行:
-
打开高级安全防火墙
- 同上,进入
入站规则>新建规则。
- 同上,进入
-
放行指定端口
-
规则类型:选择
端口> 下一步。- 协议和端口:
- 选择
TCP,输入特定本地端口(如11434,8188,多个用逗号分隔)> 下一步。
- 选择
- 协议和端口:
-
操作:选择
允许连接> 下一步。 -
配置文件:勾选
域、专用、公用> 下一步。 -
名称:输入规则名称,如
允许本地服务端口> 完成。
-
验证防火墙是否放行
测试本地服务访问
- 在浏览器访问
http://localhost:11434(Ollama)和http://localhost:8188(ComfyUI),确认服务正常响应。
使用Telnet测试端口连通性
-
打开命令提示符(cmd),执行:
telnet 127.0.0.1 11434 telnet 127.0.0.1 8188 -
若显示空白窗口或连接成功,表示端口已放行;若失败,检查防火墙规则是否启用。
查看连接状态
刚才已经配置了 frp 的 web 服务,打开下页链接就可以查看连接状态
验证连接
在网页中打开刚才我拉映射的两个 http 端口
没有配出的话是能正常访问的,更多属性配置查看官网,另外配置文件的写法,其实有两种,下面以 webServer 举例:
写法一:
webServer.addr = "127.0.0.1" # Web 服务器的绑定地址,仅监听本地访问
webServer.port = 7400 # Web 服务器的监听端口,用于访问 Web 管理界面
webServer.user = "admin" # Web 管理界面的用户名
webServer.password = "admin" # Web 管理界面的密码
写法二:
[webServer]
addr = "127.0.0.1" # Web 服务器的绑定地址,仅监听本地访问
port = 7400 # Web 服务器的监听端口,用于访问 Web 管理界面
user = "admin" # Web 管理界面的用户名
password = "admin" # Web 管理界面的密码
上面两种写法是等价的,但是如果两种写法混合使用的话,不建议这样做,因为从[]开始它会一直找往下,直到到下一组[],不然它都会认为是当前组的,例如:
[webServer]
addr = "127.0.0.1" # Web 服务器的绑定地址,仅监听本地访问
port = 7400 # Web 服务器的监听端口,用于访问 Web 管理界面
user = "admin" # Web 管理界面的用户名
password = "admin" # Web 管理界面的密码
auth.token = "123456" # 这里就会报错,它会被认为是webServer的子配置
出处:http://www.cnblogs.com/nenhall/
如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。

浙公网安备 33010602011771号