NPS是一款轻量级、高性能、功能强大的内网穿透代理服务器,几乎支持所有协议,支持内网http代理、内网socks5代理、p2p等,简洁但功能强大的WEB管理界面,支持服务端、客户端同时控制,扩展功能强大,全平台兼容.
但是NGINX已经占用了443端口,以下方法可以让NPS和NGINX都能用到443端口.
- 每次修改完nginx.conf和npss.conf文件都要重启nginx,命令:systemctl restart nginx
- 每次修改完nps.conf文件都要重启nps,命令:nps restart
1. 安装NPS
#创建nps工作目录并进入
mkdir /home/nps
cd /home/nps
#下载服务端程序
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
#解压
tar -xf linux_amd64_server.tar.gz
#安装
./nps install
2. 配置nps.conf文件
**
**
#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=7780 /*为了不和nginx的80端口冲突,此处修改为7780端口*/
#https_proxy_port=7443
#https_just_proxy=true
#default https certificate setting
#https_default_cert_file=conf/server.pem
#https_default_key_file=conf/server.key
**
**
# if web under proxy use sub path. like http://host/nps need this.
web_base_url=/nps /*配合nginx的location*/
**
**
3. nginx配置文件
server {
listen 443 ssl;
server_name aa.bb.com;
ssl_certificate /home/cert/**.pem;
ssl_certificate_key /home/cert/**.key;
**
**
location /nps {
proxy_redirect off;
proxy_pass http://127.0.0.1:8080; /*访问http://ip/nps,会跳转到127.0.0.1:8080(web界面)*/
proxy_http_version 1.1;
proxy_set_header Host $host;
}
**
**
include /etc/nps/conf/npss.conf; /*另外添加一个nps的配置*/
}
4. 至此,nps的web界面已经可以打开,打开网址为第三步的https://aa.bb.com/nps,在web界面新建客户端.
备注:可留空
认证用户名:可留空
认证密码:可留空
验证密钥: 系统随机
允许***,压缩,加密:是
生成客户端后,点击客户端前面的+号,有客户端命令,在内网的客户端用此命令启动nps_client.稍等一会,客户端界面会显示此客户端已经在线.至此,客户端和服务器端连接成功.
5. 访问内网的web服务器.
①.修改npss.conf配置文件
server {
listen 80;
server_name openwrt.bb.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name openwrt.bb.com;
ssl_certificate /home/cert/**.pem;
ssl_certificate_key /home/cert/**.key;
location / {
proxy_pass http://127.0.0.1:7780; /*nginx的流量转到7780端口(nps的代理端口)
proxy_redirect http://$host/ http://$http_host/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
②.在NPS的web界面添加域名解析.
新增域名解析:
客户端ID:第四部创建客户端后,系统会分配一个ID
主机:openwrt.bb.com /*和第五步的①中的server_name对应*/
模式:http
目标:IP:端口 /*内网web服务器的IP及访问端口*/
6. 现在可用https://openwrt.bb.com访问内网web服务器.
网络流程图:
文章评论