首页 / 使用指南 / 端口转发与内网穿透指南 - 2026 高级详解与实战教程 | 网络工具 | VPS推荐
📚 技术教程 ID: port-forwarding-and-nat-traversal

端口转发与内网穿透指南 - 2026 高级详解与实战教程 | 网络工具 | VPS推荐

学习使用 iptables、socat、frp、Gost、SSH 与 Cloudflare Tunnel,在明确认证、监听范围、日志和回滚边界的前提下发布内网服务或建立安全隧道。

作者:VPS推荐技术评测组
核验时间:2026-09-30
预计阅读:5-8 分钟
已通过真实命令复核

学习使用 iptables、frp、Gost、SSH 与 Cloudflare Tunnel,在认证、监听范围、日志和回滚边界清晰的前提下发布内网服务。

🧠 核心概念解析

端口转发 (Port Forwarding) 指的是将发送到一个 IP 地址和端口号组合的数据包,转发到另一个可能不同的 IP 地址和端口号。而内网穿透 (NAT Traversal) 是一种特殊的端口转发,目的是让位于 NAT(网络地址转换)设备(如家庭路由器)后面的内网设备,能够被公网访问。

简单来说,这些技术就像是为没有公网地址的设备(例如您的家庭电脑)在拥有公网 IP 的 VPS 上开一个“窗口”,让外部的访问可以通过这个窗口找到并访问您的设备。

🎯 常见应用场景

🏠

远程访问家庭 NAS

将家中的 NAS 或树莓派服务(如 Plex, Home Assistant)安全地发布到公网,随时随地访问。 💻

临时开发调试

将本地开发环境的 Web 服务临时暴露给同事或客户进行预览,无需部署到测试服务器。 🏢

访问内网办公系统

安全地访问公司内网的 OA、Jira 等系统,而无需使用复杂的 VPN。 🌉

跳板机与代理

利用一台服务器作为跳板,访问其内网中的其他机器,或者作为网络代理使用。

⚖️ 方案对比与选择

不同的工具有不同的适用场景,下表可以帮助您快速选择: 工具 易用性 特点 核心应用场景 iptables 困难 内核级转发,性能最高 服务器端口转发、NAT Socat 简单 单行命令,轻量级,支持TCP/UDP 临时或极简的单端口转发 SSH 隧道 简单 系统自带,无需额外软件,加密 临时、安全的端口转发 Gost 中等 功能极其强大,协议支持全面,加密 复杂的多级转发、隧道链 frp 简单 专为内网穿透设计,配置简单,稳定 将 NAT 后内网服务发布到公网 Cloudflare Tunnel 中等 主动出站连接,可配访问策略,不等于自动安全 无公网 IP 家庭宽带、希望减少入站暴露的 Web 服务

💡 选择建议

  • 👉 减少入站暴露/无公网 IP 家庭宽带: 可优先评估 Cloudflare Tunnel,但仍需配置访问策略、入口限制、日志和凭据保护。
  • 👉 长期、稳定地用 VPS 暴露内网服务: frp 是最经典的选择。
  • 👉 临时调试、安全访问远程数据库: 优先使用 SSH 隧道或 Socat。
  • 👉 构建复杂的加密隧道网络: 选择功能最强大的 Gost。
  • 👉 VPS 极致性能端口转发: 使用内核级的 iptables。

🔥 iptables 转发 (同网)

这是 Linux 内核级别的转发,性能最高,适用于将 VPS 的一个端口收到的流量转发到本机或其他 IP 的另一个端口。 1

开启内核 IP 转发

编辑 /etc/sysctl.conf 文件,确保 net.ipv4.ip_forward=1 这一行存在且没有被注释。

取消注释或添加此行

net.ipv4.ip_forward=1

使配置生效

sysctl -p 2

添加转发规则

假设我们要将 VPS 8888 端口的 TCP 流量转发到本机 8080 端口:

先记录现有规则,再添加最小范围规则

iptables-save > /root/iptables.before-port-forward.v4 iptables -t nat -A PREROUTING -p tcp —dport 8888 -j DNAT —to-destination 127.0.0.1:8080 iptables -t nat -A POSTROUTING -p tcp -d 127.0.0.1 —dport 8080 -j MASQUERADE

验证计数和监听范围

iptables -t nat -vnL PREROUTING ss -lntp

回滚:删除对应规则,或恢复备份前先确认不会覆盖其他变更

iptables-restore < /root/iptables.before-port-forward.v4 您还需要安装 iptables-persistent 来保存规则,以防重启后失效。

🔀 进阶:Socat 极简转发

如果您觉得 iptables 的规则过于复杂难以记忆,Socat 是您的最佳平替。它可以像一条管道一样,直接将一个端口的数据倒进另一个端口。

1. 安装 socat (Debian/Ubuntu)

apt update && apt install socat -y

2. 将本机 8888 端口转发到目标 1.2.3.4 的 80 端口

socat TCP4-LISTEN:8888,reuseaddr,fork TCP4:1.2.3.4:80 运行后,socat 会在后台挂起监听。如果您需要长期运行,可以配合 nohup 或将其写成 systemd 服务。

🔗 SSH 隧道 (便捷)

利用 SSH 协议建立的加密隧道,无需安装额外软件,非常适合临时和安全的转发需求。

本地转发 (-L)

将本地端口通过 VPS 转发到目标服务器。常用于安全地访问远程数据库。

访问本地 8080 端口 -> 远程 3306 端口

ssh -L 8080:localhost:3306 user@vps_ip

远程转发 (-R)

将VPS 端口转发到本地服务,实现简单的内网穿透。

仅让 VPS 本机访问:vps_ip:8080 -> 本地 3000 端口

ssh -N -T -o ExitOnForwardFailure=yes -R 127.0.0.1:8080:localhost:3000 user@vps_ip 注意:需要修改 VPS 的 /etc/ssh/sshd_config 并启用 GatewayPorts yes 才能让外网访问。

👻 Gost 隧道 (强大)

Gost 是一个功能极其强大的瑞士军刀级隧道工具,支持海量协议和复杂的转发组合。 1

下载并运行 Gost

GOST v3 的官方主线已迁移到 go-gost/gost Releases。下面的命令只支持常见的 amd64 / arm64,安装时读取当前稳定版并校验官方 checksums.txt;生产环境确认兼容后应记录实际版本,不要无人值守自动升级。

安装 GOST v3(官方主线:go-gost/gost)

case ”$(uname -m)” in x86_64) GOST_ARCH=“amd64” ;; aarch64|arm64) GOST_ARCH=“arm64” ;; *) echo “当前示例不支持此架构:$(uname -m)”; exit 1 ;; esac

GOST_VERSION=”$(curl -fsSL https://api.github.com/repos/go-gost/gost/releases/latest | sed -n ‘s/.”tag_name”: “v([^”])”./\1/p’)” test -n “$GOST_VERSION” || { echo “无法获取 GOST 稳定版版本号”; exit 1; }

GOST_ASSET=“gost_${GOST_VERSION}linux${GOST_ARCH}.tar.gz” GOST_TMP=”$(mktemp -d)” trap ‘rm -rf “$GOST_TMP”’ EXIT

curl -fL “https://github.com/go-gost/gost/releases/download/v${GOST_VERSION}/${GOST_ASSET}” -o “$GOST_TMP/${GOST_ASSET}” curl -fL “https://github.com/go-gost/gost/releases/download/v${GOST_VERSION}/checksums.txt” -o “$GOST_TMP/checksums.txt” (cd “$GOST_TMP” && grep ” ${GOST_ASSET}$” checksums.txt | sha256sum -c -) tar -xzf “$GOST_TMP/${GOST_ASSET}” -C “$GOST_TMP” install -m 0755 “$GOST_TMP/gost” /usr/local/bin/gost gost -V 2

简单端口转发示例

将 VPS 8888 端口的 TCP 流量转发到 example.com 的 80 端口。

gost -L tcp://:8888/example.com:80 Gost 的玩法远不止于此,可以通过 -F 参数建立复杂的多级转发链,请参考其官方文档。

🚀 frp 穿透 (常用)

frp 是一款专注于内网穿透的高性能反向代理应用,配置简单,非常稳定。非常适合将处于家庭 NAT 路由下的设备暴露给拥有公网 IP 的 VPS。

frp 架构

  • frps (服务端): 部署在有公网 IP 的 VPS 上。

  • frpc (客户端): 部署在需要穿透的内网设备上。

    1

在 VPS 上配置 frps (服务端)

下载 frp 并编辑 frps.ini 文件:

frps.toml(frp v0.70.1 示例;2026-08-12 复核,生产环境固定并验证实际版本)

bindPort = 7000

[auth] method = “token” token = “replace-with-a-random-secret”

管理接口不要监听公网,按需绑定到管理网卡

webServer.addr = “127.0.0.1”

webServer.port = 7500 运行命令: ./frps -c ./frps.ini

2  

在内网设备上配置 frpc (客户端)

下载 frp 并编辑 frpc.ini 文件:

frpc.toml(frp v0.70.1 示例;2026-08-12 复核)

serverAddr = “your_vps_ip” serverPort = 7000

[auth] method = “token” token = “replace-with-the-same-secret”

[proxies.web] type = “tcp” localIP = “127.0.0.1” localPort = 80 remotePort = 8080 运行命令: ./frpc -c ./frpc.ini 3

访问服务

  • 访问 your_vps_ip:8080 即可看到您内网设备的 Web 服务。
  • 通过 ssh -p 6000 user@your_vps_ip 即可连接到内网设备的 SSH。

☁️ 进阶:Cloudflare Tunnel (零信任穿透)

如果您没有公网 IP,或希望减少公网入站端口,Cloudflare Tunnel 可以让内网设备主动向 Cloudflare 建立出站连接,再按 hostname 和 service 发布指定应用。它能减少入站暴露,但不替代应用认证、访问策略、凭据保护、日志审计和故障回退。

1. 在本地机器(如 NAS)上安装 cloudflared,并固定已验证版本

curl -L —output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dpkg -i cloudflared.deb

2. 创建隧道并保存凭据文件,限制文件权限

cloudflared tunnel create my-nas chmod 600 ~/.cloudflared/*.json

3. 只发布明确的内部服务,不要把管理面板当作默认入口

cloudflared tunnel route dns my-nas nas.yourdomain.com cat > ~/.cloudflared/config.yml <<‘EOF’ tunnel: my-nas credentials-file: /home/your-user/.cloudflared/TUNNEL-UUID.json ingress:

4. 先校验配置,再运行并查看日志

cloudflared tunnel ingress validate cloudflared tunnel run my-nas

回滚:删除 DNS 路由和隧道前,先确认没有其他服务共用

cloudflared tunnel route dns delete my-nas nas.yourdomain.com

🔒 安全注意事项

将内网服务暴露到公网会带来极大的安全风险,请务必遵守以下原则:

🔑使用强 Token

在使用 frp、Gost 等工具时,务必设置复杂的 token 或密码,防止未授权的客户端连接您的服务端。

🛡️最小化暴露

只转发确实需要的端口。SSH 或远程桌面应优先通过 VPN、访问策略或绑定内网地址使用;如果必须发布,至少限制来源、启用强认证和监控,不要把换成高位端口当作安全控制。

🌐结合 HTTPS

对于暴露的 Web 服务,强烈建议配合 Nginx 反向代理和 SSL 证书,实现 HTTPS 加密访问,防止中间人嗅探。

🚀 下一步行动

端口转发掌握后,您可以进一步深入网络底层或进行系统级优化: [ 📡

网络包分析排查

网络不通?通过 tcpdump 抓包精准定位转发过程中的丢包或路由问题。 开始学习 ](/guides/packet-analysis-and-troubleshooting)[ ⚙️

Linux 系统优化

优化系统内核参数,提升海量并发下的转发性能与稳定性。 开始学习 ](/guides/linux-optimization)[ ⭐

VPS 推荐榜单

查看 VPS 实测与服务商索引,先看结论再去官网。 查看推荐 ](/vps-recommendations)[ 📚

浏览更多教程

继续探索服务器安全、网站搭建、性能优化和 AI 环境主题。 探索教程 ](/guides)
读完后建议 先验证,再选择 把判断落到具体选择 准备购买 VPS 时,先对照推荐榜单和真实测评确认线路、价格、用途与风险;只是继续学习,可以回到教程索引按主题往下看。 查看推荐榜单 回到教程索引

VPS

关于本文作者与审校团队

了解内容准则

本文由 VPS推荐技术评测组 联合撰写与维护。团队成员具备多年海外 VPS 部署、Linux 系统调优与网络架构实践经验。所有指南均以命令行真实回显、安全性优先及可回退步骤为原则。

© 2026 VPS推荐 (vpstuijian.pro) · 保留所有权利