Ubuntu搭建n2n并托管到systemd

之前只是临时用windows服务器运行了n2n的服务端,教程:使用N2N搭建虚拟局域网联机游戏(EasyN2N\小黄鸭) | Bug侠,确实比较方便,但是服务器配置比较低,用windows系统基本就干不了别的什么东西了,所以考虑把n2n搭建到Ubuntu上

Ubuntu搭建n2n

这里采用编译安装的方法:

1
2
3
4
5
6
wget https://github.com/ntop/n2n/archive/refs/tags/3.0.tar.gz 
tar xzvf 3.0.tar.gz 
cd n2n-3.0 
./autogen.sh 
./configure 
make && make install
字母 全称 作用
x extract 解压模式(必须选项,表示要解压文件)
z gzip gzip 解压(处理 .tar.gz.tgz 文件时需此选项)
v verbose 显示解压过程的详细信息(列出正在解压的文件名,可选但推荐)
f file 指定要操作的文件名(必须选项,后接文件名)

自动判断压缩类型(较新版本):

使用 -a--auto-compress 可让 tar 自动检测压缩类型:

  • 1
    
    tar xavf 文件名.tar.gz  # 自动识别 gzip/bzip2/xz 等

如果wget特别慢或者连接不上,可以考虑本地下载上传到服务器,或者给服务器配置梯子后在服务器开启梯子直接下载

安装后,直接以守护模式启动的命令:

1
2
#实际使用时,可以去掉 -f 参数,使其后台运行    9527是对应端口号
supernode -p 9527 -f

然后检查Ubuntu的防火墙和服务器提供商的安全组,确保9527端口已开放,接下来就可以通过客户端进行连接了,这篇教程里有客户端的链接:使用N2N搭建虚拟局域网联机游戏(EasyN2N\小黄鸭) | Bug侠

托管到systemd

考虑到通过supernode以守护模式运行后,想关闭的话还得先查找进程的PID,才能通过kill -9 <PID>杀掉进程,长期使用不如ststemd方便管理,以下是托管到systemd的操作。

首先创建n2n.service文件:

1
sudo vim /etc/systemd/system/n2n.service

将下列内容输入文件中:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[Unit]
Description=N2N SuperNode (VPN Overlay Network)
After=network.target

[Service]
Type=simple
User=root
ExecStart=/root/n2n-3.0/supernode -p 9527 -f  # 监听端口9527,-f强制前台运行,因为上面Type=simple,如果不强制前台运行就不能设置为simple
Restart=always                                 # 崩溃后自动重启
RestartSec=5s                                 # 5秒后重启
StandardOutput=syslog                         # 日志输出到 syslog
StandardError=syslog
SyslogIdentifier=n2n-supernode               # 日志标识

[Install]
WantedBy=multi-user.target

修改systemd配置后需要重新加载:

1
sudo systemctl daemon-reload

然后就可以通过systemctl来启动了

0%