大佬的源地址:https://github.com/ehang-io/nps
nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。
服务端
首先你需要一台云服务器,建议阿里云购买,有大学生300元的代金劵,配置2v 2g就够了。
首先我们需要在云服务器上安装docker,这边我采用的是安装1panel面板,它会顺带安装docker的
1panel面板:1Panel – 现代化、开源的 Linux 服务器运维管理面板
由于我采用的是centos 7.9
所以我用:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
进行下载安装。
安装后记得在云服务器控制台的安全组中开启相应的端口。
然后在浏览器中输入:http://ip:端口 进行访问。
或者,不想安装面板,也可以手动安装docker
# 安装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
还是不行的话
手动配置:https://www.runoob.com/docker/ubuntu-docker-install.html
下载安装完后,docker换国内源
1panel:可以从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
进行手动修改。
然后搭建npc:
# 创建 /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)修改密码:
名称 定义
web_port web管理端口
web_password web界面管理密码
web_username web界面管理账号
web_base_url web管理主路径,用于将web管理置于代理子路径后面
bridge_port 服务端客户端通信端口
https_proxy_port 域名代理https代理监听端口
http_proxy_port 域名代理http代理监听端口
auth_key web api密钥
bridge_type 客户端与服务端连接方式kcp或tcp
public_vkey 客户端以配置文件模式启动时的密钥,设置为空表示关闭客户端配置文件连接模式
ip_limit 是否限制ip访问,true或false或忽略
flow_store_interval 服务端流量数据持久化间隔,单位分钟,忽略表示不持久化
log_level 日志输出级别
auth_crypt_key 获取服务端authKey时的aes加密密钥,16位
p2p_ip 服务端Ip,使用p2p模式必填
p2p_port p2p模式开启的udp端口
pprof_ip debug pprof 服务端ip
pprof_port debug pprof 端口
disconnect_timeout 客户端连接超时,单位 5s,默认值 60,即 300s = 5mins
登录npc web 后台后:
先新增客户端:
然后点击新增就可以了。
就会获得一个密钥。
客户端
Windows
首先下载Windows版的客户端:
github下载地址:Releases · yisier/nps (github.com)
我在需要运行NPS客户端的Windows设备的C盘根目录下建立一个名字叫【npc】的目录,将刚才下载的NPS客户端的文件解压后放到里面。这里注意,我们只要【npc.exe】文件即可。
然后以管理员身份运行命令提示符,输入 cd /npc
跳转到npc目录下,输入以下命令:
npc.exe install 客户端命令(记得不要复制./npc 只要后边的)
这样我们的npc就添加到系统服务里了,再找到 控制面板 – 管理工具 – 服务 里找到【nps内网穿透客户端】,找到【恢复】选项卡,按照下图中设置即可。设置完成后就可以启动服务了。
这样客户端就连接到了NPS的服务端了
linux
# 拉取 yisier1/npc 镜像
docker pull yisier1/npc
# 运行 npc 容器,按提示改好命令,如下图所示
docker run -d --name=npc --restart=always --net=host yisier1/npc -server=<ip:port> -vkey=<web界面中显示的密钥> <以及一些其他参数>
# 查看日志
docker logs npc
这样NPS客户端就算安装完成了
建立内网穿透隧道
按照上面的方法安装好客户端后就可以新建内网穿透隧道了,我这里以Windows的远程桌面服务为例,需要将TCP 3389端口映射出去,所以新建一个TCP隧道,你们根据自己实际需要选择TCP还是UDP。
客户端ID填写你上面添加的客户端的ID,服务端端口填写想映射到服务器的哪个端口,目标IP端口填写你客户端想要映射的端口,IP填127.0.0.1表示本机,也可以填局域网内的其他设备的IP,可将局域网内的其他设备端口映射出去,填好后点击新增就行。
接着你就可以通过这个服务器的这个端口访问到你内网的机器.
嘿嘿