@TOC
前言
nps 是什么?
nps 是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前反对 tcp、udp 流量转发,可反对任何 tcp、udp 下层协定,此外还反对内网 http 代理、内网 socks5 代理、p2p 等,并带有功能强大的 web 治理端。
1. 筹备工作
- 一台领有公网 IP 的云服务器,我这里应用的是腾讯云轻量应用服务器,零碎为 CentOS。
- 云服务器中须要装置配置好 Docker。参考地址:菜鸟教程 -docker 的装置
- 云服务器中装置好宝塔面板,如不须要域名拜访,能够跳过此步骤。参考地址:宝塔面板装置教程
- nps 服务器端和客户端的程序。下载地址:https://github.com/ehang-io/nps
-
一个已实现备案的域名,用来配置内网穿透泛域名拜访,如不须要域名拜访,能够跳过此步骤。
2. 服务器端搭建 nps 并配置
2.1 配置 nps 配置文件
nps 装置时须要加载配置文件,所以须要先创立好配置文件。
- 下载 nps 服务端配置文件到本地,抉择与服务器零碎绝对应的版本,我这里抉择
linux_amd64_server.tar.gz
, 下载地址:https://github.com/ehang-io/nps/releases
-
解压下载好的安装包,进入
conf
目录下,对npc.conf
配置文件进行批改。- 首先批改
http_proxy_port
和https_proxy_port
的端口号为20080
和20443
。 - 配置
bridge_port
为28024
。 - 配置批改
web_username
、web_password
和web_port
,其中web_port
批改为28080
,web_username
、web_password
是 web 治理端的用户名和明码,自行配置即可;web_port
是 web 治理端的端口号,通过 IP: 端口 即可拜访 web 治理端。 - 其余配置请参照 nps 服务端配置文档并依据须要自行配置。参考地址:nps 服务端配置文件
- 首先批改
注:这里为了避免与其余已装置的环境抵触,将所有的端口号全副调整到 20000-30000 之间。
http_proxy_port
:http 代理端口号
https_proxy_port
:https 代理端口号
bridge_port
:桥接端口号
web_username
:web 治理端用户名
web_password
:web 治理端明码
web_port
:web 治理端端口号
- 将批改好的配置文件及其目录
conf
上传到服务器的/etc/nps
目录下,如果没有此目录,能够自行创立。
2.2 docker 装置 nps
-
拉取 nps 服务端 docker 镜像
docker pull ffdfgdfg/nps
-
运行 nps 容器,并设置开机自启动
docker run -d --restart=always --name nps --net=host -v /etc/nps/conf:/conf ffdfgdfg/nps
-
此时 nps 服务端曾经装置实现,能够通过
docker ps
查看是否运行胜利。2.3 web 端配置 nps 并应用
注:如无法访问,请到云服务器治理后盾凋谢对应端口的拜访权限。
注:如装置了宝塔面板等,也须要去到面板治理界面凋谢端口的拜访权限。
- 首先通过浏览器拜访
http:// 服务器 IP:28080
,输出配置文件中设置的用户名和明码即可进入 web 治理端。28080 是web_port
配置的端口号。 - 在右侧客户端界面新增一个客户端,而后在客户端界面点击 “+”,查看其中的客户端命令。
3. 客户端应用 nps
- 下载 nps 客户端 npc 到本地,抉择与服务器零碎绝对应的版本,我这里抉择
windows_amd64_client.tar.gz
, 下载地址:https://github.com/ehang-io/nps/releases - 解压下载的文件,并搁置到指定地位,如桌面上。
- CMD 管理员进入该解压后的目录中,并运行服务端提供的客户端命令。
- windows 运行命令,须要将其中
./npc
替换为npc.exe
。 - 此时本地 npc 客户端已胜利运行,并且 web 治理端也显示连贯状态为在线。
- 此时本地服务器已与云服务器连贯胜利。
- 在客户端界面点击隧道,新增一条隧道。如果须要在外网拜访本地
http://127.0.0.1:8080
,则须要在隧道中新增一条tcp
类型的隧道,如下图所示。
此时通过 服务器 ip + 服务端端口号即可拜访本地的网站,内网穿透到此结束。
留神:
- CMD 必须已管理员身份运行,否则无奈胜利。
- windows 下请将其中的
./npc
替换为npc.exe
。- nps 服务端和客户端的版本必须统一,否则无奈连贯。
- nps 中 s 示意服务端,npc 中 c 示意客户端。
4. 配置泛域名解析
配置到下面一步曾经能失常应用了,但我手头有已备案的域名,就思考是否应用域名来代替 服务器 ip + 端口的模式来进行内网穿透。
筹备工作:
- 已备案域名一个
- 云服务中须要装置宝塔面板
域名:这里应用 example.cn 代替域名,理论应用时请替换为本人的域名。
- 进入域名 DNS 解析页面,增加一条泛域名解析,将
*.nps.example.cn
解析到 服务器 ip。 - 到 nps 的 web 端治理界面中增加一条域名解析。
- 此时便可通过
http://1.nps.example.cn:20080
拜访到本地内网网站了。这里的20080
为http_proxy_port
中配置的端口号。 -
这时已胜利通过 域名 + 端口 的模式实现内网穿透,上面将通过配置勾销掉域名前面的端口,应用 仅域名 模式的拜访。
- 在云服务器的宝塔面板中创立一个网站,域名就填写
*.nps.example.cn
。 -
网站创立好后,点击设置,抉择配置文件,在配置文件最初增加如下内容,将域名代理到域名 + 端口的模式,从而实现独自的域名拜访。
location / { resolver 114.114.114.114; proxy_pass http://$host:20080; }
- 在云服务器的宝塔面板中创立一个网站,域名就填写
- 至此实现域名的内网穿透拜访。
5. 参考链接
- nps 官网
- nps 文档
- CSDN-Centos8.2 利用 Docker 实现 NPS 内网穿透与宝塔共存
- 宝塔面板装置教程
-
博客园 -nginx 的 proxy_pass
本文首发于自己博客:https://blog.gitnote.cn/post/nps
版权信息: CC BY-NC-SA 4.0 (自在转载 - 非商用 - 雷同形式共享 - 放弃署名)