使用nps搭建内网穿透并配置泛域名解析
使用nps搭建内网穿透并配置泛域名解析
- 前言
- 1. 准备工作
- 2. 服务器端搭建nps并配置
- 2.1 配置nps配置文件
- 2.2 docker安装nps
- 2.3 web端配置nps并使用
- 3. 客户端使用nps
- 4. 配置泛域名解析
- 5. 参考链接
前言
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 (自由转载-非商用-相同方式共享-保持署名)
使用nps搭建内网穿透并配置泛域名解析相关推荐
- 详细教你用NPS搭建内网穿透服务,外出时轻薄本轻松连接家里的游戏主机远程玩耍
文章目录 前言 一.NPS概述 NPS的原理 二.NPS服务器搭建 1.下载软件 2.云服务器配置 2.1.防火墙配置 2.2.用WinSCP远程上传服务文件 2.3.使用SSH终端安装启动 2.4. ...
- 树莓派使用NPS实现内网穿透
:# 树莓派使用NPS实现内网穿透 前言 之前想实现内网穿透,折腾过花生壳,不过有限制.后面又尝试了FRP,不过还没有成功过. 这次使用NPS实现内网穿透,主要看上了它的图形化配置界面. 准备 服务端 ...
- 搭建内网穿透实现访问windows远程桌面
搭建内网穿透实现访问windows远程桌面 开源的内网穿透软件有很多,如 frp和nps frp github地址:https://github.com/fatedier/frp nps github ...
- Frps搭建内网穿透(服务器及客户端详细)
目的:通过云服务器搭建内网穿透,实现外网访问内部应用或者服务(不限操作系统,服务器只需一个,客户端可以多个). 所需资源:阿里/百度/腾讯云服务器 有外网IP即可 软件下载(包含Windows.Liu ...
- FRP 内网穿透下载配置
FRP 内网穿透下载配置 Frp服务的建造 下载: 修改配置文件 frps.ini(服务端)配置文件解释说明: frpc.ini(客户端)配置文件解释说明: 启动服务 配置启动: 创建server端服 ...
- 手把手教你,搭建内网穿透服务
我的 GitHub 仓库:? 手把手教你搭建内网穿透服务,基于 lanproxy 穿透服务,为你深度定制了开箱即用的服务端和客户端 Docker 镜像. 在很多场景下内网穿透都是我们常常遇到的需求,之 ...
- 使用Lanproxy搭建内网穿透服务完整教程
本文主要记录了使用基于Docker的Lanproxy搭建内网穿透服务的过程,其中包括服务端和客户端的详细配置,并且基于宝塔面板的Nginx实现域名绑定.反向代理与SSL. 本文主要内容: 1. 解决的 ...
- 通过路由器搭建内网穿透隧道
通过路由器搭建内网穿透隧道 将本台计算机设置为一台服务器 控制面板中选择程序和功能,启用或关闭WINDOWS功能 选择左边启用或关闭 Windows 功能,勾选 Internet Informatio ...
- 搭建内网穿透服务一步一步讲解教程
我的 GitHub 仓库:? 手把手教你搭建内网穿透服务,基于 lanproxy 穿透服务,为你深度定制了开箱即用的服务端和客户端 Docker 镜像. 在很多场景下内网穿透都是我们常常遇到的需求,之 ...
最新文章
- xshell连接Linux、ngix部署
- 【组队学习】【33期】数据可视化(Matplotlib)
- python property装饰器原理,Python @property装饰器不起作用
- C++ Error: no appropriate default constructor available
- LeetCode练习及自己理解记录(1)
- 你这API设计的真”辣鸡“,简直没法看!
- 哥德巴赫猜想—初等数论课后习题
- java论文范文模板_Java专业论文开题报告 论文的开题报告模板
- Google 字体在前端开发中的使用
- iptables 分析
- win10启用smb3多通道_关于win10无法使用smb访问局域网内的计算机
- Java将字符串中的中文数字转化成阿拉伯数字或阿拉伯数字转化成中文数字
- 电脑横机服务器维修,电脑横机常见问题的处理方法
- 计算机认知神经科学,认知科学对视知觉的认识
- 计算机网络—网络安全
- o2o模式和b2c模式的不同点是什么?
- mel滤波matlab,MFCC(Mel Frequency Cepstral Coefficient)提取过程详解
- 微积分入门书籍(二)
- MySQL的数值类型
- Windows10下修改盘符
热门文章
- 如何打造园本特色_农村幼儿园如何打造办园特色..doc
- Django下防御Race Condition漏洞
- 数据分析,如何看待我国1400万人忍受极端通勤,单程通勤超60分钟!
- vole使用的简单例子
- 程序员吐槽去年被裁赔十万,今年被裁赔七万,网友:秀儿,是你吗?
- 精益生产如何影响成本管理
- 01-promise的初体验
- LINUX These critical programs are missing or too old: bison compiler python
- linux同步时间命令crontab,为什么在crontab中使用ntpdate同步时间无效?
- PyTorch学习笔记(2)神经网络