您现在的位置是:首页 >技术交流 >内网穿透NPS和宝塔Nginx配合使用,开启SSL访问本地局域网网络网站首页技术交流

内网穿透NPS和宝塔Nginx配合使用,开启SSL访问本地局域网网络

李本心明 2023-06-28 09:19:01
简介内网穿透NPS和宝塔Nginx配合使用,开启SSL访问本地局域网网络

并非为了教学,仅供自己记录,方便下次用。所以内容不会刻意花时间写的很细节详细。

1. 服务器NPS配置

NPS install安装后,配置文件会在其他位置,通过是 /etc/nps/nps.conf目录。

找到进行修改,主要修改的是http_proxy_porthttps_proxy_port,它们使用的端口是80和443,肯定是和Nginx冲突的,所以先去掉冲突,才能让两个程序同时运行。

appname = nps
#Boot mode(dev|pro)
runmode = dev

#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=85    #主要修改1:不要占用80端口
#https_proxy_port=443 #主要修改2:不要占用443端口,直接注释
https_just_proxy=false
#default https certificate setting
https_default_cert_file=conf/pro.metarouse.net/Nginx/server.pem
https_default_key_file=conf/pro.metarouse.net/Nginx/server.key

#.... 剩余的这个任务里面不需要改

2. 宝塔面板内修改站点对应的Nginx配置

在这里插入图片描述
在这里插入图片描述找到配置文件的修改地方后,进行配置的修改,目标是让流量从Nginx直接到NPS中。

通过是需要在云服务器上运行nginx来保证静态文件缓存等,在上述重NPS的配置文件中将httpProxyPort设置为85端口(看上文配置),那么在在Nginx中配置如下:

server {
    listen 80;
    server_name pro.metarouse.net;   #1. 需要换成你的域名
    location / {
        proxy_set_header Host $host:$proxy_port;  #Host和端口都加上
        proxy_pass http://127.0.0.1:85;  #85即是NPS的端口,这里意思就是有人访问了 pro.metarouse.net:80,然后直接就转到本地NPS 85服务
    }
}

如果复制后有错误,请去掉 #以及后面的注释

如需使用https也可在nginx监听443端口并配置ssl,并将通上面NPS配置描述的httpsProxyPort设置为空,关闭NPS的HTTPS即可。然后和Http一样,进行路由,并且开启Https。
你的配置和我的可能不完全一样,大部分还是默认宝塔自己默认的就行,

server {
    listen 443 ssl http2;
    server_name pro.metarouse.net;
    ssl on;
    ssl_certificate  certificate.crt;
    ssl_certificate_key private.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    #主要就是下面了,其实上面那些都是我这边默认的,而这里和Http的其实一摸一样
    location / {
        proxy_set_header Host $host:$proxy_port;
        proxy_pass http://127.0.0.1:85;
    }
}

当然也可以通过宝塔面板本身的反向代理来进行操作。
在这里插入图片描述

3. 宝塔面板内修改站点对应的Nginx配置

在这里插入图片描述

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。