Hosting a Palworld Game Server with OPNsense and Proxmox

Chris Lansing avatar
Chris Lansing
Cover for Hosting a Palworld Game Server with OPNsense and Proxmox

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

  1. Navigate to “Interfaces > Other Types > VLAN”
  2. Click on the “Add” button.
Device: vlan0.201
Parent: ixl0 [LAN] # the port that will carry your traffic
VLAN tag: 201
VLAN priority: 0
Description: GameServers

Interface Assignment

This logical interface is used to tag traffic with the VLAN ID and manage the VLAN traffic.

  1. Navigate to “Interfaces > Assignments”
  2. Select the new interface we just created (vlan0.201 GameServers (Parent: ixl0, Tag: 201))
  3. Click ”+”

Enable VLAN Interface

  1. Navigate to “Interfaces > [GameServers]”
  2. Update settings
Enable: true
Lock: true
Block bogon networks: true
IPv4 Configuration Type: Static IPv4
IPv4 Address: 10.14.201.1/24

Configure DHCP

  1. Navigate to “Services > DHCPv4 > [GameServers]”
  2. Update Settings
Enable: true
Range:
From: 10.14.201.10
To: 10.14.201.100

Configure Firewall Rules

  1. Navigate to “Firewall > Rules > GameServers”
  2. Click ”+” to add a rule
  3. Add a rule to allow our VM to communicate out (updates, pinging, etc)
Direction: in
Source: GameServers net

Configure Port Forward

“Firewall > Aliases”

Click ”+” to add an alias for our game server host

Name: GameServers
Type: Host(s)
Content: the IP address of your game servers

“Firewall > Settings > Advanced”

# to access server from the same network
Reflection for port forwards: true
Automatic outbound NAT for Reflection: true

“Firewall > NAT > Port Forward”

Add the following port forwards

TCP local port 27015 (default): SRCDS Rcon port

Interface: WAN
TCP/IP Version: IPv4
Protocol: TCP
Source: any
Source port range: any to any
Destination: WAN address
Destination port range: (other) 27015 to (other) 27015
Redirect target IP: Alias GameServers
Description: Steam SRCDS Rcon port

UDP local port 27015 (default): Steam gameplay traffic

Interface: WAN
TCP/IP Version: IPv4
Protocol: UDP
Source: any
Source port range: any to any
Destination: WAN address
Destination port range: (other) 27015 to (other) 27015
Redirect target IP: Alias GameServers
Description: Steam gameplay traffic

UDP local port 8211: Palworld game server

Interface: WAN
TCP/IP Version: IPv4
Protocol: UDP
Source: any
Source port range: any to any
Destination: WAN address
Destination port range: (other) 8211 to (other) 8211
Redirect target IP: Alias GameServers
Description: Palworld game server

Switch Setup (Cisco)

Skip this section if you don’t use a layer 3 router.

Create the VLAN

  1. Navigate to “VLAN Management > VLAN Settings”
  2. Click “Add…”
VLAN ID: 201
VLAN 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

  1. Navigate to “VLAN Management > Port VLAN Membership”
  2. Select the interface that connects to Proxmox
  3. Click “Join VLAN…”
  4. Append 201 to Tagged VLANs: User Defined (Example: 1,101,200,201)

KVM Setup (Proxmox VE)

Add network interface for new VLAN

  1. Select your node
  2. Navigate to “System > Network”
  3. Select “Create > Linux VLAN”
Name: vmbr0.201
# Vlan raw device should autofill with vmbr0, our Linux Bridge
# VLAN Tag should autofill with 201
Comment: GameServers

Create VM

Click “Create VM”

General:
Node: pve
VM ID: 201
Name: GameServers
OS:
ISO image: debian-12.4.0-amd54-DVD-1.iso
Disks:
Disk size (GiB): 256
CPU:
Sockets: 2
Cores: 12
Memory:
Memory (MiB): 32768
Network:
Bridge: vmbr0
VLAN Tag: 201

Server Setup (Debian)

Install OS

  1. Start the VM in Proxmox
  2. Connect to Console
  3. Complete steps to install Debian. *Create user “steam” during install
  4. Reboot
  5. Remove ISO from VM CD/DVD Drive

Install Game Server

  1. Open VM Console and login to Debian with user “steam”
  2. Choose which server to install at https://linuxgsm.com/servers/
  3. Follow instructions to install that game server