Linux内网穿透核心是按需选型:frp适合多服务灵活映射,Cloudflared实现零配置HTTPS穿透,SSH隧道最简安全,ZeroTier提供类局域网组网,IPIP/GRE用于系统级路由,L2TP/IPsec适用于企业级远程接入。

Linux 系统中为服务器配置虚拟隧道实现安全网络穿透,核心是根据实际场景选择合适的技术路径:不依赖公网 IP 时优先用 frp 或 Cloudflared;已有公网服务器且追求轻量加密可用 SSH 隧道;需组网互通选 ZeroTier;要求系统级路由或兼容性高可考虑 IPIP/GRE;企业级远程接入则 L2TP/IPsec 更稳妥。没有“万能方案”,只有匹配需求的组合。
frp:适合需要灵活映射多个服务的场景
frp(Fast Reverse Proxy)由服务端 frps 和客户端 frpc 组成,适用于将内网 Web、SSH、数据库等服务按需暴露到公网。
- 公网服务器上部署 frps,开放 7000(控制端口)和映射端口(如 8080)
- 内网机器运行 frpc,配置中指定目标服务地址(如 127.0.0.1:22)和映射类型(tcp/http/https)
- 支持 TLS 加密、身份验证、连接限速,Docker 一键部署也成熟稳定
- 注意:frpc 必须能主动连通 frps;若服务监听 127.0.0.1,则只能本机访问,需改为 0.0.0.0 或内网 IP 才能被 frpc 正确转发
Cloudflared:零配置 HTTPS 穿透,适合临时共享与开发演示
基于 Cloudflare Tunnel,无需公网 IP、不开放任何端口,所有流量经 Cloudflare 全球网络加密中转。
- 在内网服务器安装 cloudflared,登录账号后执行 cloudflared tunnel create 和 tunnel route dns
- 配置 YAML 文件,将本地服务(如 http://localhost:3000)绑定到自定义子域名(如 dev.yourdomain.com)
- 启动隧道后自动获得 HTTPS 地址,自带 DDoS 防护、WAF 和访问控制
- 限制:免费版仅支持单隧道、无自定义证书;适合非生产环境快速验证
SSH 隧道:最简安全通道,无需额外工具
利用已有的 SSH 服务,通过 -R(远程转发)让内网服务“反向”出现在跳板机上。
- 从内网机器执行:ssh -fNT -R *:2222:localhost:22 user@public-server-ip
- 其中 *:2222 表示跳板机监听所有网卡的 2222 端口,localhost:22 是内网 SSH 服务
- 跳板机需开启 GatewayPorts clientspecified 并重载 sshd
- 加 -fNT 实现后台运行,配合 ServerAliveInterval=60 防止超时断连
ZeroTier:类局域网组网,适合多设备长期互通
创建一个去中心化虚拟局域网,所有加入设备获得统一子网 IP,像在同一内网一样通信。
- 官网注册后创建网络,获取 16 位 network ID
- 内网服务器执行 zerotier-cli join <network-id>,再在控制台授权该节点
- 系统自动分配 10.x.x.x 或 192.168.x.x 段 IP,可直接用该 IP 访问 SSH、Web、Samba 等服务
- 优势是配置一次、长期有效,跨 NAT/防火墙能力强,但依赖 ZeroTier 中央根服务器协调


















