群晖使用NPS内网穿透教程
群晖使用NPS内网穿透教程
环境需要
域名解析
为服务器添加域名解析,一个泛域名就够了,这里指所有二级域名都解析指向服务器
后面在nps服务端内配置各个服务需要的二级域名就可以了,这样dns解析省去重复配置
安装nps
下载服务端安装文件
1 | wget https://github.com/yisier/nps/releases/download/v0.26.12.3/linux_amd64_server.tar.gz |
解压安装文件
1 | tar -zxvf linux_amd64_server.tar.gz |
安装nps
1 | ./nps install |
启动nps
1 | nps start |
停止和重启可用,stop和restart
- 访问服务端ip:web服务端口(默认为8080)
- 使用用户名和密码登陆(默认admin/123,正式使用一定要更改)
服务端配置
配置服务端文件 nano /etc/nps/conf/nps.conf
1 | #调整为非80端口,不占用后面nginx监听80端口 |
1 | #修改后台管理web的登录信息以及端口 |
配置重载
1 | nps reload |
登录后台管理web
新增一个客户端,没啥可选择的其实都可以默认
TCP协议代理
客户列表点击隧道-新增一个TCP连接,设置服务器映射的端口;目标(内网)的IP:端口,点击新增即可。
http协议代理
客户列表点击主机-新增一个http连接,设置主机(你的域名),模式默认或者http;目标写内网IP:端口,点击新增
因为前面域名解析使用的是泛域名解析,所以这里主机xx.example.com,xx是可以随意设置成你想要的二级域名
DNS均会解析到NPS服务端,再由服务端对应的域名前缀转发到对应内网端口。
服务端配置备份
1 | tar czvf /etc/nps/conf.tar /etc/nps/conf/ |
服务器更换后可拷贝到新服务器nps同目录下生效
客户端配置
我是群晖做客户端直接使用套件安装吧,群晖套件中心添加社区套件来源,其他安装方式见官方文档
1 | https://spk7.imnks.com/ |
安装好套件,打开填写服务端配置ip:端口;连接密钥,保存即可。
再回到服务端后台管理web,这里客户端列表显示在线,就已经连接上了
配合Nginx实现SSL
在Nginx默认配置目录下新建一个ssl文件夹,用于存放ssl证书
1 | mkdir /etc/nginx/ssl |
使用acme.sh申请好SSL证书后,使用以下命令部署到Nginx
example.com 修改为自己acme.sh申请时使用的域名
1 | acme.sh --install-cert -d *.example.com \ |
编辑 nano /etc/nginx/nginx.conf
配置文件,选择添加或替换以下配置,注意替换*.example.com
1 | user www-data; |
重载nginx配置
1 | systemctl reload nginx |
搞定。