N

NPS搭建内网穿透教程(Windows & linux)

HB 网络电脑 2024-01-28

一、使用linux服务器进行搭建nps

nps项目地址:https://github.com/ehang-io/nps

基本使用

https://ehang-io.github.io/nps/#/use

下载 linux server 端

下载自己系统对应版本:
https://github.com/ehang-io/nps/releases

服务器端安装(推荐使用 finalshell 进行 ssh 连接)
本例是x86 ubuntu系统安装

wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz

解压安装

tar -zxvf linux_amd64_server.tar.gz 
sudo  ./nps install

相关操作:

nps start|stop|restart|uninstall|update or nps-update update

升级操作:

nps-update update
the latest version is v0.26.10

安装或升级完成之后编辑 /etc/nps/conf/nps.conf

服务端配置文件说明

为安全性(nps有这个漏洞)考虑的话,去掉#auth_key=test前面的#号并且将test改成乱码,比如

auth_key=etsys#%!

并将

auth_crypt_key=1234567812345678

也改为乱码,比如

auth_crypt_key=rghusiohfsq#

然后重启nps

nps restart

服务器如果是端口映射则需要映射web端口和客户端连接端口

使用公网地址+你设置的端口号登录 nps web 管理页面,如:

http://xxx.xxx.xxx.xxx:8080

选择左侧“客户端”,点击新增,可自由选择,也可什么也不动

新增之后刷新,点击刚刚创建的客户端最左侧的+号

里面的连接指令就是在客户端需要执行的命令

二、使用linux连接nps

下载 linux client 端

wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz

arm设备

wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_arm64_client.tar.gz

如果服务器下载失败,则可以进入项目地址单独下载 linux_amd64_client.tar.gz

解压:

tar -zxvf linux_amd64_client.tar.gz
# arm设备
# tar -zxvf linux_arm64_client.tar.gz

启动客户端 NPC (无配置文件方式)

直接输入连接服务端指令即可连接(如果nps所在服务器是端口映射的,请将连接指令中的网址改为映射出去的外网地址):

./npc -server=你的服务端IP:桥接端口 -vkey=你的VKey -type=tcp
# 示例
# ./npc install -server=210.66.26.220:8022 -vkey=a9zf7ldt40y65iq9ufhty2t -type=tcp

server: 替换为你的 NPS 服务端的实际 IP 地址和桥接端口,例如123.45.67.89:8024。
-vkey: 替换为服务端为你生成的唯一验证密钥。
-type: 指定连接类型,通常为tcp。根据服务端配置可能有所不同。

如果想让该映射自启动且不占用ssh,在后台持续运行可在指令中添加 install 如下:

./npc install -server=你的服务端IP:桥接端口 -vkey=你的VKey -type=tcp
# 示例
# ./npc install -server=210.66.26.220:8022 -vkey=a9zf7ldt40y65iq9ufhty2t -type=tcp

或使用nohup或者将其注册为系统服务 (systemd service)。

nohup ./npc -server=你的服务端IP:桥接端口 -vkey=你的VKey -type=tcp &
# 示例
# nohup ./npc install -server=210.66.26.220:8022 -vkey=a9zf7ldt40y65iq9ufhty2t -type=tcp &


点击查看大图

进入nps的web端的客户端页可看到是否连接成功,若显示在线,点击隧道,然后进行端口映射,点击新增,服务器端口就是映射出去后的端口,目标端口为需要映射的端口,协议为tcp即可。

启动 NPC (有配置文件方式 - 旧版或特定场景)

如果使用配置文件方式 (较老版本或特定需求),编辑npc.conf文件(如果解压后没有,可以手动创建一个或从官方文档获取模板)。

配置文件:

服务端IP:端口

server_addr=你的服务端IP:桥接端口

服务端生成的VKey

vkey=你的VKey

连接类型,tcp或kcp,根据服务端配置

conn_type=tcp

保存配置文件后,启动 NPC:

./npc -config=./npc.conf

注册为系统服务 (可选,推荐用于生产环境)

你可以创建一个 systemd 服务单元文件,使 NPC 开机自启并由 systemd 管理。

示例

npc.service 文件内容 (/etc/systemd/system/npc.service):
[Unit]
Description=NPC
Client Service After=network.target
[Service]
Type=simple
User=your_user # 替换为运行npc的用户名
WorkingDirectory=/path/to/npc # 替换为npc所在的目录
ExecStart=/path/to/npc/npc -server=你的服务端IP:桥接端口 -vkey=你的VKey -type=tcp # 确保路径正确
Restart=on-failure [Install] WantedBy=multi-user.target

然后执行:

sudo systemctl daemon-reload sudo systemctl enable npc sudo systemctl start npc sudo systemctl status npc

三、使用windows服务器进行搭建nps

下载 windows server 端

https://github.com/ehang-io/nps/releases/download/v0.26.10/windows_386_server.tar.gz

解压,配置文件在conf/nps.conf中,参考linux server搭建进行编辑

运行nps.exe

Windows版nps服务端web操作同linux。

四、使用windows服务器进行连接nps

下载 windows client 端

https://github.com/ehang-io/nps/releases/download/v0.26.10/windows_amd64_client.tar.gz

解压,在该目录按shift+鼠标右键“在终端中打开”cmd窗口,输入连接nps服务端指令:

npc -server=127.0.0.1:8024 -vkey=你的Vkey -type=tcp

将上面的启动命令保存为一个.bat批处理文件,然后将该批处理文件的快捷方式放入系统的“启动”文件夹中 (在运行中输入shell:startup)。

start_npc.bat内容:

@echo off C:\path\to\npc.exe -server=你的服务端IP:桥接端口 -vkey=你的VKey -type=tcp

Docker安装客户端NPC

 # 拉取 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

建立内网穿透隧道

按照上面的方法安装好客户端后就可以新建内网穿透隧道了,这里以Windows的远程桌面服务为例,需要将远程桌面TCP3389端口映射出去,所以新建一个TCP隧道,可以根据自己实际需要选择TCP还是UDP。

客户端ID填写你上面添加的客户端的ID,服务端端口填写想映射到服务器的哪个端口,目标IP端口填写你客户端想要映射的端口,IP填127.0.0.1表示本机,也可以填局域网内的其他设备的IP,可将局域网内的其他设备端口映射出去,我这里就填了本机的3389端口,填好后点击新增就行。

现在你就可以通过这个服务器的这个端口访问到你内网的机器远程桌面了


ARM或MIPS架构请到下面的链接:
https://github.com/yisier/nps/releases

相关说明:
https://github.com/yisier/nps

PREV
Windows使用webDAV访问Nextcloud文件
NEXT
Windows系统安装OpenSSL库最新版方法