云服务器推荐:
配置前提:
- 一台拥有公网IP的云服务器,最好是干净的,刚装完系统的,可以是NAT型云服务器,但是你得做好NAT设置。
- 如果有云服务器提供商开了默认的防火墙或者安全组,请把所有端口全部开放,我们在服务器内部做防火墙。
- 本地客户端能正常上网,本教程以正常家用宽带为例,有些校园网可能也能通,但要视情况而定。
云服务器的推荐配置:
- 系统:Ubuntu 22.0 版本以上/Debian 12.0 版本以上
- CPU:1核
- 内存:1G
本文以 Ubuntu 22.04 LTS 为例。
1:NPS 介绍
NPS 是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。
为什么选择NPS?
- 协议支持全面,兼容几乎所有常用协议,例如tcp、udp、http(s)、socks5、p2p、http代理。
- 全平台兼容(linux、windows、macos、群辉等),支持一键安装为系统服务。
- 控制全面,同时支持服务端和客户端控制。
- https集成,支持将后端代理和web服务转成https,同时支持多证书。
- 操作简单,只需简单的配置即可在web ui上完成其余操作。
- 展示信息全面,流量、系统信息、即时带宽、客户端版本等。
- 扩展功能强大,该有的都有了(缓存、压缩、加密、流量限制、带宽限制、端口复用等等)。
- 域名解析具备自定义header、404页面配置、host修改、站点保护、URL路由、泛解析等功能。
- 服务端支持多用户和用户注册功能。
2:服务器端配置
2.1:准备阶段
2.1.1:切换国内软件源
Ubantu/Debian的默认软件源很多是国外的,下载可能会中断或者速度很慢,所以切换软件源为国内阿里源(如果你的VPS是海外线路,那么这块不执行也可以):
cat > /etc/apt/sources.list << EOF
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
EOF修改软件源配置文件以后,我们更新一下软件包索引,否则白改了:
apt update2.1.2:安装 Docker
我们使用 Docker 将 NPS 服务隔离出来,更安全也更简洁。
这是docker的安装命令,registry源选择 1Panel,其他默认选择即可。
curl -sSL https://linuxmirrors.cn/docker.sh -o docker.sh && bash docker.sh配置docker加速镜像,跟修改软件源一样,用来加速下载docker镜像。
tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.mirrors.aster.edu.pl",
"https://docker.mirrors.imoyuapp.win"
]
}
EOF应用docker配置。
systemctl daemon-reload重启docker,使配置生效。
systemctl restart docker2.2:创建 NPS 容器
2.2.1:创建挂载目录
首先在当前目录创建nps文件夹并切换到nps目录。
mkdir nps && cd nps创建conf文件夹并切换到conf目录。
mkdir conf && cd conf下载conf文件。
wget https://www.xiaotiewinner.com/usr/uploads/2025/08/2530722170.gz -O nps-conf.tar.gz解压conf文件。
tar -zxvf nps-conf.tar.gz此时您可以修改 nps.conf 中的某些配置以保证安全性,但是本教程中我们使用默认的用户名密码以及端口。
点击这里查看每个配置项的作用。
然后我们返回到 nps 目录。
cd ..2.2.2:编辑 docker-compose.yml 文件(我习惯用 vim ,你也可以用 nano)
vim docker-compose.yml将以下内容修改后粘贴到文本中(可使用快捷键:SHIFT + INSERT),需要修改的部分加了注释( # 之后的内容),注释放进去不影响 docker 容器的编译和运行。
services:
nps:
restart: always
container_name: nps
network_mode: host
volumes:
- ./conf:/conf
- /etc/localtime:/etc/localtime:ro
image: yisier1/nps保存文件:手动打出:wq,然后按回车键。
2.2.3:编译并运行 Docker 容器
docker compose up -d2.3:配置阶段
2.3.1:访问 NPS 管理后台
- 打开浏览器,地址栏输入 云服务器的公网IP:8081(如果您修改过
nps.conf中的web_port,这里的端口号也需要对应修改)。

如果访问不到,你需要检查云服务器的外部和内部防火墙是否打开了 8081 端口。 - 用户名输入
admin,密码输入123,点击登录按钮(如果您修改过nps.conf中的web_username和web_password,这里的用户名密码也需要对应修改)。
2.3.2:配置服务端
- 点击左侧菜单中
服务端,然后点击第一条信息中最右侧的隧道按钮。

- 点击
新增按钮,进入隧道新增页面。

服务端端口输入33000,目标输入127.0.0.1:3000,点击新增按钮。

注:- 我的本地客户端电脑在3000端口发布了一个服务,所以这样写。你的本地有什么端口需要发布到公网就写什么端口,例如如果希望发布windows远程桌面服务,就写
127.0.0.1:3389,如果想发布linux的ssh服务,就写127.0.0.1:22。 127.0.0.1表示客户端本机,如果你想发布局域网下的其他设备的服务,那么就把127.0.0.1改为对应设备的局域网IP。服务端端口,顾名思义,就是公网IP后面跟着的端口,这样就形成了IP+端口的映射,以教程中的设定为例,对公网IP + 33000端口访问最终会被转发到本地的3000端口。
- 我的本地客户端电脑在3000端口发布了一个服务,所以这样写。你的本地有什么端口需要发布到公网就写什么端口,例如如果希望发布windows远程桌面服务,就写
- 最后返回客户端页面,点
+,将快捷启动命令复制下来。

3:客户端端配置
3.1:配置客户端(本地)
3.1.1:配置客户端(Windows)
- 下载
npc文件,点这里下载。 - 解压出来,右键——管理员模式运行。
- 把 刚刚 最后复制的内容粘贴上去,然后回车(如果希望以后开机自启,先输入1,然后粘贴快捷启动命令)。
- 看到命令行中有 Successful 字样并且管理页面客户端页面刷新以后
连接一栏显示 在线 说明网络通了,试着访问公网IP+服务端端口试试看吧。
3.1.2:配置客户端(Linux)
下载
npc文件,如果不知道自己的系统要下载哪种,就下载amd版本。amd:
wget https://cdn.jsdelivr.net/gh/xiaotiewinner/static-resources@main/files/2025/06/npc-linux-amd.tar.gzamd:
wget https://cdn.jsdelivr.net/gh/xiaotiewinner/static-resources@main/files/2025/06/npc-linux-arm.tar.gz
解压
npc。tar -zxvf npc-linux-amd.tar.gz赋予执行权限。
sudo chmod +x npc执行
npc。sudo ./npc- 把 刚刚 最后复制的内容粘贴上去,然后回车(如果希望以后开机自启,先输入1,然后粘贴快捷启动命令)。
- 看到命令行中有 Successful 字样并且管理页面客户端页面刷新以后
连接一栏显示 在线 说明网络通了,试着访问公网IP+服务端端口试试看吧。