在这个高度互联的时代,我们越来越依赖互联网来实现工作和生活的各种需求。然而,随着一些省份逐步收回家庭用户的公网IPv4地址(目前国内大部分地方都是多个用户共用一个公网IPv4地址),我们无法直接通过公网访问家里的设备和服务,这给我们带来了一定的困扰。但是别担心,内网穿透技术就是解决这个问题的绝佳方案。
在本教程中,我们将介绍一款名为NPS的轻量级内网穿透工具,它不仅支持多平台,包括X86、ARM和MIPS,而且还提供了便捷的WEB管理界面,使得搭建和配置内网穿透服务器变得简单而直观。
内网穿透简介
内网穿透是一种将内部网络的服务暴露到公网的技术,使得外部用户可以通过互联网访问内部网络中的服务。它允许在没有公网 IP 地址或端口转发的情况下,通过一个中间代理服务器将内部网络的服务暴露给外部用户。
内网穿透通常用于以下场景:
远程访问:当内部网络中的设备需要被外部用户远程访问时,可以使用内网穿透技术。例如,通过内网穿透可以将家庭网络中的个人电脑、NAS(网络附加存储)等设备暴露给外部用户,实现远程访问和控制。
远程办公:在企业中,员工可能需要从外部网络访问内部网络中的办公应用、文件共享等资源。内网穿透可以提供一种安全的方式,让员工能够远程访问这些资源,实现远程办公。
数据备份和同步:内网穿透可以用于将内部网络中的文件、数据库等数据备份到外部云存储服务或同步到其他设备。这样即使内部网络出现故障,数据仍然可以从外部网络进行恢复和同步。
搭建网站和应用程序:内网穿透可以用于将内部网络中的网站、应用程序等服务暴露给外部用户。通过内网穿透,开发者可以在本地搭建并测试自己的网站或应用程序,而无需购买公网 IP 地址或使用其他复杂的端口转发设置。
常见的内网穿透工具包括 ngrok、frp、nps 等。这些工具提供了简单易用的界面和配置选项,可以帮助用户快速搭建内网穿透环境。然而,需要注意的是,在使用内网穿透技术时,安全性是非常重要的考虑因素,应该采取适当的安全措施来保护内部网络的安全。
NPS介绍
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持TCP、UDP流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、游戏私服、我的世界服务器 等等……),此外还支持内网http代理、内网socks5代理、p2p等,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。
案例:
1、做微信公众号开发、小程序开发等----> 域名代理模式
2、想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,----> tcp代理模式
3、在非内网环境下使用内网dns,或者需要通过udp访问内网机器等----> udp代理模式
4、在外网使用HTTP代理访问内网站点----> http代理模式
5、搭建一个内网穿透ss,在外网如同使用内网vpn一样访问内网资源或者设备----> socks5代理模式
NPS项目Github地址:https://github.com/yisier/nps
NPS官方中文文档:https://ehang-io.github.io/nps/#/
特点
协议支持全面,兼容几乎所有常用协议,例如tcp、udp、http(s)、socks5、p2p、http代理...
全平台兼容(Linux、Windows、Macos、群辉等),支持一键安装为系统服务
控制全面,同时支持服务端和客户端控制
https集成,支持将后端代理和web服务转成https,同时支持多证书
操作简单,只需简单的配置即可在web ui上完成其余操作
展示信息全面,流量、系统信息、即时带宽、客户端版本等
扩展功能强大,该有的都有了(缓存、压缩、加密、流量限制、带宽限制、端口复用等等)
域名解析具备自定义header、404页面配置、host修改、站点保护、URL路由、泛解析等功能
服务端支持多用户和用户注册功能
准备
首先需要一台云服务器,要有公网IP的,推荐壹加数字云的:
注册地址:https://www.ejiabest.cn
注册完账号后进到产品页面,云服务器入口可以在顶部菜单找到:
点击国内云服务器,接着选择服务器区域,国内用户建议选择内地机房,因为延迟低,比如宿迁和十堰,其中推荐十堰,因为IP便宜,如果预算充足选择宿迁和四川更好。
配置选择2核2G一般够用了。
都选好后就可以点击立即购买了,也可以选择1元试用1天。
购买后即可在控制台-云服务器这里看到你买的云服务器,点击后面的操作。
接着就可以看到云服务器的信息了,在这里重装/切换系统,可以升级等等。
连接服务器
下载安装并打开ssh客户端软件,ssh客户端软件推荐putty或mobaxterm。
我这里用mobaxterm,在SSH客户端中输入你的服务器的IP地址(壹加数字云控制台获取),还有SSH端口(一般默认是22),然后点击好的或者打开。
然后输入账号并按回车,账号一般默认为root,接着输入密码并按回车确定,输入密码时不会显示出来。
温馨提示:在SSH终端中按住鼠标左键选择文字,然后松开鼠标,再在空白处单击一下,这样就把选中的文字复制了;在SSH终端单击右键即为粘贴。
安装Docker
如果选择了预安装Docker环境就直接跳过安装这一步,直接Docker换国内源那一步。
在ssh终端,输入下面的指令。
用apt包管理器来安装:
# 安装docker,如果遇到问是否继续的就输入y来确定
apt install docker.io
# 设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker
# 检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v
若没安装成功就试试下面的安装脚本:
# 安装docker
curl -sSL https://get.daocloud.io/docker | sh
# 设置docker开机自启和启动docker
systemctl enable docker && systemctl start docker
# 检查是否安装成功,若安装成功会显示 Docker version x.x.x
docker -v
如果还是不行就尝试下面链接的手动安装教程吧
docker手动安装教程:https://www.runoob.com/docker/ubuntu-docker-install.html
Docker换国内源
# 创建或修改 /etc/docker/daemon.json 文件
apt install nano && nano /etc/docker/daemon.json
# 然后输入下面内容:(输入完后按Ctrl+O,然后回车保存,接着按Ctrl+X退出编辑器)
{
"registry-mirrors": ["https://docker.nju.edu.cn"]
}
# 重启docker服务
systemctl restart docker.service
搭建NPS服务端
安装NPS服务端:
# 创建 /opt/nps 目录存放配置文件
mkdir /opt/nps
# 安装wget并且下载配置文件
apt install -y wget && wget https://cn-sy1.rains3.com/rainyun-assets/Pic/2023/11/conf_1b8df8f61551218f81065d9b20288371.zip
# 解压配置文件到 /opt/nps 目录
apt install unzip && unzip conf_1b8df8f61551218f81065d9b20288371.zip -d /opt/nps
# 拉取 yisier1/nps 镜像
docker pull yisier1/nps
# 运行 nps 容器,配置文件夹 conf 在 /opt/nps/conf 目录下
docker run -d --name=nps --restart=always --net=host -v /opt/nps/conf:/conf yisier1/nps
# 查看日志
docker logs nps
安装完后在浏览器打开:http://你服务器IP:8080
使用用户名和密码登陆(默认admin/123,正式使用一定要更改,修改/opt/nps/conf/nps.conf配置文件中的web_password)
修改密码:
# 安装nano编辑器,编辑nps.conf文件
apt install nano && nano /opt/nps/conf/nps.conf
# 找到web_password这一项,修改密码,修改完后按Ctrl+O,然后回车保存,接着按Ctrl+X退出编辑器
# 建议将public_vkey设置为空
# 修改完后重启NPS容器
docker restart nps
服务端配置文件解析:
客户端安装使用
首先登陆进来NPS服务端的WEB管理页面,找到【客户端】,点击【新增】。
备注这里就根据需要写,其他的看着来就行。最后点击【新增】
刷新一下就能看到我们添加的客户端了,目前是处于离线状态。左边有一个小加号,点击可以展开。下面的客户端命令我们一会要用。下面是各种客户端安装方法,选一种适合的就行。
评论区