缘起
事情是这样的,博主是有个转发面板的,同时也作为一个探针去监控小白的国内转发机,为了确保面板机和被控机之间的稳定连接,这个转发面板一直是搭建在腾讯云的广州小鸡上的。众所周知,国内小鸡80、443端口是需要备案,但是其他端口有网页目前并没有限制。而转发面板是有网页前端的,所以只能让网页前端去监听非80、443端口,这时,我们通过IP+端口的方式是可以访问面板的。
但是,这时有一个问题,通过这种方式访问面板,走http明文传输,账号密码全在裸奔,于是小白的处理方法是,通过另外一台境外小鸡反代面板机,同时添加证书,开启https,完美解决。
这种操作持续了大半年,上个月小白突然发现反代这种方法也失效了,打开网站时,提示未备案,不予显示,这特么……阿里云、腾讯云的国内小鸡都提示未备案,小白不死心,又试了下用非80、443端口去反代,依旧如此,应该是腾讯云,阿里云修补了这个漏洞了。
前几天,简单介绍了nps内网穿透的使用,小白心想,能不能借助内网穿透来解决。
解决思路
国内机安装npc客户端,境外机安装nps服务端,在nps服务端添加域名解析,穿透到国内小鸡面板所在的端口,同时在nps服务端添加证书,开启HTTPS,实现加密访问。
准备工作
- 境内小鸡一台
- 境外小鸡一台
- 域名一个
- 证书和秘钥
小白这里已经在腾讯云各开了一台广州和香港的vps,我们将面板安装在广州小鸡上,同时安装npc客户端,下面为方便称呼统称为npc小鸡,在香港的vps安装nps客户端,用来穿透到广州vps,下文统称为nps小鸡。域名我们已经解析到香港小鸡,并且将证书和秘钥文件上传至香港小鸡。
安装及配置
nps小鸡配置
- mkdir nps && cd nps
- wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz #下载nps
- tar -zxvf linux_amd64_server.tar.gz #解压
- ./nps install #安装nps
- nano /etc/nps/conf/nps.conf #修改nps配置文件
- #有如下几处需要修改:
- https_just_proxy=false #默认是true,请改为false
- https_default_cert_file=/root/crt.pem #修改为自己证书文件所在绝对目录
- https_default_key_file=/root/crt.key #修改为自己秘钥文件所在绝对目录
- public_vkey=123 #修改为自己的密码
- web_username=admin #自己按需修改
- web_password=123 #自己修改nps的web后台密码。
- #当然也可以开始nps服务端面板的HTTPS,注意不用占用443端口
- web_open_ssl=true #按需开启或关闭
- web_cert_file=/root/crt.pem #修改为自己证书文件所在绝对目录
- web_key_file=/root/crt.key #修改为自己秘钥文件所在绝对目录
- #保存并退出配置文件
- nps restart #重启nps
好,我们现在已经可以在8080端口通过HTTPS访问nps服务端后台了。
接下来,我们在nps后台中添加一个客户端,记录下ID和唯一验证秘钥。
然后,我们新增一个域名解析,主机填入我们准备其他的解析好的域名,或者嫌麻烦填刚刚一样域名也行,模式选HTTPS,目标填入127.0.0.1,以及我们预计将要使用的端口,请注意,下图目标处是错误的,应该填127.0.0.1,而不是公网IP。
好,到现在为止,nps小机上的操作,我们已经完成,接下来我们来到npc小机。
npc小鸡配置
首先安装npc客户端,并修改配置文件。
- mkdir npc && cd npc
- wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz #下载npc客户端,如果国内机拉不动可尝试我们上篇文章里提到的proxychains。
- tar -zxvf linux_amd64_client.tar.gz #解压
- nano conf/npc.conf #修改npc配置文件
- #修改如下这两处
- server_addr=129.226.169.160:8024 #改成nps小鸡的IP
- vkey=65cta0ylj1mmmfx6 #改成刚刚的唯一验证密钥
- #保存并退出
- ./npc install --config=/root/npc/conf/npc.conf #安装npc
- npc start #启动npc
这时,我们去香港小鸡nps管理后台可以看到,客户端已经在线。
现在我们来启动一个闲蛋面板,端口选择刚刚香港小鸡nps后台的10010端口。
现在我们已经可以通过IP+端口访问面板,但这还不够,我们再试试域名+https能否访问。
完美解决!
小结
- 安全起见,最好在国内面板鸡上将面板监听端口设置防火墙,仅让nps小鸡访问。
- 本文提到的方法不保证长久有效,说不定良心云套路云更新导致失效。
- 本文仅供学习参考,请勿用于非法用途,网络不是法外之地!