Skip to content

Running multiple servers with Host networking suddenly no longer working. #593

@Smokex365

Description

@Smokex365

Have been running multiple server containers for awhile without issue with the host networking. Just in the last week or so it's only the first container will boot and then the rest fail with Error CommandLineMultiplayer.cpp:355: Hosting multiplayer game failed: Can't bind socket: Address already in use. I've made no changes to the vm's networking and no change to the compose prior to the issue appearing. The full closure error I'm getting is:

 10.481 Info UDPSocket.cpp:37: Opening socket at (IP ADDR:({0.0.0.0:34202}))
  10.481 Hosting game at IP ADDR:({0.0.0.0:34202})
  10.482 Info HttpSharedState.cpp:57: Downloading https://auth.factorio.com/generate-server-padlock-2?api_version=6
  10.558 Info AuthServerConnector.cpp:112: Obtained serverPadlock for serverHash (<hash>) from the auth server.
  10.558 Info ServerMultiplayerManager.cpp:808: updateTick(3640224) changing state from(CreatingGame) to(InGame)
  10.558 Info UDPSocket.cpp:49: Opening socket for broadcast
  10.558 Error InterruptibleStdioStream.cpp:55: Got EOF on stdin; closing
  10.558 Error CommandLineMultiplayer.cpp:355: Hosting multiplayer game failed: Can't bind socket: Address already in use
  10.558 Info GlobalContext.cpp:769: Deleting active scenario.
  10.649 Info ServerMultiplayerManager.cpp:119: Disconnecting multiplayer connection.
  10.649 Info ServerMultiplayerManager.cpp:808: updateTick(18446744073709551615) changing state from(InGame) to(DisconnectingScheduled)
  10.706 Info ServerMultiplayerManager.cpp:146: Quitting multiplayer connection.
  10.706 Info ServerMultiplayerManager.cpp:808: updateTick(18446744073709551615) changing state from(DisconnectingScheduled) to(Closed)
  10.706 Info ServerMultiplayerManager.cpp:166: Deleting active scenario (global = true).
  10.707 Info UDPSocket.cpp:237: Closing socket
  10.707 Info UDPSocket.cpp:267: Socket closed
  10.707 Info UDPSocket.cpp:237: Closing socket
  10.860 Info UDPSocket.cpp:237: Closing socket
  10.860 Info UDPSocket.cpp:267: Socket closed
  10.861 Goodbye

Changing the networking to bridge works fine and they all launch though don't show in the local server browser of course. My current compose is:

# https://github.com/factoriotools/factorio-docker
services:
  factorio-01:
    image: factoriotools/factorio:latest
    pull_policy: always
    container_name: factorio-01
    ports:
      - "34201:34201/udp"
      - "27015:27015/tcp"
    volumes:
      - /docker/config/factorio-01:/factorio
    environment:
      - PUID=1000
      - PGID=1000
      - DLC_SPACE_AGE=false
      - UPDATE_MODS_ON_START=true
      - PORT=34201
      #- BIND=192.168.0.32
      - RCON_PORT=27015
      - SAVE_NAME=factorio-01
      - USERNAME=user
      - TOKEN=token
    network_mode: host
    labels:
      com.centurylinklabs.watchtower.enable: true
      io.portainer.accesscontrol.users: admin
    restart: unless-stopped
  factorio-02:
    image: factoriotools/factorio:latest
    pull_policy: always
    container_name: factorio-02
    ports:
      - "34202:34202/udp"
      - "27016:27016/tcp"
    volumes:
      - /docker/config/factorio-02:/factorio
    environment:
      - PUID=1000
      - PGID=1000
      - DLC_SPACE_AGE=false
      - UPDATE_MODS_ON_START=true
      - PORT=34202
      #- BIND=192.168.0.32
      - RCON_PORT=27016
      - SAVE_NAME=factorio-02
      - USERNAME=user
      - TOKEN=token
    network_mode: host
    labels:
      com.centurylinklabs.watchtower.enable: true
      io.portainer.accesscontrol.users: admin
    restart: unless-stopped
  factorio-03:
    image: factoriotools/factorio:latest
    pull_policy: always
    container_name: factorio-03
    ports:
      - "34203:34203/udp"
      - "27017:27017/tcp"
    volumes:
      - /docker/config/factorio-03:/factorio
    environment:
      - PUID=1000
      - PGID=1000
      - DLC_SPACE_AGE=false
      - UPDATE_MODS_ON_START=true
      - PORT=34203
      #- BIND=192.168.0.32
      - RCON_PORT=27017
      - SAVE_NAME=factorio-03
      - USERNAME=user
      - TOKEN=token
    network_mode: host
    labels:
      com.centurylinklabs.watchtower.enable: true
      io.portainer.accesscontrol.users: admin
    restart: unless-stopped

I've run out of things to try (binding the interface, changing ports, etc.) and can't figure out why it's suddenly failing after being fine for months.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions