【折腾服务器 4】ESXi 中 Ubuntu 安装 NPS 客户端 ( NPC )

Catch Up

书接上回,上一章中,群晖已经能定期给 Windows 物理机服务器做备份了,但是依然无法从外网访问服务器上的内容,本篇讲述如何在 Ubuntu 中安装 NPS 客户端,也就是所谓的 NPC ( Client )。

Chapter 1 准备一个 Ubuntu 系统

在 ESXi 中新建一个虚拟机,我将全部的核心都分配出去了,然后初期分配了 2GB 内存,为的是安装的时候能快一些。然后使用 BIOS 启动,这个虚拟机主要是用于 NPS 客户端服务的,不干别的,因此储存空间只分配了 16GB。然后网口也是分一个独立使用的即可。

系统选择的是 ubuntu-22.04-live-server-amd64.iso 这个镜像,安装的时候仅仅勾选 Open SSH 和一些基础组件,其他的不需要,装了也是占用资源。安装过程中提示镜像源,我更换的是 阿里云的镜像源,地址如下:

http://mirrors.aliyun.com/ubuntu/

安装的时候只使用命令行界面就行,因为根本用不着图像化界面。

镜像在创建的时候以虚拟光驱的形式挂在,第一次安装完成之后,会要求重启,这个时候进入虚拟机设置页面将这个虚拟光驱断开连接,然后就和其他的安装过程一样。

不明白的可以看这篇博客的前半段 Esxi 6.7部署配置Ubuntu-22.04-live-server_Rocky-Lad的博客-CSDN博客_esxi安装ubuntu,博主讲的非常清晰,虽然软件版本不一样但是不影响安装过程。

Chapter 2 安装 NPS 客户端 ( NPC )

我因为已经安装过 NPS 的服务端了,这里就不再展示了,网上有许多的 NPS 服务端的安装教程,但是 NPS 的客户端特别是针对于 Ubuntu 的客户端安装比较少,这里着重展示这一部分。

Step 1 下载配置 Linux 版本的 NPS 客户端 ( NPC )

我的服务端是 0.26.10 版本,因此我是用下面的命令下载这一版本

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

如果你使用的是别的版本,请到 Github 中寻找对应版本,Github 仓库地址在此 Releases · ehang-io/nps · GitHub

Step 2 创建启动脚本

解压后,我直接将解压后的全部文件放在了 home/{username}/ 这个目录,其中的 username 是你的用户名。然后在这个目录创建 startnpc.sh 这个文件。并将下面的内容复制进去,然后保存。

#!/bin/sh
cd /home/{username}/
echo '{Your Password}'|sudo -S nohup ./npc -server={Server Addr} -vkey={VKEY} -type=tcp >file.out 2>&1 &
  • {username} 是你的用户名,具体第二行也就是 cd 命令后面的路径,需要和你的解压路径一致,也就是进入这个路径之后,可以看到你解压后的全部文件。
  • {Your Password} 是你的用户密码,最理想的情况下,root 用户和你创建的用户的密码是一致的。
  • {Server Addr} 是你的 NPS 服务端的服务器的 IP 地址及端口号,格式如下: xxx.xxx.xxx.xxx:xxxx
  • {VKEY} 是 NPS 服务端生成的一个密钥。

Step 3 创建自启动脚本

输入下面的指令,进入 /etc/systemd/system 目录,网上也有说前往 /lib/systemd/system 路径的,我试过,没成功,估计是是给 Ubuntu 20.04 使用的,在 22.04 版本失效了。这里需要注意系统版本,如果不成就去另外一个目录试试。

cd /etc/systemd/system/

用管理员权限创建 npc.service,输入下面两个脚本中的一个,我忘记哪个有效了,都试试。

shell 1

[Unit]
Description=一款轻量级、功能强大的内网穿透代理服务器。支持tcp、udp流量转发,支持内网http代理、内网socks5代理,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。
ConditionFileIsExecutable=/home/{username}/npc

Requires=network.target
After=network-online.target syslog.target
[Service]
LimitNOFILE=65536
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/home/{username}/startnpc.sh "-debug=false"

Restart=always
RestartSec=120
[Install]
WantedBy=multi-user.target
  • ConditionFileIsExecutable 后面填写解压后文件里的 npc 的文件地址
  • ExecStart 后面填写的是 NPC 启动脚本的文件地址

shell 2

[Unit]
Description=npc
After=network.target
<200b>
[Service]
Type=forking
ExecStart=/home/{username}/startnpc.sh
Restart=always
RestartSec=5
PrivateTmp=true
<200b>
[Install]
WantedBy=multi-user.target
  • ExecStart 后面填写的是 NPC 启动脚本的文件地址

创建完成之后,保存,然后输入下面的命令

sudo systemctl daemon-reload 

接着设置开机自启动

sudo systemctl enable npc

设置开启服务

sudo systemctl start npc

查看服务状态

sudo systemctl status npc

Chapter 3 后续设置

上述操作完成之后,就可以重启虚拟机进行测试了。查看服务能否正常自启动,上面的两个代码总有一个能用,具体哪个生效我给忘了,实在抱歉。

之后,都设置完成之后,按照流程关闭虚拟机,然后更改资源分配设置,如图:

【折腾服务器 4】ESXi 中 Ubuntu 安装 NPS 客户端 ( NPC )_第1张图片

【折腾服务器 4】ESXi 中 Ubuntu 安装 NPS 客户端 ( NPC )_第2张图片

我测试过,这个是 Ubuntu 22.04 的最低能启动的配置,因为这个虚拟机只专注于 NPC 客户端服务,因此这个需求足够,我挂在公网的服务器的配置甚至比这个还要低 =)无非就是开机的时候慢一些而已。

然后把这个虚拟机也添加到开机自启动里,这样服务器开始这个虚拟机也就开始工作了。

你可能感兴趣的:(折腾服务器系列,ubuntu,服务器,linux)