Installing on Windows with WSL: Difference between revisions
No edit summary |
(C/P correct libraries from tfwiki https://wiki.teamfortress.com/wiki/Linux_dedicated_server) |
||
Line 21: | Line 21: | ||
sudo dpkg --add-architecture i386 | sudo dpkg --add-architecture i386 | ||
sudo apt-get update | sudo apt-get update | ||
sudo apt install lib32z1 libncurses5:i386 libbz2-1.0:i386 | sudo apt-get install lib32z1 libncurses5:i386 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libtinfo5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 | ||
sudo ufw disable | sudo ufw disable | ||
Those Ubuntu commands will install and update server in ~/hlserver/hlserver: | Those Ubuntu commands will install and update server in ~/hlserver/hlserver: |
Latest revision as of 17:57, 11 December 2023
Easy installation script[edit | edit source]
Right click this link and select save link as:
https://raw.githubusercontent.com/rafradek/sigsegv-mvm/master/windows_install_wsl.bat
Run the downloaded bat file and follow the instructions printed in console
Manual installation[edit | edit source]
Run the bat file and follow instructions printed in console
Based on guides: https://docs.microsoft.com/en-us/windows/wsl/install-win10 https://wiki.teamfortress.com/wiki/Linux_dedicated_server
Open PowerShell as administrator, then execute those commands
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Now restart your PC. After that, execute another PowerShell command
wsl --set-default-version 2 echo [wsl2] memory=2GB > $env:USERPROFILE/.wslconfig
Open Microsoft Store and install Ubuntu. Launch Ubuntu from start menu. Fill in username and password info when asked. Install required packages by entering those commands into the window:
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install lib32z1 libncurses5:i386 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libtinfo5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386 sudo ufw disable
Those Ubuntu commands will install and update server in ~/hlserver/hlserver:
mkdir ~/hlserver cd ./hlserver wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar zxf steamcmd_linux.tar.gz ./steamcmd.sh +login anonymous +force_install_dir ./hlserver +app_update 232250 +quit
You can browse server files in windows explorer with this Ubuntu command:
explorer.exe ~/hlserver/hlserver
If you have an existing windows server installation you can copy server files here.
Install a linux version of sourcemod and mm: source in this location
Unpack all sigsegv archive contents into tf directory
Create a server starting file with Ubuntu commands:
echo "#!/bin/sh" > ~/startserver.sh echo "~/hlserver/hlserver/srcds_run +map bigrock +maxplayers 32" >> ~/startserver.sh chmod u+x ~/startserver.sh
Run server with Ubuntu command:
~/startserver.sh
Or, to run a server from windows CMD / PowerShell:
wsl ~/startserver.sh
You should check your linux server IP with a command executed in PowerShell. You can use this IP to connect to your server from this Windows PC. IP will change with every system reset:
wsl hostname -I
The section below tells how to connect to the server using your LAN or public IP if available
You can make the server autostart by adding a scheduled task in Task Scheduler, on login condition, running wsl as a program with ~/startserver.sh as an argument.
Make the server accessible from the Internet and the local network[edit | edit source]
Download a program named sudppipe (The browser may mark this file as unsafe so you might have to right click and select Save link As)
Unpack the downloaded archive, then create tf2portpipe.bat file in the unpacked directory alongside sudppipe.exe. Replace port value with your own server port. The port should not be in use by any other program (TF2 client often binds to port 27015).
@ECHO off SET port=27015 FOR /F "tokens=* USEBACKQ" %%F IN (`wsl hostname -I`) DO ( SET ip=%%F ) %~dp0/sudppipe.exe -q -b 0.0.0.0 %ip% %port% %port%
Run the bat file. If you wish to get rid of the console window, add a run on system startup scheduled task, with run whether user is logged on or not option, launching this script file as a program.