内网穿透工具nps的使用

5/6/2025 npsnpcubuntu

# 一、服务端/代理端(nps)

# 1.1 下载nps

将nps包下载到当前用户任意路径

cd ~/downloads
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
1
2

# 1.2 解压linux_amd64_server.tar.gz

将gz文件解压到当前用户下的nps路径

mkdir ~/nps
tar -zxvf ~/downloads/linux_amd64_server.tar.gz -C ~/nps
1
2

解压后在~/nps路径下可以看到3样内容:conf文件夹、nps可执行程序、web文件夹

# 1.3 安装nps

进入到~/nps执行安装

cd ~/nps
sudo ./nps install
1
2
  • 安装完成后,会自动将nps可执行文件拷贝到/usr/bin中形成nps环境变量
  • 同时会将web和conf文件夹拷贝到/etc/nps中,通过环境变量nps运行的程序会使用/etc/nps中的配置文件

# 1.4 修改配置文件

修改位于/etc/nps/conf/nps.conf的配置文件,主要配置项如下:

  • http_proxy_port=6080和https_proxy_port=6443: http(s)统一代理,通过配置域名和内网IP:端口的匹配规则,将nps服务器的http(s)转发到内网中
  • bridge_type=tcp桥接方式:客户端与服务端建立连接的方式,一般为tcp
  • bridge_port=6024桥接端口:nps应用桥接监听端口,客户端以该端口为目标与服务端建立连接
  • public_vkey=AaBbCcDd:
    • 当允许客户端自动注册时,客户端在连接nps时需要使用到该密钥
    • 本密钥应设为一个较长的随机字符串
    • 本流程没有使用客户端自动注册模式,因此该密钥在后续流程中不会涉及
  • web_port = 6060:nps管理系统所运行的端口,可在浏览器中通过<nps服务器IP>:<web_port>访问管理页面
  • web_username=admin和web_password=123456: 访问管理系统所使用的账号密码
  • auth_crypt_key=1234567812345678:客户端与服务端进行数据传输时使用的加密Key,长度必须为16位,不会直接使用它但也应该设计为随机字符串
  • http_add_origin_header=true: 在域名代理模式中,可以通过request请求 header 中的 X-Forwarded-For 和 X-Real-IP 来获取用户真实IP

# 1.5 启动nps

sudo nps start
1

启动之后的日志文件位于/var/logs/nps.log

# 1.5 创建客户端

根据配置文件中的配置,通过浏览器访问<nps服务器IP地址>:6060进入到管理页面
在客户端选项中添加1个客户端,可以只填写一下备注信息。
添加完成后会为客户端生成一个唯一验证密钥,客户端连接时需要使用该信息,该信息也作为客户端的身份信息

# 1.6 设置隧道

点击客户端列表中的隧道,进入到隧道管理列表,点击新增进入规则设置:

  • 模式:选择相应协议,tcp用途较广,可用于tcp、http(s)以及ssh连接等
  • 客户端ID:该规则所绑定的客户端ID号
  • 服务端端口:即需要绑定的nps服务器的端口号
  • 目标 (IP:端口):需要与服务端端口进行穿透的内网计算机的IP及端口号

# 二、客户端(npc)

# 2.1 下载npc

将与nps版本一致的npc下载到当前用户任意路径

cd ~/downloads
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz
1
2

# 2.2 解压linux_amd64_client.tar.gz

将gz文件解压到当前用户下的npc路径

mkdir ~/npc
tar -zxvf ~/downloads/linux_amd64_client.tar.gz -C ~/npc
1
2

解压后在~/nps路径下可以看到2样内容:conf文件夹、npc可执行程序

# 2.3 直接启动npc服务

npc可以不进行install操作而直接启动,只需要在启动时加入必要参数即可:

nohup ~/npc/npc -server=<nps服务器IP地址>:6024 -vkey="唯一验证密钥" >> ~/log/npc.log &
1
  • ~/npc/npc:npc应用程序
  • server: 指定nps所在服务器的IP地址和端口号
  • -vkey: 填写nps的web管理页面中创建的客户端所生成的唯一验证密钥
  • 日志文件输出到当前用户的目录~/log/npc.log因此执行该启动指令不需要sudo权限
  • 可以在日志文件中看到连接的情况
Last Updated: 5/7/2025, 8:55:52 PM