文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用nps搭建内网穿透并配置泛域名解析

2023-10-09 13:33

关注

使用nps搭建内网穿透并配置泛域名解析

前言

nps是什么?

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议,此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。

1. 准备工作

  1. 一台拥有公网IP的云服务器,我这里使用的是腾讯云轻量应用服务器,系统为CentOS。
  2. 云服务器中需要安装配置好 Docker。参考地址:菜鸟教程-docker的安装
  3. 云服务器中安装好宝塔面板,如不需要域名访问,可以跳过此步骤。参考地址:宝塔面板安装教程
  4. nps 服务器端和客户端的程序。下载地址:https://github.com/ehang-io/nps
  5. 一个已完成备案的域名,用来配置内网穿透泛域名访问,如不需要域名访问,可以跳过此步骤。

2. 服务器端搭建nps并配置

2.1 配置nps配置文件

nps安装时需要加载配置文件,所以需要先创建好配置文件。

  1. 下载nps服务端配置文件到本地,选择与服务器系统相对应的版本,我这里选择 linux_amd64_server.tar.gz ,下载地址:https://github.com/ehang-io/nps/releases

在这里插入图片描述

  1. 解压下载好的安装包,进入 conf 目录下,对 npc.conf 配置文件进行修改。

    • 首先修改 http_proxy_porthttps_proxy_port 的端口号为2008020443
      在这里插入图片描述

    • 配置 bridge_port28024

    • 配置修改 web_usernameweb_passwordweb_port ,其中 web_port 修改为 28080web_usernameweb_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管理端端口号

  1. 将修改好的配置文件及其目录 conf 上传到服务器的 /etc/nps 目录下,如果没有此目录,可以自行创建。
    在这里插入图片描述

2.2 docker安装nps

  1. 拉取nps服务端docker镜像
docker pull ffdfgdfg/nps
  1. 运行nps容器,并设置开机自启动
docker run -d --restart=always --name nps --net=host -v /etc/nps/conf:/conf ffdfgdfg/nps
  1. 此时nps服务端已经安装完成,可以通过 docker ps 查看是否运行成功。

2.3 web端配置nps并使用

注:如无法访问,请到云服务器管理后台开放对应端口的访问权限。

注:如安装了宝塔面板等,也需要去到面板管理界面开放端口的访问权限。

  1. 首先通过浏览器访问 http://服务器IP:28080 ,输入配置文件中设置的用户名和密码即可进入web管理端。28080是web_port配置的端口号。
    在这里插入图片描述

  2. 在右侧客户端界面新增一个客户端,然后在客户端界面点击 “+” ,查看其中的客户端命令。

在这里插入图片描述

3. 客户端使用nps

  1. 下载nps客户端npc到本地,选择与服务器系统相对应的版本,我这里选择 windows_amd64_client.tar.gz ,下载地址:https://github.com/ehang-io/nps/releases

  2. 解压下载的文件,并放置到指定位置,如桌面上。
    在这里插入图片描述

  3. CMD管理员进入该解压后的目录中,并运行服务端提供的客户端命令。

  4. windows 运行命令,需要将其中 ./npc 替换为 npc.exe
    在这里插入图片描述

  5. 此时本地npc客户端已成功运行,并且web管理端也显示连接状态为在线。
    在这里插入图片描述

在这里插入图片描述

  1. 此时本地服务器已与云服务器连接成功。
  2. 在客户端界面点击隧道,新增一条隧道。如果需要在外网访问本地 http://127.0.0.1:8080,则需要在隧道中新增一条 tcp 类型的隧道,如下图所示。
    在这里插入图片描述

此时通过 服务器ip + 服务端端口号即可访问本地的网站,内网穿透到此结束。
在这里插入图片描述

注意:

  1. CMD必须已管理员身份运行,否则无法成功。
  2. windows下请将其中的 ./npc 替换为 npc.exe
  3. nps服务端和客户端的版本必须一致,否则无法连接。
  4. nps中s表示服务端,npc中c表示客户端。

4. 配置泛域名解析

配置到上面一步已经能正常使用了,但我手头有已备案的域名,就考虑能否使用域名来代替 服务器ip + 端口的形式来进行内网穿透。

准备工作:

域名:这里使用 example.cn 代替域名,实际使用时请替换为自己的域名。

  1. 进入域名DNS解析页面,添加一条泛域名解析,将 *.nps.example.cn 解析到 服务器ip。

  2. 到nps的web端管理界面中添加一条域名解析。
    在这里插入图片描述

  3. 此时便可通过 http://1.nps.example.cn:20080 访问到本地内网网站了。这里的 20080http_proxy_port 中配置的端口号。
    在这里插入图片描述

  4. 这时已成功通过 域名+端口 的形式完成内网穿透,下面将通过配置取消掉域名后面的端口,使用 仅域名 形式的访问。

    1. 在云服务器的宝塔面板中创建一个网站,域名就填写 *.nps.example.cn
      在这里插入图片描述

    2. 网站创建好后,点击设置,选择配置文件,在配置文件最后添加如下内容,将域名代理到域名+端口的形式,从而实现单独的域名访问。

    location / {  resolver 114.114.114.114;  proxy_pass http://$host:20080;}
  5. 至此实现域名的内网穿透访问。
    在这里插入图片描述

5. 参考链接

  1. nps官网
  2. nps文档
  3. CSDN-Centos8.2利用Docker实现NPS内网穿透与宝塔共存
  4. 宝塔面板安装教程
  5. 博客园-nginx的proxy_pass

本文首发于本人博客:https://blog.gitnote.cn/post/nps

版权信息: CC BY-NC-SA 4.0 (自由转载-非商用-相同方式共享-保持署名)

来源地址:https://blog.csdn.net/qiaoyurensheng/article/details/128622695

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯