19-11-06更新:放弃 OpenClash 了,因为总会出现这样那样的网络问题。

即使有添加DNS白名单的方法,但一个个添加域名实在耗费精力,而且不知道什么时候就抽风出 DNS 问题——同一个域名有时候可以正常解析,有时无法解析,导致使用体验很差。

有时还会出现网络断连问题,不知道原因。路由器掌管家庭所有设备的网络,还是选择比较成熟稳定的方案为好。

参考

问题描述

在使用 OpenClash 并切换到 Fake-IP 模式后,暴雪游戏《风暴英雄》在登录账号时会提示无法连接服务器,切换到 Redir-Host (兼容)模式后恢复正常。其他暴雪游戏(《守望先锋》)并没有出现无法连接服务器的情况。

排查

  • 首先用 Fiddler 抓了下包,发现风暴英雄在连接类似 xxx.xxx.battlenet.com.cn 的 URL 时出现503错误。
  • 然后查看了 Clash Dashboard 的连接记录,发现 xxx.xxx.battlenet.com.cn 都被正确的划分到了直连组中,排除规则错误的可能。
  • 尝试将模式切换为 Redir-Host,发现能够正常登录。
  • 之后查看了 OpenClash 官方 Wiki,发现 Fake-IP 模式和 Redir-Host 模式的差别在于 DNS 的请求方式,Fake-IP 为了加快响应速度,会预先返回一个保留地址,可能是无法正常登录的原因——风暴英雄拿到立即返回的保留地址后就直接进行连接,导致 xxx.xxx.battlenet.com.cn 的请求 503 错误,无法正常登录。

解决方法

OpenClash 也有现成的解决方案,在 【DNS 设置】中打开 【高级设置】,在 Fake-IP 域名黑名单中填入暴雪的登录用域名 battlenet.com.cn 即可

LinuxGSM可以快速的在Linux服务器上搭建指定游戏的服务器,如:Terraria、l4d、Half-Life、Serious Sam 3等

本来是想建一个Serious Sam 3服务器玩玩的,但是会报错:

[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.

搜寻解决方法后无果,最后在Github issue中搜到了 Review dependencies for some servers 和 Serious Sam 3 Server is currently broken——Serious Sam 3的服务器现在暂时无法搭建,需要SS3的开发者来修补部分问题(毕竟是发行了有一段时间的游戏了)。

环境

  • Ubuntu 16.04

参考&项目地址

步骤

以搭建求生之路2的服务器为例。

  1. 打开LinuxGSM中求生之路2的页面,按照步骤安装游戏服务器,首先安装依赖
    sudo dpkg --add-architecture i386
    sudo apt update
    sudo apt install mailutils postfix curl wget file bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux lib32gcc1 libstdc++6 libstdc++6:i386
  2. 为求生之路2服务器添加新用户,并切换至新用户
    adduser l4d2server
    su - l4d2server
  3. 下载脚本 linuxgsm.sh
    wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh l4d2server
  4. 安装游戏服务器
    ./l4d2server install
  5. 运行服务器
    ./l4d2server start
    # 停止
    ./l4d2server stop
    # c重启
    ./l4d2server restart

    如果启动服务器失败,可以使用指令

    ./l4d2server debug

    查看具体的出错信息,寻找解决方法

  6. 此外,还可以通过修改配置文件来对游戏服务器进行进一步的个性化——控制玩家人数、游戏地图,设置Telegram提醒、邮件提醒等等。

进入服务器进行游戏

Continue reading “LinuxGSM自建游戏服务器(l4d2)”