一、介绍

nps 是一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。

二、准备

  1. 云服务器(公网IP)
  2. nps 服务端/客户端
  3. 内网机器远程桌面开启允许远程连接到此计算机
    • 右击 '此电脑' ,'属性' -> '远程设置' -> 选择'允许远程连接到此计算机'

三、安装

首先需要在云服务器上安装 nps 服务端。安装方式请参考 https://ehang-io.github.io/nps/#/run?id=服务端

安装完成之后,访问 ip:8000 进入 nps 服务端管理后台。默认的用户名和密码是

1
2
admin
123

四、内网穿透

安装完成并进入服务端管理后台之后,在仪表盘河面可以看到当前服务详细信息,比如客户端连接端口,连接数量等等。

切换到客户端界面,点 '新增', 添加一个客户端,参数都可以都保持默认值,然后点击 '新增' 提交。回到客户端界面,点击上一步添加的客户端前面的 '+' 号,下面会列出此客户端的基本信息。拷贝 '命令' 后面的执行命令,在内网机器上对应执行,即完成对客户端的配置。

五、私密代理

正常情况下,可以在 'tcp隧道' 页面将内网机器映射到云服务器的一个端口来实现代理,不过安全起见,我们使用私密代理。

切换到 '私密代理' 页面,点击新增,类型选择 secret,目标(ip:端口) 填写 windows 远程桌面的端口:3389,客户端id 填写步骤四中添加的客户端的id,唯一验证密钥填写连接时使用的密码。然后点击 '新增',回到私密代理页面。

这里,可以发现刚才添加的代理已经在页面上面显示出来了。和步骤四中一样,点击 '+' ,下面会列出访问端命令。访问端命令是在需要运行远程桌面的机器上执行的。

运行完毕访问端命令的后,此时就完成了内网穿透连接。打开远程桌面,访问 127.0.0.1:2000,输入内网机器中 windows 的用户名和密码,就可以连接到远程桌面了。

六、其他

内网机器在无人值守的情况下,建议使用 https://ehang-io.github.io/nps/#/use?id=注册到系统服务 提供的方式注册到系统服务。这样即使电脑自动更新导致重启,代理服务依然还在。

七、参考资料

https://github.com/ehang-io/nps

https://ehang-io.github.io/nps/#/

使用 FRP 反向代理实现 Windows 远程连接