# 在linux下运行黑魂3私服
# 前情提要
lz手上只有一台1核心2G内存的小服务器,安装Windows显然过于勉强。在Linux支持前尝试过使用frp转发服务器端口的流量,但内网穿透有很多更好的解决方案。
魂3私服本身对性能要求不高,甚至带宽也不需要很大(玩家之间P2P连接,也是糟糕联机体验的罪魁祸首)。不安装Windows系统甚至Linux图形界面的情况下,就能以"轻量应用"、"学生"服务器这一类作为选购目标了,大多价格能到9元每月。
并且使用云服务器启动服务器,不需要考虑内网穿透,加入服务器的玩家不需要做其他前置操作,在loader选择好加入即可。
本文仅涉及开设服务器,加入服务器的方法并没有变化,可以查看魂3吧置顶帖。
# 粗略的测试
魂3服务器在启动后空载的情况下内存占用在50MB上下,CPU负载1.3%。不确定在多人游玩的情况下负载的变化。目前运行32小时(期间有两位玩家登录游玩)后无异常。 lz演示服务器规格为腾讯云轻量应用服务器,通用型套餐。1核心,2G内存,6M带宽。
# 开始之前
私服对某些库版本要求比较高,楼主在centos8中的尝试,最高分别是libstdc++.so.6.0.26与GLIBC_2.28,如果你为开服而选购服务器并且不知道怎么折腾升级gcc、glibc以及相应的库,尽量选择较新的系统。lz改用Ubuntu 20.04 LTS。
# 连接到服务器
楼主使用mobaxterm演示,官网链接:https://mobaxterm.mobatek.net/download-home-edition.html (opens new window)
Portable edition蓝色是解压即用,Installer edition(绿色)是安装到系统,看个人需求。
# 新建对话
安装完成后,打开软件,点击左上角的session,准备新建连接。
选择SSH,一般准备好的服务器镜像会自带sshd,如果你的连接失败,可能要从网页管理面板操作安装跟启动sshd。
填写你的服务器信息,Specific username表示该连接将一直使用某个用户名,不勾选在这一步是无法输入用户名的。勾选的话,以后双击连接就自动登录,不询问使用哪个账号登录。填写完成后选择下方的OK
初次账户连接会询问是否保存密码,看个人需求。
初次连接服务器可能会出现known_hosts询问,输入yes(从终端连接,仅为了演示)。
完成后软件会自动进行连接,并且左侧工具栏切换到文件浏览,默认到你账户的根目录。右边就是我们输入命令与服务器交互的地方了。
# 获取steam客户端共享库
# 新建用户
如果你现在使用的是root账户,最好搜索怎么添加新账户,这里用adduser简单演示一下。 sudo开头的命令一般都会让你输入密码,而且密码是不会显示的,所以输完按回车就好。同样,创建用户时询问输入密码也是不回显的。
# 创建用户
sudo adduser {新的用户名}
# 把新建的用户添加到sudo组
sudo usermod -aG sudo {新的用户名}
2
3
4
5
新建用户后不要通过只su切换账户,回到新建对话重新登录。不然在拖拽上传文件的时候会有权限问题(终端与文件浏览器账号不一致)。
# 安装steamcmd
官方指引:https://developer.valvesoftware.com/wiki/SteamCMD:zh-cn#Linux (opens new window),
我们使用Ubuntu的安装方式,由于楼主已经安装完成,就不演示了。
# 链接steamclient.so
~表示你的账户的根目录,所以在什么路径下运行不是很讲究
# 创建文件夹
mkdir -vp ~/.steam/sdk64
# 创建文件链接
ln -s steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so
2
3
4
5
# 调整服务器防火墙
以默认的配置文件来说,你需要让50000,50005,50010,50020,50050 这5个端口开放,不确定TCP与UDP协议有没有要求。图中UDP少一个是因为50005是网页控制界面的端口。
具体的添加方式,最好自行搜索对应品牌的服务器界面操作。
# 游戏服务器
# 下载与上传游戏服务器
以Release v0.20.0.0-main
的Linux文件为例。配置服务器访问github,或者你可以下载到自己电脑解压出linux文件夹,然后将文件夹拖到服务器的文件浏览器界面。如果拖拽出现错误提示,尝试第二步的步骤登录你新建的账户。
https://github.com/TLeonardUK/ds3os/releases/download/v0.20.0.0-main/linux.zip (opens new window)
假设上传到账户根目录。
# 复制libsteam_api.so
# 复制libsteam_api.so到 /lib/下
sudo cp ~/linux/Server/libsteam_api.so /lib/
# 设置Server为可执行文件:
chmod +x ~/linux/Server/Server
2
3
4
5
# 试着启动服务器
是时候启动服务器看看了
#服务器文件夹
cd ~/linux/Server/
#运行服务器
./Server
2
3
4
5
看到Server is now running.
就启动完成了
第一次启动耗时会比较长。同时按CTRL 与 C 键退出服务器。
服务器启动后,生成的服务器配置文件在 linux/Server/Saved/
下。
服务器启动后,你可以在浏览器输入 你的服务器地址:50005
(注意是英文冒号)登录管理面板,默认的账户密码都是空的,在linux/Server/Saved/config.json
设置。
# 使用screen运行服务器
关掉黑窗口并不会把你的任务自动放到后台运行,而是一并关掉。使用screen达到后台持续运行任务的目的。楼主的Ubuntu自带了screen,如果提示错误搜索一下怎么安装。 在命令窗口输入screen ,回车,窗口会被刷新,从此你在这个窗口的命令并不会因为你关掉窗口而停止,然后在此窗口运行服务器。
#安装screen
sudo apt-get install screen
#列出所有screen
screen -ls
# 连接到具体screen
screen -r {编号,比如下图的171311}
2
3
4
5
6
7
8
具体使用自行查找。