☰
无公网IP的救星:四大内网穿透工具实战指南
2026/10/1 14:21:12 网站建设 项目流程

无公网IP的救星:四大内网穿透工具实战指南

IPv4 地址枯竭,运营商严控公网 IP,导致远程访问 NAS、调试本地服务、连接公司内网变得异常困难。幸运的是,内网穿透技术为我们打开了通道。

本文将基于实战经验,详细整理NPS、FRP、EW 和 ngrok四款主流工具的使用方法,助你在无公网 IP 的环境下也能稳操胜券。


一、四大工具选型对比

图形化管理

极致性能

多级穿透

临时快速

内网穿透需求

核心诉求

NPS

FRP

EW

ngrok

Web 管理端
多协议支持

插件生态
稳定高性能

SOCKS5 级联
横向移动

零配置
官方维护

工具语言协议支持管理方式适用场景
NPSGoTCP/UDP/HTTP/SOCKS5/P2PWeb 管理端需要图形化管理的团队
FRPGoTCP/UDP/HTTP/HTTPS配置文件追求性能与稳定性的生产环境
EWC仅 SOCKS5命令行内网横向移动、多级穿透
ngrokGoHTTP/TCP命令行临时调试、快速暴露服务

二、NPS/NPC:轻量级高性能代理服务器

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。它支持 TCP、UDP 流量转发,可转发任何 TCP、UDP 上层协议(如访问内网网站、本地支付接口调试、SSH、远程桌面、内网 DNS 解析等)。此外,还支持内网 HTTP 代理、SOCKS5 代理、P2P 等,并自带功能强大的 Web 管理端。

2.1 核心特点

特点说明
语言Go 编写,跨平台
协议支持多种协议代理
管理自带 Web 管理端
架构一台公网 IP 的 VPS 运行服务端(NPS),内网机器运行客户端(NPC)

2.2 架构图

运行 NPS 服务端

运行 NPC 客户端

转发流量

访问公网 IP

公网 VPS

Web 管理端:8080

内网机器

建立隧道

外部用户

2.3 实战部署

第一步:下载服务端
cd~wgethttps://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gztarzxvf linux_amd64_server.tar.gzcd~/nps
第二步:修改conf/nps.conf
vimconf/nps.conf

设置 web 部分:

web_host= 服务器IP或域名 web_username= admin web_password= 你的密码 web_port=8080

修改 bridge 可变更连接端口(如防火墙限制,可改为常见出网端口):

bridge_port=443 bridge_ip=0.0.0.0
第三步:启动服务端
./nps start
第四步:客户端连接
./npc-server=你的IP:8024-vkey=唯一验证密码-type=tcp

提示:可在 Web 管理端新增客户端,每个 vkey 唯一。建立连接后,每个客户端可创建多个不同协议隧道,实现不同代理。

第五步:Web 管理端访问
http://[server_ip]:web_port

三、FRP:高性能反向代理应用

frp是一个专注于内网穿透的高性能反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。通过具有公网 IP 的节点中转,可以安全地暴露内网服务。

3.1 核心特点

特点说明
通信协议支持 TCP、KCP、Websocket 等
端口复用多服务可通过同一端口暴露
跨平台全平台支持
插件丰富多种插件提供扩展功能

3.2 场景一:通过 RDP 访问家里机器

服务端(frps.ini):

bind_port=7000 token=abcdefgh

启动服务端:

./frps-c./frps.ini

客户端(frpc.ini):

[common] server_addr = x.x.x.x server_port = 7000 token = abcdefgh [rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 6000

启动客户端:

./frpc-c./frpc.ini

访问方式:通过x.x.x.x:6000即可访问远程桌面。

Windows 开机自启:创建start_frpc.vbs加入启动文件夹。

3.3 场景二:通过 SSH 访问公司内网

客户端配置追加:

[ssh] type=tcp local_port=22 remote_port=6000

连接命令:

ssh-oPort=6000test@x.x.x.x

3.4 场景三:自定义域名访问内网 Web

服务端(frps.ini):

vhost_http_port=8080 token=

客户端(frpc.ini):

[web] type=http local_port=80 custom_domains=www.yourdomain.com

将域名 A 记录解析到服务器 IP,即可通过http://www.yourdomain.com:8080访问。

3.5 场景四:对外文件服务

使用static_file插件:

[test_static_file] type=tcp remote_port=6000 plugin=static_file plugin_local_path=/tmp/file plugin_strip_prefix=static plugin_http_user=abc plugin_http_passwd=abc

访问方式:http://x.x.x.x:6000/static/

3.6 常用高级功能

功能配置项
统计面板dashboard_port=7500
加密与压缩use_encryption=true及use_compression=true
TLS 加密tls_enable=true
带宽限制bandwidth_limit=1MB
范围端口映射[range:test_tcp] local_port=6000-6006,6007

四、EW(Earthworm):便携式网络穿透工具

EW是一套便携式网络穿透工具,具有 SOCKS v5 服务架设和端口转发两大核心功能。

4.1 核心特点

特点说明
语言C 语言编写,轻量级
协议仅支持 SOCKS5 代理
能力支持多级代理,跨平台
状态已停更,但经典依旧

4.2 主要命令格式

模式命令
正向./ew -s ssocksd -l 1080
反弹公网主机 A 运行./ew -s rcsocks -l 1080 -e 8888
目标主机 B 运行./ew -s rssocks -d 1.1.1.1 -e 8888
多级级联利用lcx_listen、lcx_tran、lcx_slave进行连接

4.3 三级级联示例

1080

8888

9999

7777

SOCKS v5 客户端

一级节点

二级节点

三级节点

rssocks

数据流向:

SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks

五、ngrok:反向代理快速暴露内网

ngrok是一个反向代理,在公共端点和本地 Web 服务器间建立安全通道,方便程序测试。

5.1 核心特点

特点说明
维护官方维护,稳定
平台跨平台,闭源
功能有流量记录和重放功能

5.2 使用方法

第一步:注册并下载

访问https://ngrok.com/下载,运行:

./ngrok authtoken<授权码>

第二步:暴露本地 80 端口

./ngrok http80

获取公网域名后即可外部访问。

第三步:暴露其他 TCP 服务

./ngrok tcp3389

第四步:文件共享

./ngrok http"file:///路径"

支持认证。


六、总结与选型建议

图形化管理

极致性能

多级穿透

临时快速

选型决策

核心诉求

NPS

FRP

EW

ngrok

✅ 一键部署

✅ 生产级稳定

✅ 横向移动

✅ 零配置

场景推荐工具
追求图形化管理和多协议支持NPS
追求极致性能、稳定性和插件生态FRP
需要复杂网络环境下的多级穿透EW
需要临时、快速暴露服务且不想配置服务端ngrok

⚠️ 安全提示

无论使用哪款工具,将内网服务暴露到公网时:

安全措施说明
强密码务必设置复杂密码,避免弱口令
TLS 加密尽可能启用(如 frp 的tls_enable=true)
访问控制限制来源 IP,避免全公网开放
最小暴露只暴露必要的端口和服务
定期审计检查访问日志,发现异常及时处置

内网穿透是双刃剑,用好了是效率神器,用错了是安全漏洞。选对工具、配好安全策略,才能真正让无公网 IP 的环境"活"起来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询