前言
上一篇中我们提到了如何配置nps服务端和客户端,以及如何让服务端与客户端匹配连接。本篇会介绍如何添加具体的内网穿透规则,从而让内网设备可以被外界访问。
tcp/udp隧道
使用场景
Windows远程桌面,ssh连接,vnc连接,游戏开服,内网架设dns服务器等
配置方法
以Windows远程桌面为例,其默认使用3389端口。假设局域网内有一台IP为192.168.1.100的Windows设备,那么,在同一局域网下,只要访问192.168.1.100:3389即可连接。但如果想要从外网连接,则必须添加一条tcp转发规则,把内网设备的3389端口,映射到服务端的某个端口,这里假设使用服务器的10000端口。假如服务器IP为12.34.56.78,那么,映射完成后,外网访问12.34.56.78:10000的请求会全部被转发到192.168.1.100:3389,也就是说,访问12.34.56.78:10000即可连接内网的windows设备。具体配置如下。
首先登录网页管理面板,查看并记住客户端id(例子中id是9)。选择左侧导航栏的tcp隧道,点击新增
完成后,尝试通过 服务器IP:外网端口 连接内网windows设备,如可以成功连接,则内网穿透成功。
添加udp隧道的方式与tcp类似,udp可用于映射内网dns服务器,根据自身需求配置即可。
p2p连接
使用场景
大文件传输,如在内网架设NAS,流量不经过服务器转发
要求
目标内网设备与访问端都需要运行npc,且二者NAT类型不能同时为对称型网络
视频教程
配置方法
首先,我们需要编辑内网穿透服务器的配置文件,让服务器支持p2p穿透。先通过./nps stop停止服务,打开nps/conf/nps.conf,在末尾添加以下代码
请确保p2p_ip准确的填写了服务器的静态公网IP,否则会导致p2p穿透失败。编辑完成后保存并退出,使用./nps start重新启动服务。
之后,请前往网页管理面板添加一条p2p转发记录
需要注意的是,唯一验证密钥既被作为连接密码,也被作为目标端的身份标识。如果有多条p2p记录,请保证唯一验证密钥不要重复。
完成后,可以在记录下看到访问端需要输入的命令。
如果访问端为windows设备,请把”./npc”替换为”npc”。此项记录的意思是,把访问端的本地端口(默认为2000,可在命令后添加”-local_port=xxx”来指定)绑定到目标内网设备的目标端口3389。这样,只要在访问端输入127.0.0.1:2000就能连接目标设备的远程桌面了。如果访问端和目标端的NAT类型都符合要求,那么二者就可以直接通信,流量不需要再走服务器转发了。反之,如果NAT类型不符合要求,npc会报告p2p穿透失败,并继续使用服务器转发流量。
值得注意的是,手机、平板等无法运行npc的设备是无法直接使用p2p的。如果想使用p2p连接,则要保证同网段下至少有一台能运行npc的设备(假设该设备内网IP为192.168.1.10),然后再用手机平板访问192.168.1.10:2000(或自定义本地端口)来访问目标设备。