博主

1月20日在线

小明知道
铁血的 热血的 冷血的
博主 小明知道
博主 1月20日 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
博主

1月20日在线

小明知道
铁血的 热血的 冷血的
博主 小明知道
博主 1月20日 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 2 人
Title

内网穿透

胡小明

·

Article

前言

现在家庭宽带用户基本很难再分配到一条公网IP,IPv6对部分应用的兼用和普及上面还存在很多困难,如果想在外网访问家里部署的服务,那么内网穿透就是一个比较折中的办法了。

我看了很多方案,觉得最快最方便实施的就是NPS,只需一个有公网IP的服务器,和一个路由器就可以部署了。

在服务器端安装NPS,在家里路由器、NAS或电脑上安装NPC,然后绑定一下就可以在外网访问家里的应用了。

注意1:NPS和NPC两个应用的版本号必须一样,否则无法使用。
注意2:原项目已停更多年,先由网友接力在v0.26.10基础上二次开发,目前已更新到v0.26.28,
项目开源地址:https://github.com/yisier/nps
docker地址

NPS: https://hub.docker.com/r/yisier1/nps

NPC: https://hub.docker.com/r/yisier1/npc

  1. 环境准备

  2. 一台拥有公网IP的服务器(例如阿里云、华为云、腾讯云等各种云服务商);
  3. 一台需要被穿透的内网机器(例如家里的NAS、软路由、树莓派、PC等);
  4. SSH工具(例如PuTTY、Xshell等,用于连接服务器;
  5. 安装

  6. 命令安装

  7. Server服务器端安装与配置(公网服务器)

  8. 下载服务端程序。

    首先,登录你的公网服务器,确定你的 CPU 架构(通常是 amd64x86_64)。

    ♾️ bash 代码:
    # 下载NPS程序,以v0.26.28版本为例
    wget https://github.com/yisier/nps/releases/download/v0.26.28/linux_amd64_server.tar.gz
    
    # 解压
    tar -zxvf linux_amd64_server.tar.gz
  9. 安装与配置

    ♾️ bash 代码:
    # 执行安装命令
    sudo ./nps install

    安装完成后,配置文件通常位于 /etc/nps/conf/nps.conf。我们需要修改一些关键配置。

    ♾️ bash 代码:
    # 编辑配置文件
    sudo nano /etc/nps/conf/nps.conf

    重点修改/确认以下几项:

♾️ ini 代码:
# web管理端口,默认8080,建议修改为不常用的端口以防扫描
web_port = 8080

# web管理界面的用户名
web_username = admin

# web管理界面的密码 (务必修改!)
web_password = 123

# 客户端连接服务端的端口,默认8024
bridge_port = 8024

# 域名代理端口 (如果你需要穿透 HTTP/HTTPS 网站)
http_proxy_port = 80
https_proxy_port = 443

Ctrl+O 保存,Ctrl+X 退出 nano 编辑器。

  1. 启动 NPS 服务

♾️ bash 代码:
# 启动服务
sudo nps start

# 查看状态
sudo nps status

如果显示运行中,说明服务端安装成功。

  1. 放行防火墙端口

    这是最容易被忽略的一步。你需要去云服务商的安全组或服务器内部的防火墙放行以下端口:

  2. Web管理端口 (如 8080)
  3. 客户端连接端口 (如 8024)
  4. 你需要穿透的具体业务端口 (例如你想穿透内网的 SSH,你可能需要在公网开放 2222 端口)
  5. web管理界面配置

  6. 打开浏览器,访问 http://你的公网IP:8080
  7. 输入你在配置文件中设置的用户名和密码。
  8. 创建客户端
  9. 点击左侧菜单 “客户端” -\> “新增”
  10. 备注:填写便于识别的名字(如 "Home-NAS")。
  11. 验证密钥 (vkey) :这是客户端连接服务端的凭证,可以自定义,也可以自动生成(例如 my_secret_key_123)。
  12. 压缩/加密:建议开启,提高传输效率和安全性。
  13. 点击 “新增”
    此时,你会看到客户端列表中多了一行,状态为“离线”。记下刚才设置的 vkey
  14. NPC 客户端安装(内网机器)

    此处以Linux客户端为例

  15. 下载客户端程序

    ♾️ bash 代码:
    # 下载 Linux amd64 客户端
    wget https://github.com/yisier/nps/releases/download/v0.26.28/linux_arm64_client.tar.gz
    # 解压
    tar -zxvf linux_arm64_client.tar.gz
  16. 运行客户端

    使用刚才在 Web 界面获取的 vkey 和公网服务器 IP 进行连接。

    ♾️ bash 代码:
    # 格式: ./npc -server=公网IP:8024 -vkey=你的密钥 -type=tcp
    ./npc -server=1.2.3.4:8024 -vkey=my_secret_key_123 -type=tcp

    如果看到 Successful connection with server... 字样,说明连接成功!

  17. 注册为系统服务(开机自启)

    为了让它在后台稳定运行:

    ♾️ bash 代码:
    # 安装服务
    sudo ./npc install -server=1.2.3.4:8024 -vkey=my_secret_key_123 -type=tcp
    # 启动服务
    sudo npc start
  18. Docker部署

  19. Server服务器端安装与配置(公网服务器)

  20. 拉取nps镜像

    ♾️ bash 代码:
    docker pull yisier1/nps
  21. 启动服务和配置

    容器管理里面去建立容器和打开浏览器配置

  22. NPC 客户端安装(内网机器)

  23. 拉取npc镜像

    ♾️ bash 代码:
    docker pull yisier1/npc
  24. 启动npc程序

    ♾️ bash 代码:
    docker run -d --restart=always --name <自定义名称> --net=host yisier1/npc -server=xxxx -vkey=xxxx

    填入之前获取的server和vkey码

  25. 创建穿透隧道

    客户端连接成功后(Web 界面显示“在线”),我们就可以建立具体的穿透规则了。

  26. 示例 1:TCP 隧道(穿透 SSH 或 远程桌面)

    假设你想通过公网访问内网机器的 SSH (端口 22)。

  27. 在 Web 管理界面,点击左侧 “TCP隧道” -\> “新增”
  28. 客户端ID:选择刚才创建的客户端。
  29. 服务端端口2222 (这是你在公网访问时用的端口)。
  30. 目标 (IP:端口)127.0.0.1:22 (这是内网机器自己的 SSH 端口)。
  31. 点击 “新增”

测试
在外部网络,使用 SSH 连接 公网IP:2222,即可直接连入内网机器。

  1. 示例 2:HTTP 域名代理(穿透网站)

    假设你内网有一个网站运行在 80 端口,你想通过 demo.example.com 访问。

  2. 确保你的域名 demo.example.com 已经解析到了公网服务器 IP。
  3. 在 Web 管理界面,点击左侧 “域名解析” -\> “新增”
  4. 客户端ID:选择对应客户端。
  5. 主机demo.example.com
  6. 目标 (IP:端口)127.0.0.1:80
  7. 点击 “新增”

测试
浏览器访问 http://demo.example.com,即可看到内网网站。

  1. 常见问题

  2. 连接状态一直是“离线”
  3. 检查公网服务器防火墙是否放行了 8024 端口。
  4. 检查客户端能否 Ping 通服务端 IP。
  5. 检查 vkey 是否填写正确。
  6. Web 界面打不开
  7. 检查 8080 端口是否放行。
  8. 检查 nps.confweb_host 是否限制了 IP(默认为空,允许所有)。
  9. 速度慢

    • 内网穿透受限于公网服务器的带宽。如果你的云服务器只有 1Mbps 带宽,穿透速度最快也只有 128KB/s。
现在已有 45 次阅读,0 条评论,1 人点赞
胡小明
Author:胡小明
作者
内网穿透
当前文章累计共 3943 字,阅读大概需要 4 分钟。
内网穿透
2026年1月17日 · 0评论
Comment:共0条
发表
搜索 消息 足迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主
未知作品 歌曲封面
博主 立即安装
前往评论 切换字号