NPS篇内网穿透、远程访问详细配置教程

2025-06-26T14:51:00

云服务器推荐:
[post cid="29" /]

配置前提:

  • 一台拥有公网IP的云服务器,最好是干净的,刚装完系统的,可以是NAT型云服务器,但是你得做好NAT设置。
  • 如果有云服务器提供商开了默认的防火墙或者安全组,请把所有端口全部开放,我们在服务器内部做防火墙。
  • 本地客户端能正常上网,本教程以正常家用宽带为例,有些校园网可能也能通,但要视情况而定。

云服务器的推荐配置:

  • 系统:Ubuntu 22.0 版本以上/Debian 12.0 版本以上
  • CPU:1核
  • 内存:1G

本文以 Ubuntu 22.04 LTS 为例。

1:NPS 介绍

NPS 是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcpudp流量转发,可支持任何tcpudp上层协议(访问内网网站、本地支付接口调试、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 update

2.1.2:安装 Docker

我们使用 DockerNPS 服务隔离出来,更安全也更简洁。
这是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 docker

2.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 -d

2.3:配置阶段

2.3.1:访问 NPS 管理后台

  1. 打开浏览器,地址栏输入 云服务器的公网IP:8081(如果您修改过 nps.conf 中的 web_port,这里的端口号也需要对应修改)。

    如果访问不到,你需要检查云服务器的外部和内部防火墙是否打开了 8081 端口
  2. 用户名输入 admin ,密码输入 123 ,点击 登录 按钮(如果您修改过 nps.conf 中的 web_usernameweb_password,这里的用户名密码也需要对应修改)。

2.3.2:配置服务端

  1. 点击左侧菜单中 服务端 ,然后点击第一条信息中最右侧的 隧道 按钮。
  2. 点击 新增 按钮,进入隧道新增页面。
  3. 服务端端口 输入 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端口。
  4. 最后返回客户端页面,点 +,将快捷启动命令复制下来。

3:客户端端配置

3.1:配置客户端(本地)

3.1.1:配置客户端(Windows)

  1. 下载 npc 文件,点这里下载。
  2. 解压出来,右键——管理员模式运行。
  3. 刚刚 最后复制的内容粘贴上去,然后回车(如果希望以后开机自启,先输入1,然后粘贴快捷启动命令)。
  4. 看到命令行中有 Successful 字样并且管理页面客户端页面刷新以后 连接 一栏显示 在线 说明网络通了,试着访问公网IP+服务端端口试试看吧。

3.1.2:配置客户端(Linux)

  1. 下载 npc 文件,如果不知道自己的系统要下载哪种,就下载 amd 版本。

    • amd:

      wget https://cdn.jsdelivr.net/gh/xiaotiewinner/static-resources@main/files/2025/06/npc-linux-amd.tar.gz
    • amd:

      wget https://cdn.jsdelivr.net/gh/xiaotiewinner/static-resources@main/files/2025/06/npc-linux-arm.tar.gz
  2. 解压 npc

    tar -zxvf npc-linux-amd.tar.gz
  3. 赋予执行权限。

    sudo chmod +x npc
  4. 执行 npc

    sudo ./npc
  5. 刚刚 最后复制的内容粘贴上去,然后回车(如果希望以后开机自启,先输入1,然后粘贴快捷启动命令)。
  6. 看到命令行中有 Successful 字样并且管理页面客户端页面刷新以后 连接 一栏显示 在线 说明网络通了,试着访问公网IP+服务端端口试试看吧。
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »