feat: bind_ip setting for the server sockets

bind_ip in sharedconfig.ini picks the local IPv4 address every server's
RakNet sockets listen on (auth, chat, master, world, the dashboard's
connection to master), separate from external_ip, the address players
are sent. Empty or 0.0.0.0 keeps listening on all interfaces; localhost
means 127.0.0.1. Anything that isn't an IPv4 address stops the server
with an error, and each server logs what it bound to.

Fixes #225

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-26 19:11:41 -05:00
parent 49fc6e06e6
commit e36f894f1f
10 changed files with 79 additions and 3 deletions

View File

@@ -13,6 +13,14 @@ log_debug_statements=0
# The public facing IP address. Can be 'localhost' for locally hosted servers
external_ip=localhost
# The local IPv4 address every server (auth, chat, master, world and the dashboard's
# connection to master) listens on, for machines with more than one network interface.
# Empty (the default) or 0.0.0.0 listens on all interfaces; localhost means 127.0.0.1.
# This only changes where the servers listen: players are still sent external_ip, so
# use it when the public address isn't one this machine can bind to (NAT, a proxy).
# The servers refuse to start if this isn't an IPv4 address.
bind_ip=
# 0 or 1, should not compile chat hash map to file
dont_generate_dcf=0