In this guide, I will show you how to set up your Vein Dedicated server.

Installing your first Vein dedicated server might seem daunting if you’ve never worked with game server software before, but the process follows a straightforward sequence that anyone can complete successfully. This guide walks you through every single step, from installing the necessary tools to seeing your server appear online for the first time. By following these instructions carefully, you’ll have a functioning Vein server ready for players within thirty minutes to an hour, depending on your internet connection speed and familiarity with command-line tools.
The beauty of Vein’s dedicated server system is that it uses Valve’s well-established SteamCMD infrastructure, which millions of game servers around the world rely on for installation and updates. This means you’re working with proven, reliable technology rather than experimental or poorly-documented systems. Once you understand the installation process for Vein, you’ll also understand how to install dedicated servers for hundreds of other Steam games that use the same distribution method.
This tutorial assumes no prior server administration experience. If you’ve never opened a terminal window or command prompt, don’t worry. We’ll explain each command and what it does, so you understand not just what to type, but why you’re typing it. This knowledge helps you troubleshoot issues independently and gives you confidence to explore more advanced server management later.
Understanding What You’re Building
Before diving into installation commands, it helps to understand what a dedicated server actually is and how it differs from simply hosting a game from your client. When you play Vein normally and invite friends to join, your game client is doing double duty. It’s rendering graphics and handling your gameplay while simultaneously acting as a server that coordinates game state for connected players. This works fine for small groups, but it has limitations.
A dedicated server is a specialized version of the game that runs without any graphics or player input. It exists purely to manage the game world, synchronize player actions, handle AI behaviors, and maintain authoritative game state. Because it doesn’t render graphics or handle local player input, it can dedicate all its computational resources to managing more players and maintaining better performance. Dedicated servers also stay online even when you’re not playing, allowing your community to connect whenever they want rather than only when you’re available.
The Vein dedicated server comes as a separate application that you’ll download through SteamCMD. It’s significantly smaller than the full game because it excludes all the graphics assets, sounds, and user interface elements that players need but servers don’t. This smaller footprint means faster downloads and lower storage requirements for your server machine.
System Requirements and Prerequisites
Before beginning installation, verify that your server machine meets the minimum requirements for hosting a Vein server. While Vein isn’t exceptionally demanding compared to some modern games, running a smooth server experience requires adequate resources, especially as player counts increase.
At minimum, your server needs a processor with at least two cores running at 2.5 GHz or higher. Modern processors from the past five years easily meet this requirement. Memory requirements start at 4 GB of RAM for small servers hosting fewer than ten simultaneous players. Plan for 6-8 GB if you expect to regularly host the maximum sixteen players. Storage requirements are modest, with the server installation consuming approximately 8-10 GB of disk space. An additional 2-3 GB provides comfortable room for player data, logs, and future updates.
Network connectivity matters enormously for server hosting. Your upload bandwidth determines how many players you can support simultaneously. Each connected player consumes roughly 50-100 KB per second of upload bandwidth during active gameplay, though this fluctuates based on what’s happening in the game world. For sixteen players, budget at least 2-3 Mbps of sustained upload bandwidth. Many residential internet connections have asymmetric speeds with much lower upload than download capacity, so verify your upload speed specifically rather than assuming your connection is adequate based on download speeds.
Your server needs two UDP ports accessible from the internet. Port 27015 handles Steam’s query protocol, and port 7777 carries gameplay traffic. If you’re hosting from home behind a router, you’ll need to configure port forwarding rules. If you’re using a VPS or dedicated server from a hosting provider, these ports are typically available by default, though you may need to configure firewall rules. We’ll cover port configuration in detail later, but verify that you have the ability to open these ports before proceeding with installation.
Operating system compatibility spans both Windows and Linux platforms. Windows Server 2019 or Windows 10 and newer work perfectly, as do most modern Linux distributions including Ubuntu 20.04 and later, Debian 10 and later, and CentOS 7 and later. The installation process differs slightly between platforms, and we’ll provide platform-specific instructions for each step.
Finally, you need administrative access to your server machine. On Linux, this means sudo privileges or root access. On Windows, you need an administrator account. Without elevated permissions, you cannot install necessary dependencies or configure system-level networking settings.
Installing SteamCMD
SteamCMD serves as your gateway to downloading and managing Valve game servers. This command-line tool connects to Steam’s content delivery network and downloads server files for any Steam game that offers dedicated server support. Understanding SteamCMD’s role helps you maintain and update your server long after the initial installation.
Linux Installation Process
Linux systems require enabling multiverse repositories and installing 32-bit architecture support before SteamCMD installation. Even though your Linux system is almost certainly 64-bit, some Steam components still rely on 32-bit libraries for historical compatibility reasons. Valve maintains these dependencies for the vast ecosystem of existing game servers, and we need to accommodate them.
Open your terminal application. On Ubuntu and similar distributions, you can press Control plus Alt plus T to open a terminal quickly. Once your terminal is open, execute the following commands in sequence. The first command adds Ubuntu’s multiverse repository, which contains software that doesn’t meet Ubuntu’s completely free licensing requirements but is still officially supported. SteamCMD falls into this category because it connects to Valve’s proprietary infrastructure.
sudo add-apt-repository multiverse
The system will prompt for your password when you run sudo commands. This security measure ensures that only authorized users can make system-level changes. Type your password and press Enter. Note that Linux terminals don’t display password characters as you type them, not even asterisks. This is intentional security behavior, so type your password carefully and press Enter even though you see no visual feedback.
Next, enable 32-bit architecture support with this command:
sudo dpkg --add-architecture i386
The dpkg tool manages Debian package architecture settings. The i386 designation refers to 32-bit Intel architecture, which is what those legacy Steam libraries require. After adding this architecture support, update your package lists so your system knows about packages available for this newly-enabled architecture:
sudo apt update
The update process queries all configured software repositories and builds a local database of available packages and their current versions. You’ll see progress bars and package counts as this process runs. It typically completes within 30 seconds to a minute depending on your internet connection and how long it’s been since your last update.
Now you’re ready to install SteamCMD itself:
sudo apt install steamcmd
Your package manager will display information about steamcmd and any additional dependencies it needs to install. When prompted to confirm the installation, type Y and press Enter. The installation downloads and configures SteamCMD along with required libraries. On a fast internet connection, this typically takes just a few minutes.
After installation completes, verify that steamcmd is accessible by running:
steamcmd
If SteamCMD installed correctly, you’ll see copyright information and a Steam prompt. Type quit and press Enter to exit SteamCMD. This verification step confirms that your system found the steamcmd executable and that it runs without immediate errors. If you see error messages instead, they typically relate to missing 32-bit libraries, and you may need to install additional packages that steamcmd’s dependencies didn’t automatically pull in.
Windows Installation Process
Windows SteamCMD installation follows a simpler process since Windows doesn’t have the same architectural complications as Linux. You’ll download a compressed archive, extract it to a location of your choosing, and run the executable. The simplicity of Windows installation is one advantage of hosting on Windows, though Linux’s superior networking stack and resource efficiency make it the preferred platform for dedicated hosting at scale.
Start by creating a dedicated directory for SteamCMD. Using a folder like C:\steamcmd keeps your installation organized and makes it easy to find when you need to run update commands later. Open File Explorer, navigate to your C drive, and create a new folder named steamcmd. You can do this through the graphical interface or by opening Command Prompt as Administrator and running:
mkdir C:\steamcmd
Download the SteamCMD archive from Valve’s official CDN by visiting this URL in your web browser:
https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
Your browser will download a file named steamcmd.zip that’s approximately 2 megabytes in size. The small download size reflects that SteamCMD is just a bootstrap application. The first time you run it, it will download additional components it needs to function.
After the download completes, navigate to your Downloads folder, right-click steamcmd.zip, and select Extract All. Choose your C:\steamcmd folder as the extraction destination. Windows will extract the archive’s contents, which includes steamcmd.exe and a few supporting files.
Open Command Prompt as Administrator. You can do this by clicking the Start button, typing “cmd”, right-clicking “Command Prompt” in the results, and selecting “Run as administrator”. Administrator privileges are necessary for SteamCMD to install server files in protected directories later.
Navigate to your SteamCMD directory:
cd C:\steamcmd
Run SteamCMD for the first time:
steamcmd.exe
The first execution triggers SteamCMD to download and install its core components. You’ll see progress indicators as it downloads several hundred megabytes of files. This one-time initialization process takes several minutes depending on your connection speed. When it completes, you’ll see a Steam prompt similar to what Linux users saw. Type quit and press Enter to exit and return to your Command Prompt.
Downloading Vein Server Files
With SteamCMD installed and functioning, you’re ready to download the actual Vein dedicated server files. This process uses SteamCMD’s command-line interface to log into Steam anonymously and download the server application identified by its unique app ID. Every Steam game and dedicated server has a numeric app ID that SteamCMD uses to identify what to download. Vein’s dedicated server is app ID 2131400.
Choose a directory where you want your Vein server files to live. This location is independent from your SteamCMD installation directory. Many administrators create a dedicated folder structure like /home/steam/vein-server on Linux or C:\GameServers\Vein on Windows. Pick a location with adequate free space and one that you’ll remember when you need to manage the server later.
The SteamCMD download command looks intimidating at first glance because it chains multiple operations together with plus signs, but understanding each piece makes it straightforward. Let’s break down the command you’re about to run:
Linux Download Command
steamcmd +force_install_dir /path/to/your/server +login anonymous +app_update 2131400 validate +quit
Replace /path/to/your/server with your chosen installation directory. For example, if you created /home/steam/vein-server, your command would be:
steamcmd +force_install_dir /home/steam/vein-server +login anonymous +app_update 2131400 validate +quit
Windows Download Command
steamcmd.exe +force_install_dir C:\path\to\your\server +login anonymous +app_update 2131400 validate +quit
Again, replace the path with your chosen location:
steamcmd.exe +force_install_dir C:\GameServers\Vein +login anonymous +app_update 2131400 validate +quit
Understanding the Command Components
Let’s examine what each part of this command does so you understand the process rather than blindly copying text.
The +force_install_dir parameter tells SteamCMD where to place the downloaded files. Normally, SteamCMD uses default Steam directories, but for dedicated servers, you typically want them in custom locations for organizational purposes. The force_install_dir directive overrides the default behavior.
The +login anonymous command authenticates you with Steam’s content servers using anonymous credentials. Dedicated server files are freely available to anyone, so you don’t need a Steam account with game ownership to download them. Anonymous login provides sufficient access for downloading and updating dedicated server software.
The +app_update 2131400 instruction tells SteamCMD to download or update app ID 2131400, which is Vein’s dedicated server. If this is your first installation, SteamCMD downloads everything. If you run this command again in the future, it intelligently detects which files have changed and only downloads updates, making the process much faster for routine maintenance.
The validate flag instructs SteamCMD to verify file integrity after downloading. This verification step catches corrupted downloads or incomplete transfers, ensuring that your server files are complete and correct before SteamCMD exits. This validation adds a minute or two to download time but prevents mysterious issues caused by corrupted game files.
Finally, +quit tells SteamCMD to exit automatically after completing all previous operations. Without this flag, SteamCMD would remain open at its command prompt waiting for additional instructions. The quit command makes the entire operation automated and suitable for scripting.
Execute your platform-appropriate command. SteamCMD displays progress information as it downloads server files. The Vein dedicated server is approximately 8-10 GB, so download time varies based on your internet connection. On a 100 Mbps connection, expect the download to take roughly 10-15 minutes. Slower connections will naturally take longer.
Watch for the validation phase after the download completes. SteamCMD verifies each file’s integrity by comparing checksums against known good values. If validation discovers any problems, it automatically re-downloads affected files. When everything succeeds, you’ll see a message indicating that the app is fully installed, and SteamCMD will exit automatically.
Navigate to your installation directory and verify that files appeared. You should see a folder structure with directories named Vein, Engine, and possibly others. The server executable itself is in the Vein directory and is named VeinServer.sh on Linux or VeinServer.exe on Windows.
Installing the Experimental Branch
If you want to run the experimental branch of Vein that receives cutting-edge features before they reach the stable release, modify your download command slightly by adding the -beta experimental flag after the app ID:
Linux:
steamcmd +force_install_dir /home/steam/vein-server +login anonymous +app_update 2131400 -beta experimental validate +quit
Windows:
steamcmd.exe +force_install_dir C:\GameServers\Vein +login anonymous +app_update 2131400 -beta experimental validate +quit
Keep in mind that experimental branches may have bugs, incomplete features, or unexpected behavior. Additionally, servers running experimental branches can only be joined by players who also have the experimental client installed. This version mismatch protection prevents incompatibility issues but means your player base is limited to people willing to opt into experimental builds.
Most server administrators stick with stable releases for public servers, reserving experimental branches for testing environments or private servers where they can evaluate new features before deploying them to their main community server.
Linking Steam Libraries (Linux Only)
Linux installations require one additional critical step that Windows does not. The Vein server executable needs to access a Steam library file called steamclient.so that SteamCMD installed in its own directory structure. However, the Vein executable looks for this file in a different location than where SteamCMD placed it. The solution is creating a symbolic link, which is essentially a shortcut that tells Linux to redirect file access from one location to another.
This requirement exists because different Linux applications follow different conventions about where system libraries should live. Steam’s client libraries go in one location, but Unreal Engine games expect to find them in another. Rather than copying the file and maintaining multiple copies that would need updating independently, symbolic links let multiple applications share the same physical file while each application accesses it through the path it expects.
First, verify where SteamCMD installed the Steam client library. The typical location is in your home directory under .local/share/Steam/steamcmd/linux64/. Let’s verify this file exists:
ls -la ~/.local/share/Steam/steamcmd/linux64/steamclient.so
If the file exists, you’ll see output showing its size, permissions, and modification date. If the file doesn’t exist, your SteamCMD installation may have placed it somewhere else. Common alternative locations include /usr/games/steamcmd/ if you installed via package manager, or a custom directory if you manually extracted SteamCMD.
Once you’ve confirmed where steamclient.so lives, create the target directory that Vein expects:
mkdir -p ~/.steam/sdk64
The -p flag makes mkdir create parent directories if needed and suppresses errors if the directory already exists. This makes the command safe to run multiple times without causing issues.
Now create the symbolic link itself. Replace the source path in this command if your steamclient.so is in a different location than the default:
ln -s ~/.local/share/Steam/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so
The ln -s command creates a symbolic link. The first path is the source (where the file actually is), and the second path is the link location (where Vein expects to find it). Linux transparently redirects any attempts to access the link location to the actual file location.
Verify that the link was created successfully:
ls -la ~/.steam/sdk64/
You should see output showing the symbolic link and an arrow indicating where it points:
lrwxrwxrwx 1 user user 58 Oct 25 10:30 steamclient.so -> /home/user/.local/share/Steam/steamcmd/linux64/steamclient.so
The l at the beginning of the line indicates this is a link rather than a regular file. The arrow shows the link’s target. If you see this output, your library linking is complete and correct.
Configuring Network Ports
Your Vein server needs two UDP ports open and accessible from the internet for players to connect and for your server to appear in the server browser. Understanding why these specific ports matter and how to properly configure network access to them is crucial for running a successful public server.
Understanding Port Requirements
Port 27015 handles Steam’s query protocol. When players browse the server list in Vein’s main menu, their game client sends query requests to Steam’s master server list asking for all available Vein servers. Steam then checks which servers are online by sending query packets to each server’s query port. If your server responds successfully to these queries, Steam includes your server in the browser results that players see. Without port 27015 accessible, Steam cannot verify your server’s existence, and it won’t appear in server listings even though players could potentially connect via direct IP.
Port 7777 carries all actual gameplay traffic. When players join your server, their game clients maintain constant UDP communication with this port, sending player inputs and receiving world state updates. Every movement, every shot fired, every interaction goes through this port. If port 7777 isn’t accessible, players cannot connect to your server at all, even if they have the correct IP address.
Both ports use UDP rather than TCP protocol. UDP is connectionless and doesn’t guarantee packet delivery or ordering, but it has significantly lower latency than TCP. For real-time games where a few milliseconds of delay affects gameplay quality, UDP’s performance characteristics make it the obvious choice despite its unreliable nature. The game logic handles packet loss and reordering at the application level, prioritizing speed over guaranteed delivery.
Firewall Configuration
Operating system firewalls control which network ports can receive incoming connections. By default, most firewalls block all incoming traffic for security reasons, only allowing explicitly permitted ports to receive connections. You need to create firewall rules allowing UDP traffic on ports 27015 and 7777.
Linux Firewall (UFW)
Ubuntu and many other Linux distributions use UFW (Uncomplicated Firewall) as a user-friendly interface to iptables. Check if UFW is active on your system:
sudo ufw status
If UFW is active, you’ll see a list of current firewall rules. If it reports that UFW is inactive, you may not need to configure it, though enabling it with proper rules is a security best practice for any internet-facing server.
Allow the required ports:
sudo ufw allow 27015/udp
sudo ufw allow 7777/udp
These commands create permanent rules that persist across system restarts. The /udp specification ensures the rules only allow UDP traffic on these ports, not TCP. This specificity follows the security principle of least privilege by not opening more access than necessary.
Verify that your rules were added:
sudo ufw status
You should see entries for 27015/udp and 7777/udp showing ALLOW from Anywhere.
Linux Firewall (iptables)
If your system uses iptables directly without UFW, the commands are more complex but accomplish the same goal:
sudo iptables -A INPUT -p udp --dport 27015 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 7777 -j ACCEPT
These rules append (-A) to the INPUT chain (incoming traffic), matching UDP protocol (-p udp) on destination ports (--dport) 27015 and 7777, and jump (-j) to the ACCEPT action, which allows the traffic.
After adding iptables rules, you must save them or they’ll be lost on next reboot. The save command varies by distribution:
Ubuntu/Debian:
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
CentOS/RHEL:
sudo service iptables save
Windows Firewall
Windows Firewall with Advanced Security provides granular control over network traffic. You’ll create two inbound rules, one for each port.
Click the Start button, type “Windows Defender Firewall”, and select “Windows Defender Firewall with Advanced Security” from the results. This opens the advanced firewall management console that provides much more control than the basic firewall interface.
In the left sidebar, click “Inbound Rules”. This displays all rules controlling incoming network connections. In the right sidebar, click “New Rule” to open the New Inbound Rule Wizard.
Select “Port” as the rule type and click Next. This tells Windows you’re creating a rule based on specific port numbers rather than applications or predefined services.
Select “UDP” as the protocol and enter “27015” in the Specific local ports field. Click Next.
Ensure “Allow the connection” is selected and click Next.
Verify that all three profile checkboxes (Domain, Private, Public) are checked. This ensures your rule applies regardless of which network profile Windows is using. Click Next.
Enter a descriptive name for the rule such as “Vein Server – Query Port” and optionally add a description. Click Finish to create the rule.
Repeat this entire process for port 7777, naming that rule “Vein Server – Game Port” or similar.
After creating both rules, they should appear in your Inbound Rules list. Verify they’re enabled (green checkbox icon) and configured correctly by double-clicking each rule to view its properties.
Router Port Forwarding
If you’re hosting your server on a home internet connection or any environment where your server sits behind a router performing Network Address Translation (NAT), you need to configure port forwarding. NAT allows multiple devices to share a single public IP address, but it means incoming connections don’t automatically know which internal device should receive them. Port forwarding creates explicit mappings telling your router which internal device should receive connections on specific ports.
Access your router’s administrative interface by entering its IP address in a web browser. Common router IP addresses include 192.168.1.1, 192.168.0.1, 10.0.0.1, and 192.168.2.1. Your router’s documentation or a sticker on the router itself typically shows the correct address. You’ll need to log in using your router’s administrative credentials.
Navigate to the port forwarding section. Router interfaces vary dramatically between manufacturers, but look for menu items named Port Forwarding, Virtual Server, NAT, or similar. Some routers place these settings under Advanced or Gaming sections.
Create a port forwarding rule for port 27015:
- External/Public Port: 27015
- Internal/Private Port: 27015
- Internal IP Address: Your server’s local IP address
- Protocol: UDP
Determine your server’s local IP address by running ip addr show on Linux and looking for an address in the 192.168.x.x or 10.x.x.x range, or by running ipconfig on Windows and finding the IPv4 Address under your active network adapter.
Create a second port forwarding rule for port 7777 using the same process.
Many routers assign internal IP addresses dynamically through DHCP, meaning your server might receive a different internal IP address after rebooting. This would break your port forwarding rules because they point to the old address. Prevent this by either configuring a static IP address in your server’s network settings, or by using your router’s DHCP reservation feature to ensure your server always receives the same IP address based on its MAC address.
After configuring port forwarding, save your router settings. Most routers require a reboot to apply configuration changes, which will briefly interrupt internet connectivity for all devices on your network.
Starting Your Server for the First Time
With installation complete and network configuration in place, you’re ready to start your Vein server for the first time. This exciting moment reveals whether all your preparation work succeeded or whether any issues remain to troubleshoot.
Navigate to your Vein server installation directory in your terminal or command prompt. The exact path depends on where you installed the server. If you followed earlier examples, this might be /home/steam/vein-server on Linux or C:\GameServers\Vein on Windows.
Linux Startup
cd /home/steam/vein-server
./VeinServer.sh -log
The ./ prefix tells Linux to execute a file in the current directory. The -log parameter is absolutely critical because without it, the server runs silently with no console output. You won’t see any indication of what the server is doing, whether it started successfully, or what errors it encountered. Always include -log when starting your server.
Windows Startup
cd C:\GameServers\Vein
VeinServer.exe -log
Windows doesn’t require the ./ prefix for local executables, but the -log flag is equally important here for seeing server output.
Interpreting Startup Output
As your server initializes, you’ll see hundreds of log lines scroll past in your console. This output represents different engine subsystems starting up, loading configuration, initializing networking, and connecting to external services. Understanding key messages helps you verify successful startup and identify problems when they occur.
Early log messages typically relate to engine initialization, loading game modules, and parsing configuration files. You might see warnings about missing optional features or experimental systems that aren’t enabled. Most warnings during this phase are harmless unless they specifically mention critical failures.
Watch for messages from LogRamjetSteamSocketsAPI, which indicate Steam integration status. The most important message you’re looking for is:
LogRamjetSteamSocketsAPI: SDR RelayNetworkStatus: avail=OK
This message confirms that your server successfully connected to Steam’s relay network infrastructure. It means Steam can see your server, query requests will work, and your server can appear in the browser. If you don’t see this message or if you see errors from the Steam subsystem, you likely have library linking issues on Linux or missing DLL files on Windows. Consult the troubleshooting guide if Steam initialization fails.
Additional messages you want to see include:
LogNet: Game server logged on to Steam
This confirms successful authentication with Steam’s game server infrastructure, which is distinct from the relay network but equally important for server browser functionality.
Later in the initialization sequence, you should see messages about the server beginning to listen on its configured ports. While these messages don’t always explicitly state port numbers, their presence indicates that network initialization succeeded.
If your server starts successfully, the log output will eventually stabilize with occasional messages about heartbeats being sent to Steam and routine housekeeping operations. Your server is now running and waiting for players to connect.
Testing Server Accessibility
Don’t trust that everything works just because the server started without obvious errors. Actively test your server’s accessibility to catch any remaining issues.
First, attempt to connect from the server machine itself. Launch Vein as a client on the same computer, open the server browser or direct connect interface, and try connecting to localhost or 127.0.0.1. If this connection succeeds, the server is running correctly and accepting connections, though this doesn’t yet prove that external players can reach you.
Next, test from a different computer on the same local network. Note your server’s local IP address (found via ipconfig or ip addr show as discussed earlier) and try connecting from another machine. If this succeeds, network communication is working properly within your local network.
The final and most important test involves connecting from outside your local network. Ask a friend to search for your server in the browser, or use a mobile device connected to cellular data rather than your WiFi. External connectivity tests verify that your port forwarding configuration works correctly and that no ISP-level restrictions are blocking your server.
If the server appears in the browser but players can’t connect, port 27015 is accessible but port 7777 might be blocked. If players can connect via direct IP but the server doesn’t appear in the browser, the reverse is true. Both conditions indicate incomplete port configuration that needs addressing.
Optional Startup Parameters
The -log parameter is just one of several command-line arguments you can pass to VeinServer. Understanding other available options lets you customize server behavior without editing configuration files.
The -QueryPort argument changes which port handles Steam’s query protocol. If port 27015 is already in use by another service or if you want to run multiple Vein servers on the same machine, specify a different query port:
./VeinServer.sh -log -QueryPort=27016
Note the equals sign in the syntax. The -Port argument similarly changes the main gameplay port from its default of 7777:
./VeinServer.sh -log -Port=7778
If you change these port numbers, remember to update your firewall rules and port forwarding configuration to match.
The -multihome parameter specifies which IP address the server should bind to. This is relevant for servers with multiple network interfaces or multiple IP addresses:
./VeinServer.sh -log -multihome=203.0.113.50
Most single-server installations don’t need this parameter, but it becomes important in complex networking environments like multi-homed servers or advanced routing scenarios.
Keeping Your Server Running
Successfully starting your server is an accomplishment, but keeping it running reliably requires additional considerations. Servers crash occasionally due to bugs, run out of memory after extended uptime, or need restarts to apply updates. Planning for these situations ensures your community enjoys consistent uptime.
Screen Sessions (Linux)
On Linux, closing your SSH session terminates any programs you started from that session, including your Vein server. Screen or tmux allows you to create persistent terminal sessions that continue running even after you disconnect.
Install screen if it’s not already available:
sudo apt install screen
Start a new screen session named “vein”:
screen -S vein
You’re now in a screen session that looks like a normal terminal. Start your server:
cd /home/steam/vein-server
./VeinServer.sh -log
To detach from the screen session and leave your server running, press Ctrl+A followed by D. You’ll return to your normal terminal, but the screen session continues running in the background.
Reattach to your screen session later to check server status or shut it down:
screen -r vein
This workflow allows you to start your server, detach from the session, close your SSH connection, and come back hours or days later to check on things.
Running as a Service
For production servers that should start automatically when the machine boots, configure your Vein server as a system service. This approach ensures your server restarts automatically after power outages, system updates, or unexpected reboots.
Service configuration is complex and varies between Linux distributions and Windows versions. The basic approach involves creating a service definition file that tells the operating system how to start, stop, and monitor your server process. Most server administrators find third-party service managers specifically designed for game servers easier to use than manual service configuration.
Popular game server management tools include LinuxGSM for Linux and WGSM (WindowsGSM) for Windows. These applications handle service configuration, automatic restarts, update management, and monitoring, making server administration much simpler for people who aren’t comfortable with system administration tasks.
Next Steps: Configuration and Customization
Your server is now running and accessible, but it’s using all default settings. The server has a generic name, default gameplay configuration, and no administrators configured. Your next step is diving into server configuration to customize your server’s identity and gameplay experience.
This is where your work transitions from pure installation to server management and community building. You’ll edit configuration files to set your server’s name and description, configure admin permissions for yourself and trusted community members, adjust gameplay variables to create the experience you envision, and potentially integrate external services like Discord chat forwarding.
Server configuration is covered comprehensively in the separate Vein Server Configuration Guide, which explains every available setting, best practices for different server styles, and advanced customization options. Taking time to thoughtfully configure your server helps it stand out in the server browser and creates a compelling experience that keeps players returning.
Congratulations on successfully installing your Vein dedicated server! You’ve completed all the technical groundwork necessary for hosting a game server. The installation skills you’ve learned apply to hundreds of other Steam games with dedicated server support, so you’ve gained valuable knowledge that extends far beyond just Vein. Now it’s time to configure your server, build your community, and create memorable gaming experiences for your players.
We are working on Vein Dedicated servers. Rent one when they are out

