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.71k stars 5.36k forks source link

【新年快乐】请教下域名+Nginx的使用问题 #1273

Open aylitat opened 4 months ago

aylitat commented 4 months ago

需求

使用域名www.example.com,通过nps访问内网客户端上的web。

环境

1、我在一台公网服务器上搭建了nps 服务端,同时搭建了Nginx。根据官方文档,我通过Nginx,把80、443端口做了域名(www.example.com)反向代理到nps的端口,比如8020 2、我在内网客户端上搭建了npc客户端,并且正常启动链接到了服务器。内网正常穿透。 3、我在内网客户端上也搭建了Nginx,并且试图使用www.example.com的ssl证书。

问题

流量正常来到了客户端,但是网页没有正常打开。先是302,后是502 bad gateway 我目前有点摸不着头脑,不清楚是哪里的问题。

期望

1、我希望在服务器端通过域名进行访问内网web,可能存在多域名多客户端的情况,所以希望在服务器上搭建Nginx,不知道这个是不是必需的。如果Nginx不是必需的,https流量是在客户端解析吗? 2、我在客户端架设的web服务,是多端口的,并且需要https服务。目前的想法是通过Nginx进行端口监听和流量转发。但目前解析是失败的,不知道是哪里的问题。

hongkunv commented 4 months ago

不知道能不能帮到你,我最近也做了一个跟你类似的。不过我是在公网服务器上部署的nginx进行反代,然后ssl证书也是在公网服务器上配置,这样可以正常访问穿透的内网资源,证书也是生效的,希望可以给你点思路。

skyhhjmk commented 4 months ago

有点不理解你说的多端口是什么意思,我是一个服务器转发多个服务进内网后端,使用的方案是TCP隧道+nginx反代+后端nginx,首先在公网服务器上使用nginx监控80、443(nps的http(s)改为了180(1443))或者其他端口用于web,使用nps监控其他tcp端口如122映射进内网某机器的22端口,最终我可以将a.exp.com b.exp.com同时解析到转发服务器,流量会经过nginx反代以及nps TCP隧道后来到后端nginx,并且后端nginx根据host判断应该访问哪个网站或服务