服务器内网穿透教程:零基础实现服务器内网穿透

什么是内网穿透,为什么你需要它

内网穿透就是把没有公网 IP 的内网服务(比如家里的 NAS、开发中的 API、远程桌面)通过一台中间服务器暴露到公网上,让外网也能直接访问。
典型场景:在家调试代码远程管理内网设备搭建临时演示环境

如果你是刚接触服务器的新手,这条 服务器内网穿透教程 会带你用 frp 这个轻量工具,在 15 分钟内跑通第一个穿透隧道。

准备工作清单

完成本教程你需要:

  • 一台有公网 IP 的云服务器(VPS,最低配 1 核 1G 即可,系统推荐 CentOS 7+ 或 Ubuntu 20+)
  • 一台目标内网机器(可以是 Linux、Windows 或 macOS,本文以 Linux 为例)
  • SSH 客户端(Windows 用 Xshell 或 Putty,Mac/Linux 直接用终端)
  • 知道服务端和客户端的防火墙如何放行端口(云服务商的安全组也要配置)
注意:公网服务器的 防火墙 和云平台 安全组 都要开放 frp 使用的端口(默认 7000 用于控制,其他端口用于具体服务)。

第一步:在公网服务器上部署 frp 服务端

登录你的公网服务器,依次执行以下命令:

# 下载 frp 最新稳定版(以 0.53.2 为例,版本号根据官方调整)
wget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gz
# 解压
tar -xzf frp_0.53.2_linux_amd64.tar.gz
# 移到 /usr/local 方便管理
sudo mv frp_0.53.2_linux_amd64 /usr/local/frp

编辑服务端配置文件 frps.toml(注意新版 frp 使用 toml 格式):

sudo vim /usr/local/frp/frps.toml

写入以下内容(替换 your_token 为你自己设的密钥):

bind_port = 7000
# 用于身份验证的 token,客户端必须一致
auth.token = "your_token"
# 面板管理端口(可选,建议开启方便查看状态)
web_server.addr = "0.0.0.0"
web_server.port = 7500
web_server.user = "admin"
web_server.password = "admin123"

启动服务端:

/usr/local/frp/frps -c /usr/local/frp/frps.toml &

检查是否启动成功:

netstat -tuln | grep 7000
# 如果看到 LISTEN 就说明成功了

第二步:在内网机器上部署 frp 客户端

进入你的内网机器(以 Linux 为例),同样下载并解压 frp(注意 CPU 架构,如果是 arm 请选 arm64 版本)。

# 同样下载客户端(与服务端同版本),用 scp 或 wget 都行
wget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gz
tar -xzf frp_0.53.2_linux_amd64.tar.gz
sudo mv frp_0.53.2_linux_amd64 /usr/local/frp

编辑客户端配置文件 frpc.toml

sudo vim /usr/local/frp/frpc.toml

写入以下内容(假设你想穿透内网 80 端口的 Web 服务):

server_addr = "你的公网服务器IP"
server_port = 7000
auth.token = "your_token"

[[proxies]]
name = "web"
type = "tcp"
local_ip = "127.0.0.1"
local_port = 80
remote_port = 8080

启动客户端:

/usr/local/frp/frpc -c /usr/local/frp/frpc.toml &

第三步:外网访问验证

现在你可以在任何能上网的设备上,访问 http://你的公网服务器IP:8080 — 如果能正常打开内网机器上的 Web 页面,说明隧道已通。

同样,如果你想穿透 SSH 服务,把配置文件改成:

[[proxies]]
name = "ssh"
type = "tcp"
local_ip = "127.0.0.1"
local_port = 22
remote_port = 2222

然后外网通过 ssh -p 2222 用户名@公网服务器IP 即可连接内网机器。

避坑与高频问题

  • 防火墙/安全组没开端口:这是最常见的原因。公网服务器需要放行 7000、7500(管理面板)和所有 remote_port(如上例 8080);内网机器一般不需要额外设置。
  • 客户端和服务端版本不一致:务必下载同一个大版本(如 0.53.x),否则可能报错连接失败。
  • Token 不匹配frps.tomlfrpc.toml 中的 auth.token 必须完全一致。
  • 是否设置开机自启:虽然本教程用临时启动,生产环境建议写 systemd 服务。创建 /etc/systemd/system/frps.servicefrpc.service 文件,内容参考官方示例。
  • 端口冲突:确保 remote_port 在公网服务器上未被占用。

如果你在操作过程中遇到 connection refused,先执行 tail -f /var/log/frpc.log 查看客户端日志,绝大多数问题一眼就能定位。

总结

跟着这份 服务器内网穿透教程,你从零完成了 frp 服务的搭建与初步使用。
核心就是三步:公网服务器装服务端 → 内网机器装客户端 → 配置 proxy 并启动
建议你在无风险测试环境先跑通一次,再应用到实际项目中。
后续还可以学习 frp 的 HTTPS 穿透、UDP 打洞、多隧道管理等高级玩法,搭配 Dashboard 面板彻底掌控你的内网服务。

分享到:
上一篇
Docker部署frp教程指南
下一篇
宝塔面板MySQL连接数优化:宝塔面板MySQL连接数怎么调
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意