
A client reached out for dedicated game server hosting. While this isn’t a service I typically offer, the massive overnight success of Palworld left a loyal client unable to find a provider with available capacity. I have that infrastructure available in my 10gig-capable lab, so why not?
Network Architecture
WAN -> OPNsense -> Cisco Switch -> Proxmox VE -> Debian 12
VLAN Setup (OPNsense)
We’ll first create the VLAN to segregate the network traffic going to our game server so that we can apply custom firewall rules later.
Create new VLAN
- Navigate to “Interfaces > Other Types > VLAN”
- Click on the “Add” button.
Device: vlan0.201Parent: ixl0 [LAN] # the port that will carry your trafficVLAN tag: 201VLAN priority: 0Description: GameServers
Interface Assignment
This logical interface is used to tag traffic with the VLAN ID and manage the VLAN traffic.
- Navigate to “Interfaces > Assignments”
- Select the new interface we just created (vlan0.201 GameServers (Parent: ixl0, Tag: 201))
- Click ”+”
Enable VLAN Interface
- Navigate to “Interfaces > [GameServers]”
- Update settings
Enable: trueLock: trueBlock bogon networks: trueIPv4 Configuration Type: Static IPv4IPv4 Address: 10.14.201.1/24
Configure DHCP
- Navigate to “Services > DHCPv4 > [GameServers]”
- Update Settings
Enable: trueRange: From: 10.14.201.10 To: 10.14.201.100
Configure Firewall Rules
- Navigate to “Firewall > Rules > GameServers”
- Click ”+” to add a rule
- Add a rule to allow our VM to communicate out (updates, pinging, etc)
Direction: inSource: GameServers net
Configure Port Forward
“Firewall > Aliases”
Click ”+” to add an alias for our game server host
Name: GameServersType: Host(s)Content: the IP address of your game servers
“Firewall > Settings > Advanced”
# to access server from the same networkReflection for port forwards: trueAutomatic outbound NAT for Reflection: true
“Firewall > NAT > Port Forward”
Add the following port forwards
TCP local port 27015 (default): SRCDS Rcon port
Interface: WANTCP/IP Version: IPv4Protocol: TCPSource: anySource port range: any to anyDestination: WAN addressDestination port range: (other) 27015 to (other) 27015Redirect target IP: Alias GameServersDescription: Steam SRCDS Rcon port
UDP local port 27015 (default): Steam gameplay traffic
Interface: WANTCP/IP Version: IPv4Protocol: UDPSource: anySource port range: any to anyDestination: WAN addressDestination port range: (other) 27015 to (other) 27015Redirect target IP: Alias GameServersDescription: Steam gameplay traffic
UDP local port 8211: Palworld game server
Interface: WANTCP/IP Version: IPv4Protocol: UDPSource: anySource port range: any to anyDestination: WAN addressDestination port range: (other) 8211 to (other) 8211Redirect target IP: Alias GameServersDescription: Palworld game server
Switch Setup (Cisco)
Skip this section if you don’t use a layer 3 router.
Create the VLAN
- Navigate to “VLAN Management > VLAN Settings”
- Click “Add…”
VLAN ID: 201VLAN Name: GameServers
Note: The interface carrying this traffic should already be setup to connect to Proxmox, and is an untagged Trunk port.
Add VLAN tag to trunk port
- Navigate to “VLAN Management > Port VLAN Membership”
- Select the interface that connects to Proxmox
- Click “Join VLAN…”
- Append 201 to Tagged VLANs: User Defined (Example: 1,101,200,201)
KVM Setup (Proxmox VE)
Add network interface for new VLAN
- Select your node
- Navigate to “System > Network”
- Select “Create > Linux VLAN”
Name: vmbr0.201# Vlan raw device should autofill with vmbr0, our Linux Bridge# VLAN Tag should autofill with 201Comment: GameServers
Create VM
Click “Create VM”
General: Node: pve VM ID: 201 Name: GameServersOS: ISO image: debian-12.4.0-amd54-DVD-1.isoDisks: Disk size (GiB): 256CPU: Sockets: 2 Cores: 12Memory: Memory (MiB): 32768Network: Bridge: vmbr0 VLAN Tag: 201
Server Setup (Debian)
Install OS
- Start the VM in Proxmox
- Connect to Console
- Complete steps to install Debian. *Create user “steam” during install
- Reboot
- Remove ISO from VM CD/DVD Drive
Install Game Server
- Open VM Console and login to Debian with user “steam”
- Choose which server to install at https://linuxgsm.com/servers/
- Follow instructions to install that game server