599 字
3 分钟
Ubuntu搭建n2n并托管到systemd

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

Ubuntu搭建n2n#

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

Terminal window
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
字母全称作用
xextract解压模式(必须选项,表示要解压文件)
zgzipgzip 解压(处理 .tar.gz.tgz 文件时需此选项)
vverbose显示解压过程的详细信息(列出正在解压的文件名,可选但推荐)
ffile指定要操作的文件名(必须选项,后接文件名)

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

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

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

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

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

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

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

托管到systemd#

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

首先创建n2n.service文件:

Terminal window
sudo vim /etc/systemd/system/n2n.service

将下列内容输入文件中:

[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配置后需要重新加载:

Terminal window
sudo systemctl daemon-reload

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

Ubuntu搭建n2n并托管到systemd
https://fuwari.cbba.top/posts/ubuntu搭建n2n并托管到systemd/
作者
Chen_Feng
发布于
2025-06-21
许可协议
CC BY-NC-SA 4.0