Skip to content

服务器配置 ​

配置项 ​

必需的服务器配置 ​

键默认值描述
PublicIp127.0.0.1服务器的公网 IPv4 地址,提供给其他玩家连接。可以在此网站上找到 IPv4 地址。除非只在本地网络私用,否则应改为公网 IP。也可以使用主机名代替 IPv4 地址,会自动解析。
PublicPort22023服务器的公网端口,提供给其他玩家连接。(这是端口转发时在路由器上配置的外部端口) 通常为 22023。
ListenIp0.0.0.0监听的网络接口。如果不确定填什么,使用 0.0.0.0。自 1.2.2 起也支持主机名,需解析为有效的 IPv4 地址。
ListenPort22023服务器的监听端口,通常为 22023。端口转发时注意:这是一个 UDP 端口。

HttpServer ​

Empostor 包含一个 HTTP 服务器,供新版 Among Us 用于连接。详见 HTTP 服务器页面。

键默认值描述
Enabledtrue是否启用 HTTP 服务器。
ListenIp0.0.0.0监听的网络接口。使用反向代理或仅本地运行时用 127.0.0.1。直接暴露到公网时用 0.0.0.0。
ListenPort22023监听端口。注意端口转发时这是一个 TCP 端口。

AntiCheat(反作弊) ​

Empostor 内置反作弊功能,可自动踢出作弊玩家。注意反作弊针对游戏原版调校,如果使用客户端修改版可能会触发。

键默认值说明
Enabledtrue是否启用反作弊。
BanIpFromGametrue启用反作弊且玩家被抓到作弊时,会被踢出服务器。如果设为 true,玩家将被封禁,无法重新加入该游戏。
AllowCheatingHosts"Never"配置是否允许房主作弊。"Never" 禁止,"Always" 允许。"IfRequested" 允许设置了 DisableServerAuthorityFlag 的房主作弊。
EnableGameFlowCheckstrue检查特定操作是否在合适的顺序或时机进行。包括游戏中更换装饰或过快杀人。
EnableInvalidObjectCheckstrue检查网络对象是否正确生成。禁用此项也会禁用 EnableRoleChecks。
EnableMustBeHostCheckstrue检查玩家是否为房主,才能执行需要房主权限的操作,包括开始游戏和生成对象。
EnableColorLimitCheckstrue检查玩家是否请求已被占用的颜色。
EnableNameLimitCheckstrue检查玩家名称长度是否在界面允许的范围内。
EnableItemLimitCheckstrue检查玩家是否发送了游戏内不可能存在的道具数量。目前用于灵魂向导(Spirit Guide)发送的图片数量,只允许 1–3 张。
EnableOwnershipCheckstrue检查玩家是否有权对自己或他人执行特定操作。
EnableRoleCheckstrue检查玩家在执行特定角色能力(如钻通风管或杀人)时是否拥有正确的角色。
EnableTargetCheckstrue检查本应只发给特定玩家的数据包是否被正确发送。包括投票和网络对象。
ForbidProtocolExtensionstrue禁用则允许玩家发送超出原版游戏的网络数据包。大多数需要全员安装的模组都需要此项。
EnablePacketSizeCheckstrue检查入站网络包是否超过 PacketSizeLimit 设定的大小。
PacketSizeLimit1203单个入站网络包允许的最大字节数。

Compatibility(兼容性) ​

Empostor 提供一些兼容性选项以增加灵活性,但可能无法正常工作。不建议启用。寻求支持时请注明启用了哪些选项。

键默认值说明
AllowFutureGameVersionsfalse警告:设为 true 不受支持,可能在 Among Us 大版本更新时出问题,但在小补丁发布时可能有用。允许未来版本的 Among Us 加入服务器。
AllowHostAuthorityfalse某些 Among Us 模组允许禁用部分服务器权威功能,这也会改变客户端中的一些代码路径。这些路径测试较少且存在 bug,无法从 Empostor 端修复。谨慎使用。
AllowVersionMixingfalse允许使用未经 Empostor 开发者标记为兼容的不同游戏版本玩家在同一房间游戏。

Debug(调试) ​

调试配置用于启用游戏录制器,主要用于开发 Empostor。

键默认值说明
GameRecorderEnabledfalse启用游戏录制器。
GameRecorderPath空录制的游戏保存路径。

Admin(管理员) ​

Admin 配置用于设置管理员密码和插件市场 URL。

键默认值描述
Password(空 — 必须设置)服务器的管理员密码,用于认证。请设置一个强密码。如果留空或使用已知默认值,服务器启动时会记录警告。
MarketplaceUrlhttps://raw.githubusercontent.com/Empostor/Empostor/main/marketplace/plugins.json指向 plugins.json 文件的 URL。该文件定义了插件市场中可用的插件列表。

DiscordWebhook ​

通过 Webhook 将游戏事件发送到 Discord 频道。事件分为两个类别:对局(游戏生命周期)和管理(审核)。详见 Discord 通知。

支持热修改:通过管理面板更改的设置会保存到 Data/DiscordWebhookData.json。以下 config.json 值仅在首次启动时作为初始默认值。

键默认值描述
MatchmakerUrl""对局事件的 Discord Webhook URL(游戏创建、游戏开始、游戏结束、玩家加入)。留空禁用。
AdminUrl""管理事件的 Discord Webhook URL(玩家踢出、玩家举报)。留空禁用。

HPLP(公共大厅列表) ​

HPLP 的设置不在 config.json 中 —— 请在管理面板的 HPLP 页面配置,保存后写入 Data/HplpData.json。详见 HPLP。

PlayerStats / ChatFilter ​

这两项属于插件设置,不在 config.json 中。玩家统计与聊天过滤插件各自读取服务器可执行文件旁自己的配置文件:

  • [Empostor.Plugins.PlayerStats]Config.json
  • [Empostor.Plugins.ChatFilter]Config.json

字段说明见各自插件页面。通过管理面板修改的聊天过滤设置为运行时生效,不会写回文件。

Serilog(日志) ​

Empostor 的日志框架 Serilog 可在配置文件中配置。可以更改默认日志级别并添加额外的输出器。

键默认值说明
MinimumLevelInformation消息打印的最低日志级别。从最严重到最轻微:Fatal、Error、Warning、Information、Debug、Verbose
Using[]要加载的额外 Serilog Sinks 程序集列表。
WriteTo[]额外的日志输出器。参见 Serilog 文档。

例如,要添加文件日志,添加以下片段到配置中:

json
"Serilog": {
  "Using": ["Serilog.Sinks.File"],
  "WriteTo": [{
    "Name": "File",
    "Args": {
      "path": "logs/log.txt",
      "rollingInterval": "Day"
    }
  }]
}

还需要从 NuGet 复制 Serilog.Sinks.File.dll。

更多信息参见 Serilog.Settings.Configuration 文档。

配置提供者 ​

文件 ​

config.json 文件包含所有可配置选项。

环境变量 ​

如果无法编辑 config.json,可以通过环境变量配置 Empostor。变量格式为 EMPOSTOR_配置段__变量名。例如,禁用反作弊:EMPOSTOR_AntiCheat__Enabled=false。更多示例:

EMPOSTOR_Server__PublicIp=127.0.0.1
EMPOSTOR_Server__PublicPort=22023
EMPOSTOR_Server__ListenIp=0.0.0.0
EMPOSTOR_Server__ListenPort=22023
EMPOSTOR_AntiCheat__Enabled=true
EMPOSTOR_AntiCheat__BanIpFromGame=true

systemd ​

Linux 用户建议创建 systemd 服务定义来管理 Empostor。好处包括:

  • 进程崩溃后自动重启
  • 可设置开机自启
  • 可用 systemd targets 确保依赖就绪后再启动

使用文本编辑器创建服务文件:

sudoedit /etc/systemd/system/empostor.service

根据模板修改:

[Unit]
Description=Empostor Among Us 私服 - https://github.com/Empostor/Empostor

[Service]
WorkingDirectory=/opt/Empostor
ExecStart=/opt/Empostor/EMPOSTOR.Server
Restart=always
RestartSec=10
KillSignal=SIGTERM
SyslogIdentifier=empostor
User=empostor
Group=empostor
TimeoutStopSec=10

[Install]
After=multi-user.target
WantedBy=multi-user.target

重载所有 systemd 单元文件:

sudo systemctl daemon-reload

启动服务:

sudo systemctl start empostor.service

查看日志:

sudo journalctl -u empostor.service

设置开机自启:

sudo systemctl enable empostor.service