内网穿透工具

什么是内网穿透?

内网穿透(NAT穿透) 是一种技术,也被称为内网映射或 nat 穿透,允许外部网络通过公网服务器或中继节点访问局域网(内网)中的设备或服务。简单来说,就是让外网能访问你的内网,把自己的内网(主机)当成服务器,让外网能访问。

  • 典型场景:

    家庭NAS通过公网访问
    本地开发环境(如微信小程序)需公网调试
    远程访问公司内网的数据库或办公系统

  • 技术原理:

    反向代理:通过公网服务器将外部请求转发到内网(如frp、ngrok)。
    P2P直连:通过虚拟组网或打洞技术实现直接连接(如ZeroTier、Tailscale)。


以下是 10款支持Windows/Mac系统的内网穿透工具,涵盖开源与商业方案,附官网地址、安装步骤、原理及优缺点分析

1. frp (Fast Reverse Proxy)

  • 官网:https://github.com/fatedier/frp

  • 开源地址:https://github.com/fatedier/frp

  • 原理:反向代理,通过公网服务器转发请求到内网。

  • 安装步骤:

    
    # Mac/Linux: 下载对应版本解压
    wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_darwin_amd64.tar.gz
    tar -zxvf frp_*.tar.gz
    
  • 启动步骤:

    # 服务端(公网服务器)
    # 编辑 frps.ini
    [common]
    bind_port = 7000
    dashboard_port = 7500
    dashboard_user = admin
    dashboard_pwd = your_password
    
    # 启动服务端(Linux/Mac)
    ./frps -c frps.ini
    
    # Windows
    frps.exe -c frps.ini
    
    # 客户端(内网设备)
    # 编辑 frpc.ini
    [common]
    server_addr = 公网服务器IP
    server_port = 7000
    
    [web]
    type = http
    local_port = 80
    custom_domains = your.domain.com
    
    # 启动步骤(Linux/Mac)
    ./frpc -c frpc.ini
    
    # Windows
    frpc.exe -c frpc.ini
    
  • 优点:
    协议支持全(TCP/UDP/HTTP)、配置灵活。

  • 缺点:
    需自建服务器,配置较复杂。


2. ngrok

  • 官网:https://ngrok.com

  • 开源地址:https://github.com/inconshreveable/ngrok(开源版需自建)

  • 原理:反向代理,通过官方服务器生成临时域名。

  • 安装步骤:

    # Mac (Homebrew):
    brew install ngrok/ngrok/ngrok
    # 去 ngrok官网 注册账号
    # 获取你的authtoken
    # 配置token:
    ngrok config add-authtoken <TOKEN>
    
    # Windows: 官网下载exe,命令行运行:
    ngrok.exe http 80
    
    
  • 启动步骤:

    # 登录并启动HTTP隧道(Mac)
    ngrok authtoken <你的Token>  # 首次使用需登录
    ngrok http 80  # 映射本地80端口
    
    # 高级用法(TCP隧道)
    ngrok tcp 22  # 映射SSH服务到公网端口
    

    在这里插入图片描述
    访问 http://127.0.0.1:4040 查看隧道状态。

  • 优点:
    即装即用,适合临时测试。

  • 缺点:
    免费版域名随机,付费功能较贵。


3. ZeroTier

  • 官网:https://www.zerotier.com

  • 开源地址:https://github.com/zerotier/ZeroTierOne

  • 原理:虚拟局域网(SD-WAN),通过P2P直连或中继穿透。

  • 安装步骤:

    # Mac (Homebrew):
    brew install zerotier-one
    sudo zerotier-cli join <Network-ID>
    
    # Windows: 官网下载安装包,加入网络ID即可。
    
    
  • 启动步骤:

    # 	加入虚拟网络
    # Mac/Linux
    sudo zerotier-cli join <Network-ID>
    
    # Windows:安装客户端后,图形界面输入Network-ID。
    

    授权设备
    登录 ZeroTier官网控制台,在对应网络ID下勾选设备授权。
    访问内网设备
    使用分配的ZeroTier虚拟IP(如 192.168.192.10)直接访问。

  • 优点:
    跨平台组网,支持全协议。

  • 缺点:
    免费版限25设备,依赖中央服务器。


4. Tailscale

  • 官网:https://tailscale.com

  • 开源地址:https://github.com/tailscale/tailscale(核心基于WireGuard)

  • 原理:基于WireGuard的P2P VPN,自动穿透NAT。

  • 安装步骤:

    # Mac (Homebrew):
    brew install tailscale
    sudo tailscale up
    
    # Windows: 官网下载安装包,登录账号后自动组网。
    
    
    
  • 启动步骤:

    
    # Mac/Linux
    sudo tailscale up  # 自动打开浏览器登录账号
    
    # Windows:安装客户端后,点击“Connect”登录账号。
    
    # 登录后,Tailscale会为设备分配虚拟IP(如 100.x.x.x),
    # 直接通过该IP访问其他设备。
    
    
  • 优点:
    配置简单,支持多设备同步。

  • 缺点:
    高级功能需付费(如SSO、审计日志)。


5. Cloudflare Tunnel

  • 官网:https://developers.cloudflare.com/

  • 开源地址:https://github.com/cloudflare/cloudflared

  • 原理:通过Cloudflare边缘节点代理内网HTTP服务。

  • 安装步骤:

    # Mac/Linux:
    wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-amd64.tgz
    
    chmod +x cloudflared
    
    ./cloudflared tunnel --url http://localhost:80
    
    # Windows: 下载exe文件,命令行同上。
    
    
  • 启动步骤:

    # 1. 登录Cloudflare账号
    cloudflared tunnel login
    
    # 2. 创建隧道
    cloudflared tunnel create <隧道名称>
    
    # 3. 配置路由(需绑定域名)
    cloudflared tunnel route dns <隧道名称> <子域名>
    
    # 4. 启动隧道(映射本地80端口)
    cloudflared tunnel run --url http://localhost:80 <隧道名称>
    
  • 优点:
    免费、集成CDN和DDoS防护。

  • 缺点:
    仅支持HTTP(S),需绑定Cloudflare域名。


6. OpenVPN

  • 官网:https://openvpn.net

  • 开源地址:https://github.com/OpenVPN/openvpn

  • 原理:通过 SSL/TLS 加密隧道将远程设备接入虚拟局域网(VPN),间接实现内网穿透,允许远程用户访问内网资源。

  • 适用场景:企业远程办公、加密访问内网服务(如数据库、文件服务器)。

  • 安装步骤
    (1) 服务端安装

    # 安装 OpenVPN 和 Easy-RSA(证书管理工具)
    sudo apt update
    sudo apt install openvpn easy-rsa
    
    # 初始化证书颁发机构(CA)
    cp -r /usr/share/easy-rsa/ ~/easy-rsa
    cd ~/easy-rsa
    ./easyrsa init-pki
    ./easyrsa build-ca  # 生成 CA 证书
    
    # 生成服务端证书
    ./easyrsa gen-req server nopass
    ./easyrsa sign-req server server
    
    # 生成 Diffie-Hellman 参数和 TLS 密钥
    ./easyrsa gen-dh
    openvpn --genkey --secret ta.key
    
    # 配置 OpenVPN 服务端
    sudo cp ~/easy-rsa/pki/{ca.crt,issued/server.crt,private/server.key,dh.pem} /etc/openvpn/server/
    sudo cp ta.key /etc/openvpn/server/
    sudo nano /etc/openvpn/server/server.conf  # 编辑配置文件(示例配置见下文)
    

    服务端配置文件示例(/etc/openvpn/server/server.conf):

    port 1194
    proto udp
    dev tun
    ca ca.crt
    cert server.crt
    key server.key
    dh dh.pem
    server 10.8.0.0 255.255.255.0
    push "route 192.168.1.0 255.255.255.0"  # 允许访问内网网段
    push "redirect-gateway def1 bypass-dhcp"  # 全流量代理(可选)
    push "dhcp-option DNS 8.8.8.8"
    keepalive 10 120
    tls-auth ta.key 0
    cipher AES-256-CBC
    user nobody
    group nogroup
    persist-key
    persist-tun
    status openvpn-status.log
    verb 3
    

    (2) 客户端配置
    生成客户端证书(服务端操作):

    cd ~/easy-rsa
    ./easyrsa gen-req client1 nopass
    ./easyrsa sign-req client client1
    

    客户端配置文件(client.ovpn):

    client
    dev tun
    proto udp
    remote your-server-ip 1194  # 替换为服务端公网IP
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca ca.crt
    cert client1.crt
    key client1.key
    remote-cert-tls server
    tls-auth ta.key 1
    cipher AES-256-CBC
    verb 3
    
  • 客户端连接:

    # Windows/macOS:
    使用 OpenVPN GUI 或 Tunnelblick(macOS),导入 .ovpn 文件。
    # Linux:
    命令行运行 sudo openvpn --config client.ovpn。
    
  • 优点:
    企业级安全性:支持 SSL/TLS 加密和证书认证,适合敏感数据传输。
    跨平台兼容:支持 Windows/macOS/Linux/移动端。
    灵活路由:可配置仅内网流量走 VPN,或全流量代理。

  • 缺点:
    配置复杂:需手动管理证书和密钥,新手学习成本高。
    性能开销:加密过程可能降低网络速度(尤其是低性能设备)。
    依赖公网 IP:需服务端具备公网 IP 或通过其他工具(如 frp)穿透。


7. GoProxy

  • 官网:https://snail007.host900.com/goproxy/

  • 开源地址:https://github.com/snail007/goproxy

  • 手册:https://snail007.host900.com/goproxy/manual/zh/#/

  • 原理:GoProxy 是一个多协议代理工具,支持 HTTP(S)/TCP/UDP/Socks5 等协议,通过反向代理或端口转发实现内网穿透。

  • 适用场景:复杂代理需求(如多级转发、加密隧道、负载均衡)。

  • 安装步骤:

    # 1. 直接下载二进制文件(推荐)
    # macOS/Linux:
    # 下载最新版(替换版本号)
    wget https://github.com/snail007/goproxy/releases/download/v11.3/proxy-darwin-amd64.tar.gz
    tar -zxvf proxy-darwin-amd64.tar.gz
    mv proxy /usr/local/bin/
    
    # Windows:
    访问 GitHub Releases,下载 proxy-windows-amd64.exe。
    
    重命名为 proxy.exe,放入系统路径(如 C:\Windows\)。
    # 2. 通过 Homebrew(仅 macOS)
    
    brew install goproxy
    # 3. 验证安装
    proxy --version
    
  • 启动步骤:

    # 1. HTTP反向代理(暴露内网Web服务)
    # 在公网服务器运行(反向代理到内网80端口)
    # 内网用户通过公网IP:80访问服务。
    proxy http -t tcp -p ":80" -T tcp -P "内网IP:80"
    
    
    # 2. TCP/UDP端口转发
    # 将公网服务器的 3306 转发到内网MySQL(TCP)
    proxy tcp -p ":3306" -T tcp -P "内网IP:3306"
    
    # UDP转发(如内网DNS服务)
    proxy udp -p ":53" -T udp -P "内网IP:53"
    
    # 3. Socks5代理(访问内网任意服务)
    # 在公网服务器启动 Socks5 代理(端口1080)
    # 客户端配置浏览器或系统代理为 socks5://公网IP:1080
    proxy socks -t tcp -p ":1080"
    
    
    # 4. 加密隧道(保护数据传输)
    # 服务端(公网)
    proxy server -t tcp -p ":8000" -k "password"
    
    # 客户端(内网)
    proxy client -t tcp -p "内网IP:80" -T tcp -P "公网IP:8000" -k "password"
    
  • 优点:
    协议支持全面:覆盖 HTTP(S)/TCP/UDP/Socks5,适合复杂场景。
    高灵活性:支持多级转发、负载均衡、流量加密。
    跨平台:Windows/macOS/Linux 均可运行。
    开源免费:无商业功能限制,代码透明。

  • 缺点
    配置复杂:命令行参数较多,新手学习成本高。
    文档较少:非主流工具,社区资源有限。
    无图形界面:纯命令行操作,不适合小白用户。


8. PageKite

  • 官网:https://pagekite.net

  • 开源地址:https://github.com/pagekite/PyPagekite

  • 原理:反向代理,动态更新DNS记录。

  • 安装步骤:

    # Mac/Linux:
    pip install pagekite
    pagekite.py 80 <你的域名>.pagekite.me
    
    # Windows: 使用Python安装后运行相同命令。
    
  • 启动步骤:

    # 安装后启动(需注册PageKite账号)
    pagekite.py 80 <你的域名>.pagekite.me
    
    # 自定义域名(付费功能)
    pagekite.py 80 yourdomain.com:页面KiteSecret
    
  • 优点:
    支持自定义域名,开源可控。

  • 缺点:
    配置较复杂,需Python环境。


9. NetBird

  • 官网:https://netbird.io

  • 开源地址:https://github.com/netbirdio/netbird

  • 原理:基于WireGuard的P2P组网,自动穿透NAT。

  • 安装步骤:

    # Mac (Homebrew):
    brew install netbirdio/tap/netbird
    netbird up
    
    # Windows: 官网下载安装包,一键运行。
    
  • 启动步骤:

    # Mac/Linux
    netbird up  # 自动打开浏览器登录
    
    # Windows:安装客户端后点击“Connect”。
    
  • 优点:
    完全开源,无设备数量限制。

  • 缺点:
    新项目,社区生态较小。


10. ZeroNews

  • 官网:https://www.zeronews.cc/

  • 开源地址:未提及(闭源)

  • 原理:采用自研高性能 zeronews tunnel 协议,构建安全稳定的内外网通信通道,支持 TCP、UDP 等多种协议,通过优化丢包、重传等机制,在弱网环境下也能保证高带宽、高并发、低延时的业务访问需求。

  • 安装步骤

    # Mac系统
    # Apple 芯片
    sudo curl -o /usr/local/bin/zeronews https://download.zeronews.cc/macos/arm/zeronews && sudo chmod +x /usr/local/bin/zeronews
    
    # Intel 芯片
    sudo curl -o /usr/local/bin/zeronews https://download.zeronews.cc/macos/amd/zeronews && sudo chmod +x /usr/local/bin/zeronews
    
    # win系统
    首先,创建一个用于存放 ZeroNews 的文件夹,例如: D:\ZeroNews。
    然后,访问 ZeroNews官网的客户端下载页面
    (https://www.zeronews.cc/download),
    将 ZeroNews 客户端 zeronews.exe 下载到指定的目录。
    
    # 登录 ZeroNews 平台,在 "快速开始" 页面中复制一个 Token 备用。
    # 执行 ZeroNews 客户端认证。
    # Mac认证
    zeronews set token <YOUR_TOKEN>
    # Win认证
    zeronews.exe set token <YOUR_TOKEN>
    
  • 启动步骤:

    启动 ZeroNews 客户端。
    # Mac
    zeronews start
    # Win
    zeronews.exe start -d
    
    

    前往设备页面,刷新页面,设备状态显示为“在线”,表示设备已成功连接至网络。

  • 优点:
    支持多平台、多协议、多场景,满足多样化内网访问需求。
    安全措施完善,支持 TLS 加密、IP 黑白名单等,保障数据安全。
    部署简单,无需改变企业现有网络防火墙、路由器配置。

  • 缺点:
    闭源项目,用户无法查看和修改源代码。


总结对比表

工具类型协议支持是否需要服务器速度适合场景配置复杂度是否开源
frp反向代理TCP/UDP/HTTP/HTTPS开发者长期使用、多协议穿透
ngrok反向代理HTTP/TCP可选(商业版否)临时测试、快速生成公网域名部分开源
ZeroTier虚拟组网全协议(P2P)高(直连)跨设备组网、远程办公核心开源
Tailscale虚拟组网全协议(基于WireGuard)高(直连)个人/团队P2P直连、简化VPN核心开源
Cloudflare Tunnel反向代理HTTP/HTTPS已有Cloudflare域名的Web服务
OpenVPNVPNTCP/UDP企业级安全内网访问
GoProxy多协议代理TCP/UDP/HTTP/Socks5复杂代理需求(如加密隧道)
PageKite反向代理HTTP/TCP动态域名映射、简单Web穿透
NetBird虚拟组网全协议(基于WireGuard)高(直连)Tailscale替代方案、开源组网
ZeroNews多协议代理TCP/UDP/HTTPS/HTTP高(直连)企业内部访问,开发调试

建议

个人开发者/临时测试:优先选 ngrok 、 Tailscale 或 ZeroNews。

企业安全访问:OpenVPN 或 Cloudflare Tunnel。

多协议复杂需求:frp 或 GoProxy。

零配置组网:ZeroTier 或 NetBird。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江湖中的阿龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值