Loading... ## 前言 通常我们的家庭内网是无法在公网访问的,但有时我们又需要在公网上可以访问到家中内网的设备,这是你可以向运营商申请公网IP,但所花费的金额并不是我们能承受的起的。这时我们就只能退而求其次通过内网传通来实现 内网穿透有很多种,nps、frp、DDNS.to等,该篇主要讲解的就是nps ## 准备 - 拥有公网IP的服务器 - 可以运行nps客户端的设备 ## 基础配置 > 这里我使用的是阿里云CentOS 8.2 作为演示 ### 安装宝塔 - 我们进入宝塔的官方网址 [宝塔](https://www.bt.cn/) ![Snipaste_2022-01-17_14-44-08-8d7eedfeb6914cd681388c6a77c48c56.png][1] - 选择Linux面板 ![Snipaste_2022-01-17_14-45-02-3cdd9fb49a6a4aa7b39002797792c136.png][2] - 输入命令回车进行宝塔面板的安装(我已安装,这里不做过多解释) > yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ![Snipaste_2022-01-17_16-21-47-589f54d17bd24ac8a647e1fd27c23f26.png][3] - 出现下图是说明宝塔已经安装成功,复制所有黄色的段落留着备用,如果你不小心忘记了也可以用管理员输入bt命令重新查看 ![install-bt5-5a8a7ad1cb6147398bbc2073f7686095.png][4] ### 配置宝塔 - 宝塔默认管理端口为8888,我们需要在服务器防火墙中放行8888端口 ![Snipaste_2022-01-17_14-56-56-3db66b597b6b4baa972393082a9f283a.png][5] - 访问宝塔外网面板地址,输入username、password登录到面板,首次进入会需要绑定手机号,出现一键安装时关掉,我们自己安装 - 进入宝塔的软件商店,安装docker、nginx ![Snipaste_2022-01-17_15-02-04-c56837d401184370b88ed32452f7b9c0.png][6] ### 安装nps - 拉取nps镜像 ```js docker pull ffdfgdfg/nps ``` - 创建nps挂载文件目录(自己随意设置) ```js mkdir -p /docker/nps/conf ``` - 从github上拉取conf文件信息(这里可能有小白不懂,我细说一下) > 在桌面新建一个文件夹,右键打开终端输入下面的命令 > git clone https://github.com/ehang-io/nps.git > 将拉取下来的nps文件夹的conf配置文件上传到服务器 ![Snipaste_2022-01-17_15-16-19-bf9fb23bfcb14dadb82bb0ca267279d4.png][7] ### 配置nps - 正常来说nps的端口和宝塔的端口会产生冲突,我们需要修改nps的端口,修改后保存即可 ![Snipaste_2022-01-17_15-21-50-d92ef15db040480cbdce99729268a335.png][8] ### 启动nps ```js docker run -d -p 19000-19010:19000-19010 -v /docker/nps/conf:/conf --name=nps ffdfgdfg/nps ``` ### 放行宝塔和服务器端口 ```js 19000-19010 ``` ### 访问你的nps服务器ip ```js http://ip:19003 ``` ## 内网穿透 进行到这里,我们基本配置已经完成,下面就开始正式的内网穿透 ### 进入nps服务器新增客户端 ![Snipaste_2022-01-17_15-36-46-e0cf6b7293094b6d8e27fbf8dc57ade7.png][9] ### 配置客户端,我这里以R4S的openWrt为例 ![Snipaste_2022-01-17_15-38-58-4d4efd178b924b5cb953e72445bd2d67.png][10] ### 刷新后客户端连接以在线,如未在线请多次重复以上步骤重试 ![Snipaste_2022-01-17_15-41-06-8ab90937d5a943b397db45b6682e6137.png][11] ### 配置TCP隧道,将客户端公开至公网 ![Snipaste_2022-01-17_16-27-02-71c0003daae8414c9b2b0555b7b7cb61.png][12] ### 此时你已经可以通过你的服务器公网ip+端口号访问到你内网的设备 > 服务器公网:19004 ![Snipaste_2022-01-17_15-47-57-2d125538a7ef4943a669400b29f5220a.png][13] ## 进阶 如果你有域名并且已经备案,那么你可以通过域名直接访问你的内网设备 ### 域名解析 ![Snipaste_2022-01-17_15-55-01-97c83feedfc44f3697ec38220291f769.png][14] ### 宝塔新增站点 ![Snipaste_2022-01-17_16-15-58-802410fbaa0d473a8446ae6f29f72992.png][15] ### 宝塔站点设置反向代理 ```js location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; error_log /dev/null; access_log /dev/null; proxy_pass http://127.0.0.1:19003; } location ~ .*\.(js|css)?$ { expires 12h; error_log /dev/null; access_log /dev/null; proxy_pass http://127.0.0.1:19003; } location / { proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:19003; } ``` ![Snipaste_2022-01-17_16-03-50-3fbff279cd47494e96836527a4e1286c.png][16] ### 申请ssl证书 ![Snipaste_2022-01-17_16-13-57-6e53b71863634c23aba64786f51f4557.png][17] ### 开启强制https ![Snipaste_2022-01-17_16-12-45-f4ede2cf37a74806a77e53535f830d5e.png][18] ## 结束 至此所有配置已经完成,你可以通过域名直接访问到你的内网设备 如果有哪里没看懂可以直接问我,我会尽可能的帮助大家 [1]: /usr/uploads/2022/12/4154661645.png [2]: /usr/uploads/2022/12/1671049559.png [3]: /usr/uploads/2022/12/1462662122.png [4]: /usr/uploads/2022/12/63271332.png [5]: /usr/uploads/2022/12/3176905958.png [6]: /usr/uploads/2022/12/4270765437.png [7]: /usr/uploads/2022/12/1384788347.png [8]: /usr/uploads/2022/12/2464096733.png [9]: /usr/uploads/2022/12/1815169799.png [10]: /usr/uploads/2022/12/3036861770.png [11]: /usr/uploads/2022/12/182754620.png [12]: /usr/uploads/2022/12/1229632476.png [13]: /usr/uploads/2022/12/109080953.png [14]: /usr/uploads/2022/12/797286726.png [15]: /usr/uploads/2022/12/2772669988.png [16]: /usr/uploads/2022/12/3262775093.png [17]: /usr/uploads/2022/12/2465390493.png [18]: /usr/uploads/2022/12/2643765951.png 最后修改:2022 年 12 月 07 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏