ehang-io / nps

一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.
https://ehang.io/nps/documents
GNU General Public License v3.0
29.8k stars 5.38k forks source link

关于使用tcp隧道的问题 #417

Open ajdwfnhaps opened 4 years ago

ajdwfnhaps commented 4 years ago

场景: 现在能够通过建立tcp隧道实现 1.访问公网服务器1.1.1.1的8001端口,连接内网机器10.1.50.101的22端口,实现ssh连接 2.访问公网服务器1.1.1.1的8002端口,连接内网机器10.1.50.102的22端口,实现ssh连接

但是当我们客户端机器比较多的情况下,比如几千或上万,nps服务端需要对应开放批量的端口

问题: 是否有什么方案可以nps服务端使用共享一个端口,或者有什么好的解决方案吗?

谢谢

cnlh commented 4 years ago

可以使用socks5代理直接访问内网

ajdwfnhaps commented 4 years ago

但是我这些客户端的机器不是在同一个内网的,是分布在全国各地的客户端终端产品

cnlh commented 4 years ago

可以做定制化开发

yisier commented 4 years ago

能否把tcp的完整连接打印到日志里,如:1.1.1.1:7777/test/xxxxx

ffdfgdfg commented 4 years ago

能否把tcp的完整连接打印到日志里,如:1.1.1.1:7777/test/xxxxx

这是tcp,不仅仅包含http,nps不应该处理其中的任何内容,我觉得没什么问题

netyuchangfa commented 4 years ago

@ajdwfnhaps 你说应该是 P2P功能 ,被访问端不需要在服务器上注册端口,而是隐藏端口,,访问端必须同样运行客户端才能访问被访设备。 NPS是支持P2P模式的。

netyuchangfa commented 4 years ago

私密代理和 P2P 代理,这两种 方式都能满足你的需求。@ajdwfnhaps

forcemeter commented 4 years ago

1,条件允许的情况下可以做p2p,目前看到的文章都有说成功率最高能到95%左右 2,可以考虑跟 frp 一样,加一个随机端口段, client 连接上来以后,随机生成一个 server 上的 port,这样可以减少在服务器上的配置