内网穿透是一种技术方案,可以实现在防火墙或者网关隔离的内网环境下,通过公网访问内网资源和服务的效果。
内网穿透工具可以帮助我们建立外网设备与内网设备的安全连接通道,使内网服务能够被外网访问。目前流行的开源内网穿透工具有nps、frp、ew、ngrok等。本文将重点对这四款工具的特色及使用进行汇总讲解,有需要的建议收藏。
nps – 轻量级的反向代理服务
nps是一个轻量级的内网穿透代理服务器。它具有以下特点:
- 支持tcp、udp等多种协议的反向代理。
- 服务器端可以部署在公网服务器上,然后映射内网服务端口。
- 客户端也可以反向映射到服务端,实现访问内网。
- 支持身份验证、加密传输、压缩等功能。
- 可进行流量统计,方便管理和控制。
nps的使用方法如下:
下载nps releases包,解压到服务器,运行nps即可启动服务器端。
下载客户端包,通过
-server
参数指定服务器ip地址,运行clienteestablish连接。通过web界面设置客户端与内网目标进行端口映射,然后外网终端就可以访问内网服务了。
nps操作
nps的使用方法:
下载安装nps server,运行
nps
,暴露端口绑定公网IP。下载nps客户端,使用
-server
参数指定server IP,运行nps client
建立连接。在web界面添加客户端与内网服务的端口映射,如映射:
客户端IP:20001 -> 内网IP:22
- 公网终端可通过
nps服务器ip:20001
访问内网ssh服务。
frp – 高性能的跨平台反向代理
frp是一个高性能的反向代理应用,也可以用来进行内网穿透。它的优点是:
- 支持多种操作系统,包括Linux、Windows、MacOS等。
- 服务器和客户端完全对称,可以分别建立内网或外网连接。
- 支持tcp、udp等主流协议的转发代理。
- 通过配置文件可以方便地完成各类功能定制。
- 支持加密与压缩,还可以进行流量伪装。
frp的使用方式:
分别在服务器和客户端安装frp,启动frpc和frps进程。
通过frps服务端配置需要暴露的本地服务。
frpc客户端配置相应server参数,进行端口映射。
外部终端就可以通过frp服务器Ip访问到内网服务了。
frp操作
frp的使用和配置:
frps服务端运行在公网服务器上,配置需要转发的内网端口。
frpc客户端运行在内网机器上,配置frps的地址。
内网机器上运行ssh服务,监听127.0.0.1:22。
frpc配置文件 proxy 中添加:
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
- 公网终端可以通过
frps服务器ip:6000
访问内网ssh服务。
ew – 功能完备的内网代理工具
ew是一个使用Go语言开发的内网穿透代理软件。 ew的优势在于:
- 支持tcp、udp、socks5等协议转换。
- 服务器客户端都可以设置为对方的反向代理。
- 支持密钥验证。
- 可限制客户端代理端口及流量。
- 提供Web界面方便配置转发规则。
ew的使用方式:
ew服务端运行在公网服务器上,客户端在内网机器运行。
通过ew web界面设置需要转发的主机及端口信息。
客户端向服务器验证后即建立连接通道。
外部终端通过服务端IP即可访问内网服务。
ew操作
ew的使用方式:
ew服务端绑定公网IP,客户端在内网机器运行。
在ew服务端web界面添加转发规则:
内网机器IP:22 -> 服务端127.0.0.1:10000
- 外部终端通过访问
ew服务端IP:10000
可以达到内网ssh服务。
ngrok – 轻量且易用的隧道应用
ngrok是一个将内网服务暴露至公网的跨平台应用。它的特点是:
- 操作简单,下载后无需复杂配置即可使用。
- 默认会为每次会话提供一个独立域名。
- 提供了在线Web界面进行连接管理。
- 支持tcp、udp等协议的端口转发。
- 支持http请求的host头和路径重写。
ngrok使用
ngrok的使用方法:
在内网机器运行ssh服务,监听127.0.0.1:22。
在内网机器上运行ngrok客户端:
ngrok tcp 22
。ngrok会生成一个临时域名,如xxx.ngrok.io。
外部终端访问这个域名的22端口,即可通过ssh连接内网机器的22端口。
总结
以上对nps、frp、ew和ngrok等4款内网穿透工具进行了横向对比,概括了它们的特色、优势以及基本的使用方法,可供用户进行工具选择。这些工具可以大幅简化内外网连接配置,提供高性能稳定的网络通道,值得拥有自建服务的用户进行深入了解和应用。