《零基础部署公网服务:FRP v0.60+ 内网穿透实战,5分钟搞定本地服务公网化》

前言

FRP v0.60+ 已弃用旧版INI配置,改用TOML格式导致大量教程失效。本文基于实测分享个人经验,通过可复用的配置模板(含服务器连接、代理规则、防火墙联动),五分钟实现本地Web服务/SSH公网穿透,解决语法报错、端口冲突等高频问题。

一、环境准备

1.1 服务端要求

  • 拥有公网IP
  • 操作系统:推荐 Linux(CentOS/Ubuntu)
  • 建议配置:1核2G以上,带宽5Mbps以上

1.2 客户端要求

  • 操作系统:支持Linux/Windows
  • 网络:能够访问公网服务器
  • 本地服务:需要暴露的Web服务或SSH服务

1.3 FRP版本选择

  • FRP GitHub 下载对应系统的服务端(frps)和客户端(frpc)程序
  • 建议选择最新的稳定版本,本文使用v0.60+

提示:本文使用的服务器端为阿里云的轻量应用服务器,系统为Ubuntu,因此以Ubuntu系统演示,实际环境只要服务器带有公网IP都可以

二、服务器端防火墙配置

2.1 云服务商安全组配置

  1. 必要性说明

    • 所有云服务器(如阿里云、腾讯云)均通过安全组策略控制入站流量,需手动放行 FRP 相关端口。
    • 核心端口(仅为示范,可自定义):
      • 4398:FRP 服务端与客户端通信端口(TCP)
      • 4399:HTTP/HTTPS 服务转发端口(TCP)
      • 4400:Dashboard 监控面板端口(TCP)
  2. 配置步骤(以阿里云为例)

    • 登录云控制台 → 进入安全组管理 → 添加入方向规则:
      • 协议类型:TCP
      • 端口范围:4000/5000(批量覆盖所需端口)
      • 授权对象:0.0.0.0/0(允许所有公网访问)
    • 建议配置:生产环境应限制源 IP 范围(如仅允许办公网络 IP)。

图1:阿里云安全组配置界面
图1:在阿里云控制台的安全组配置页面,添加新的入方向规则

图2:安全组规则配置
图2:配置安全组规则,设置端口范围和授权对象

2.2 操作系统防火墙配置

  1. 工具选择

    • 推荐使用 ufw(Uncomplicated Firewall),适用于 Ubuntu/Debian 系统。
    • CentOS 用户可替换为 firewalld(命令略有差异)。
  2. ufw 安装与基础操作

# Ubuntu/Debian 安装
sudo apt update && sudo apt install ufw -y

# CentOS 安装(需 EPEL 源)
# 我的Ubuntu默认安装工具也为yum
sudo yum install epel-release -y
sudo yum install ufw -y
  1. 端口放行与生效
# 启用防火墙
sudo ufw enable

# 放行必要端口(TCP)
sudo ufw allow 4398/tcp
sudo ufw allow 4399/tcp
sudo ufw allow 4400/tcp

# 重新加载配置
sudo ufw reload

# 查看规则状态
sudo ufw status numbered
  1. 操作验证
    • 预期输出应包含 4398/tcp ALLOW4399/tcp ALLOW4400/tcp ALLOW 规则。

2.3 端口连通性测试

在配置完成后,建议进行端口连通性测试,确保防火墙配置正确:

telnet 公网IP/域名 测试端口
# 例如
telnet 153.3.238.28 80
telnet www.baidu.com 80

如果提示找不到telnet命令,需要先安装telnet工具:

图3:Windows功能配置
图3:在Windows控制面板中启用Telnet客户端功能

图4:启用Telnet
图4:勾选Telnet客户端选项并确认安装

三、服务端配置

3.1 解压服务端文件

下载并解压对应系统的FRP压缩包:

图5:解压服务端文件
图5:解压FRP服务端文件,注意保留必要的配置文件

提示:可以删除解压文件夹中的客户端文件 frpc.toml,避免混淆

3.2 编辑配置文件

创建并编辑 frps.toml 文件,配置服务端参数:

# 核心参数
bindAddr = "0.0.0.0"
bindPort = 4398
#【令牌,与本地客户端保持一致】
auth.token = "********"

# HTTP/HTTPS 入口
vhostHTTPPort = 4399

# 监控面板
webServer.addr = "0.0.0.0"
webServer.port = 4400
webServer.user = "admin"
webServer.password = "********"

# 端口白名单(限制可暴露端口范围)
allowPorts = [
  { start = 4398, end = 4400 },
  { single = 4399 }
]

# 日志管理(可选)
log.to = "/var/log/frps.log"
log.level = "warn"
log.maxDays = 7

配置说明

  • bindAddr:服务端监听地址,0.0.0.0表示监听所有网络接口
  • auth.token:认证令牌,用于客户端连接验证
  • allowPorts:限制可转发的端口范围,提高安全性
  • log:配置日志记录,方便问题排查

四、客户端配置

4.1 解压客户端文件

下载并解压对应系统的FRP客户端压缩包:

图6:解压客户端文件
图6:解压FRP客户端文件,准备配置

提示:可以删除解压文件夹中的服务端文件 frps.toml,避免混淆

4.2 编辑配置文件

创建并编辑 frpc.toml 文件,配置客户端参数:

# 连接服务端
serverAddr = "your_server_ip"  # 替换为公网服务器IP
serverPort = 4398
#【令牌,与公网服务端保持一致】
auth.token = "********"

# HTTP 服务穿透
[[proxies]]
name = "web"
type = "http"
localPort = 8000
customDomains = ["your_domain.com", "your_server_ip"]  # 替换为实际域名/IP

# SSH 穿透示例(可选)
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 4399

配置说明

  • serverAddr:填写公网服务器IP地址
  • auth.token:必须与服务端配置的令牌一致
  • proxies:配置需要穿透的服务,支持多个服务配置

五、启动FRP服务

5.1 启动服务端

  1. 直接启动
    在frp当前目录下运行:
frps -c frps.toml
  1. 配置系统服务(推荐)
    创建系统服务文件:
vim /etc/systemd/system/frps.service

添加以下内容:

[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
ExecStart = /root/frp/frp_0.61.1_linux_amd64/frps -c /root/frp/frp_0.61.1_linux_amd64/frps.toml

[Install]
WantedBy = multi-user.target

服务管理命令

systemctl start frps.service    # 启动
systemctl stop frps.service     # 停止
systemctl restart frps.service  # 重启
systemctl status frps.service   # 查看状态
systemctl enable frps.service   # 开机自启动
systemctl disable frps.service  # 禁用开机自启动

5.2 启动客户端

在frp当前目录下运行:

./frpc.exe -c frpc.toml

六、效果验证

6.1 连接状态检查

查看客户端连接状态:

图7:客户端连接状态
图7:客户端成功连接到服务端,显示连接状态和代理信息

6.2 管理面板访问

访问FRP管理面板:

浏览器键入 http://公网IP:4400 进入 frps dashboard

图8:管理面板登录
图8:FRP管理面板登录界面,输入配置的用户名和密码

图9:管理面板概览
图9:管理面板显示连接状态和流量统计信息

6.3 服务测试

  1. 启动本地服务

图10:启动本地服务
图10:在本地启动需要穿透的Web服务

  1. 测试访问

图11:服务访问测试
图11:通过公网IP访问本地服务,验证穿透是否成功

常见问题解决

  1. 连接失败

    • 检查防火墙配置
    • 验证token是否一致
    • 确认端口是否开放
  2. 服务无法访问

    • 检查本地服务是否正常运行
    • 验证端口映射配置
    • 查看FRP日志排查问题
  3. 性能优化建议

    • 使用最新版本FRP
    • 合理配置端口范围
    • 定期检查日志文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Albus#0_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值