FRP 内网穿透工具搭建教程

FRP(Fast Reverse Proxy)是一款高性能的内网穿透工具,由国内开发者开发,在 GitHub 上拥有极高的关注度。它可以将处于 NAT 或防火墙后面的内网服务暴露到公网,实现远程访问。FRP 支持 TCP、UDP、HTTP、HTTPS 等多种协议,配置灵活且性能出色。利用搬瓦工 VPS 的公网 IP 作为服务端,可以轻松穿透家庭或办公网络的 NAT 限制。

一、FRP 架构说明

  • frps(服务端):运行在具有公网 IP 的服务器上,即搬瓦工 VPS。
  • frpc(客户端):运行在需要被穿透的内网设备上。
  • 工作流程:客户端主动连接服务端,建立隧道,外部用户通过服务端的端口访问内网服务。

二、安装 FRP 服务端

2.1 下载 FRP

cd /usr/local
wget https://github.com/fatedier/frp/releases/latest/download/frp_0.61.0_linux_amd64.tar.gz
tar -xzf frp_0.61.0_linux_amd64.tar.gz
mv frp_0.61.0_linux_amd64 frp
cd frp

请访问 FRP GitHub 发布页面获取最新版本号并替换上述命令中的版本号。

2.2 配置服务端

编辑 frps.toml 配置文件:

cat > /usr/local/frp/frps.toml <<EOF
bindPort = 7000
auth.method = "token"
auth.token = "your_secure_token_here"

webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin_password"

vhostHTTPPort = 8080
vhostHTTPSPort = 8443

log.to = "/var/log/frps.log"
log.level = "info"
log.maxDays = 7
EOF

2.3 创建 Systemd 服务

cat > /etc/systemd/system/frps.service <<EOF
[Unit]
Description=FRP Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml
Restart=always
RestartSec=5
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now frps

三、配置防火墙

开放 FRP 所需端口:

ufw allow 7000/tcp
ufw allow 7500/tcp
ufw allow 8080/tcp
ufw allow 8443/tcp

根据实际穿透需求,还需要开放对应的端口段,例如:

ufw allow 6000:6100/tcp

四、安装 FRP 客户端

在内网设备上下载相同版本的 FRP,并配置客户端:

4.1 TCP 穿透示例(SSH 远程访问)

cat > frpc.toml <<EOF
serverAddr = "你的搬瓦工VPS公网IP"
serverPort = 7000
auth.method = "token"
auth.token = "your_secure_token_here"

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
EOF

配置完成后,通过 VPS 的 6000 端口即可 SSH 访问内网设备:

ssh -p 6000 user@你的VPS公网IP

4.2 HTTP 穿透示例(Web 服务)

[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["web.yourdomain.com"]

将域名 web.yourdomain.com 的 DNS 解析到 VPS 公网 IP,通过 http://web.yourdomain.com:8080 即可访问内网 Web 服务。

4.3 HTTPS 穿透示例

[[proxies]]
name = "web-https"
type = "https"
localIP = "127.0.0.1"
localPort = 443
customDomains = ["secure.yourdomain.com"]

4.4 启动客户端

./frpc -c frpc.toml

五、Dashboard 管理面板

FRP 内置了 Web 管理面板,在浏览器中访问 http://你的VPS公网IP:7500,输入配置中设定的用户名和密码即可查看:

  • 当前所有隧道的连接状态
  • 实时流量统计
  • 客户端连接信息
  • 代理列表和健康检查状态

六、高级功能

6.1 STCP 安全隧道

STCP 模式下,访问者也需要运行 FRP 客户端,提供端到端加密:

# 被访问端
[[proxies]]
name = "secret_ssh"
type = "stcp"
secretKey = "shared_secret"
localIP = "127.0.0.1"
localPort = 22

# 访问端
[[visitors]]
name = "secret_ssh_visitor"
type = "stcp"
serverName = "secret_ssh"
secretKey = "shared_secret"
bindAddr = "127.0.0.1"
bindPort = 6000

6.2 负载均衡

[[proxies]]
name = "web_01"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["web.yourdomain.com"]
loadBalancer.group = "web"
loadBalancer.groupKey = "web_key"

七、安全加固

  • 使用强认证 Token:auth.token 应使用随机生成的长字符串。
  • 限制端口范围:在服务端配置中限制客户端可使用的端口范围。
  • 启用 TLS 加密:在 frps.toml 中添加 transport.tls.force = true
  • 限制 Dashboard 访问:将 Dashboard 绑定到 127.0.0.1,通过 SSH 隧道访问。
# 服务端限制端口范围
allowPorts = [
  { start = 6000, end = 6100 }
]

八、常见问题

客户端连接失败

检查 Token 是否一致、端口是否开放:

ss -tlnp | grep 7000
cat /var/log/frps.log

穿透后访问缓慢

可能是 VPS 带宽限制。检查搬瓦工 VPS 的带宽配额和网络质量。也可以开启压缩减少流量:

transport.useCompression = true

总结

FRP 是功能最全面的内网穿透工具之一,几乎可以满足所有远程访问需求。搬瓦工 VPS 提供稳定的公网 IP 和充足的带宽,是搭建 FRP 服务端的理想选择。如需更轻量的穿透方案,可参考 NPS 内网穿透教程;如需免公网 IP 的方案,请查看 Cloudflare Tunnel 教程。购买搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买链接:bwh81.net

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。