无冬之夜:加强版自带专用服务器(Linux 为 nwserver-linux,Windows 为 nwserver.exe),通过命令行选择要托管的模块。Beamdog 没有统一的官方指南:本指南综合 Beamdog 论坛与 NWNX:EE 仓库,并标明未确认之处。预计耗时约 20 分钟。
分步安装
获取服务器文件:游戏文件夹(Steam/GOG)或 Beamdog 的专用服务器包(其论坛有公告)。
把 .mod 模块(以及 hak/tlk,如有)放入服务器的用户目录。
用“nwserver 命令行”工具生成启动命令。
使用 -module、-port、-maxclients、-dmpassword、-publicserver 启动 nwserver。
本地测试:让游戏客户端连接 127.0.0.1(多人游戏 > 直接连接)。
在防火墙、路由器和主机商处开放服务器的 UDP 端口(惯例为 5121)。
配置服务(systemd 或计划任务)并备份模块与角色。
如需 SQL/Redis 等插件,请添加 NWNX:EE(Linux 或 Docker)。
在 game-rank.com/jeux/neverwinter-nights 添加服务器。
前提条件
- 系统:64 位 Windows 或 Linux(nwserver-linux 二进制);macOS 有 nwserver-macos。
- 官方未记载最低配置;简单模块可在小型 VPS(1 核、1 GB)上运行——非官方估计。
- 运行服务器无需 CD 密钥,但玩家登录需要拥有游戏(Beamdog 论坛)。建议使用可做端口转发的独立 IPv4。
本地安装(Windows)
安装游戏后,nwserver.exe 位于其 bin 文件夹(平台子文件夹)。带参数启动;模块需放在用户目录的 modules 文件夹中(可用 -userdirectory 更改)。
cd /d "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights\bin\win32"
nwserver.exe -module MyModule -servername "My NWN server" -port 5121 -maxclients 32 -dmpassword ChangeMe! -publicserver 1在 Linux VPS 上安装(Ubuntu/Debian)
创建非 root 用户,把 Linux 服务端文件(Beamdog 包)复制过去并运行 nwserver-linux。我无法确认专用服务器的官方 SteamCMD 应用:请使用 Beamdog 在论坛公布的服务器包。Docker 方面,beamdog/nwserver 镜像被标注为过时,社区替代品是 urothis/nwserver。
sudo adduser --disabled-password --gecos "" nwn
sudo -iu nwn
# copiez les fichiers serveur Linux dans ~/nwserver / copy the Linux server files to ~/nwserver
cd ~/nwserver
chmod +x nwserver-linux
./nwserver-linux -module MyModule -servername "My NWN server" -port 5121 -maxclients 32 -dmpassword ChangeMe! -publicserver 1 -quiet需要开放的端口
端口通过 -port 设置。Beamdog 论坛说明托管需转发 UDP 5121。家用路由器请把该端口转发(NAT)到内网 IP;在 OVH、Hetzner、Scaleway 还需在防火墙/安全组开放。请从外部网络测试。
- 5121/UDP — 游戏(常用值;可用 -port 修改)。
Linux 防火墙(ufw)
sudo ufw allow OpenSSH
sudo ufw allow 5121/udp
sudo ufw enable
sudo ufw statusWindows 防火墙(netsh)
netsh advfirewall firewall add rule name="NWN UDP 5121" dir=in action=allow protocol=UDP localport=5121systemd 服务(Linux)
加上 -quiet 后 nwserver 在后台无控制台运行,适合 systemd。文件 /etc/systemd/system/nwn.service:
[Unit]
Description=Neverwinter Nights server
After=network-online.target
Wants=network-online.target
[Service]
User=nwn
WorkingDirectory=/home/nwn/nwserver
ExecStart=/home/nwn/nwserver/nwserver-linux -module MyModule -servername "My NWN server" -port 5121 -maxclients 32 -dmpassword ChangeMe! -publicserver 1 -quiet
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetWindows 自动启动
把命令保存到 C:\nwn\start.cmd(先 cd 到 bin 文件夹,再运行 nwserver.exe ...),然后创建计划任务:
schtasks /create /tn "NWN Server" /tr "C:\nwn\start.cmd" /sc onstart /ru SYSTEM更新、备份与重启
服务器需与游戏同步更新(服务端与客户端版本须一致);使用 NWNX:EE 时,导入新版本的 NWScript.zip 并重新编译模块。请备份模块、hak/tlk,以及 -servervault 1 时的 servervault 文件夹。-reloadwhenempty 1 会在服务器无人时重载模块;也可用 cron 重启服务。
# Sauvegarde / backup (cron : 0 4 * * *)
tar czf ~/nwn-backup-$(date +%F).tar.gz -C ~ nwserver
# Redémarrage planifié / scheduled restart (cron root : 0 5 * * *)
systemctl restart nwn收录你的服务器
使用 -publicserver 1 后,服务器会出现在游戏的多人列表和社区服务器浏览器 NWMaster(nwmaster.beamdog.net)中,后者显示模块、玩家数和地址。也请在 game-rank.com/jeux/neverwinter-nights 添加。
故障排查
- 模块无法加载:-module 名称有误(不带 .mod 扩展名)或 modules 文件夹中缺少该文件。
- 列表中没有服务器:添加 -publicserver 1 并开放 UDP 5121(NAT/防火墙)。
- 因版本不一致被拒:让服务端与客户端版本保持一致。
- Linux 上出现“Permission denied”:为 nwserver-linux 添加执行权限(chmod +x),并以文件所有者身份运行。
- 更新 NWNX:EE 后出错:重新导入 NWScript.zip 并重新编译;可设 NWNX_CORE_LOG_LEVEL=7 获取更多细节。
常见问题
- 有服务器配置文件吗?
- 常用设置通过命令行选项完成。游戏端也有 nwnplayer.ini(论坛提到可用于名称、DM 密码等设置),但其键名没有官方文档:本工具只使用命令行。
- 应使用哪个端口?
- UDP 5121,Beamdog 论坛中常用的值。必要时用 -port 修改,并开放相同端口。
- 可以使用 Docker 吗?
- 可以,尤其配合 NWNX:EE(nwnxee/unified 镜像)。旧的 beamdog/nwserver 镜像被标注为过时,社区替代品是 urothis/nwserver。
- 托管需要拥有游戏吗?
- 论坛称运行服务器无需 CD 密钥,但玩家连接时需要有效副本。服务器包的最新条款请向 Beamdog 确认。
