discord.jse.io" itemprop="description"/>

JSE's Blog

Jonah's blog is here

Linux

Linux

Just posting this quickly (excuse any typos or brainfarts, going for dinner soon ;) ) to say ExtraVM goes above and beyond to be awesome. Been using them to host a teamspeak server since last August (2016). We decided to get a dedicated server for ECMB since you need a good chunk of memory to start an Ark server, even though we're small (only ~50 members on discord last I checked eg).

Kimsufi has great deals on dedicated servers. I got my hands on one with an i5-3570S.

[email protected]:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Core(TM) i5-3570S CPU @ 3.10GHz

Sure, it's not great, but handles Ark server perfectly for us and should be able to run a couple CSGO and Minecraft servers too. If it grows to the point we start getting lag, then of course we'll move things around and upgrade to a better server (from SYS or OVH directly eg).

However one of the issues we experiences in the past is the dreaded DDoS of script kiddies getting a kick of null routing me drawn in from the teamspeak server. We publicly list teamspeak as this is one of the ways we've found some cool people, but it seems to draw in the "cancer" too from time to time. To protect it, I've been a fan of ExtraVM after it being recommended on forums like r4p3.net.

It is great, but there comes a point that Kimsufi is still more affordable for certain projects, aside from not having the DDoS Game protection OVH seems to famously (or infamously when it doesn't work) offer.

Luckily, the awesome Mike A who owns ExtraVM goes above and beyond and gave me, at no extra cost a free IP I can use to setup a GRE Tunnel to the Kimsufi. I opened a ticket asking ExtraVM and he's quick to respond as always... unlike pretty much any other host I've been with (SYS was notoriously slow to respond to tickets eg). He did say that despite GRE module existing on all nodes, some people have trouble setting up GRE tunnels on his VPSes (suggestion others have tried and he has no issue with it) so my milage may vary. Only took a couple minutes and it worked without any issues! Whether some people just make a mistake or I got lucky being on a node that supports properly makes no difference to me, it I'm just happy :)

Given that ExtraVM's OpenVZ plans are hosted by OVH just like Kimsufi the pings are ~0.5ms, so it's not noticeable to any players. Even if I have to buy an extra TB or so of bandwidth it's still cheaper than buying SYS/OVH Game servers, and if we grow the point that I end up using too much bandwidth hopefully by then we'll be able to easily upgrade to a real game server anyway.

Anyhow, just thought I'd give a shout out to ExtraVM as it's an awesome company for anyone looking for an OVH reseller. I've seen some people criticize r4p3.net's reputation on zero day exploits, and I'll hold out my opinion on that too, but they do know their stuff when picking a good affordable host :) There's been a lot of hit and run hosts that resell OVH but it seems ExtraVM certainly is the exception as I've had no issues with them.

I don't play Ark or know anything about it, but with ECMB, people want game servers, and I'm their guy. I am running a dedicated server at OVH with Ubuntu 16.04. My brother "asabean" is the one who decided what config settings the ARK server should have, and he happily applied the variables in Game.ini and GameUserSettings.ini. He essentially just copied from his local save in Windows and pasted in the parameters into the file in the text editor in putty. Yes, it was nano. ;)

I'm a fan of the scripts from gameservermanagers.com, which is what I used to install Ark. It's very easy and way better than doing it manually through streamcmd as I quickly learned with running CSGO servers. It's nice to be able to just type ./arkserver install and ./arkserver update and not having to think about 'did I set force_install_dir correctly'? Heck... it's annoying when you think ~ will work with force_install_dir (normally meaning home for those who don't know) but instead it actually makes a directory named ~. Been there, done that, so anyway...

Getting mods to work was a challenge. It seems quickly googling how to do it isn't that easy with Ark Servers as there's a ton of misinformation out there, however Ark is supposed to download and run them pretty much automatically now I guess. Initially we uploaded the mod files from the Mods folder on Windows, and adding ActiveMods= in GameUserSettings.ini. (FWIW these files are located in ~/serverfiles/ShooterGame/Saved/Config/LinuxServer That didn't work.

Then I decided to add

[ModInstaller]
ModIDS=

to Game.ini and tried to start the server with LGSM. It failed. Checking logs showed some sort of segfault crash.

Huh... progress, but still not working.

Googling around led me to this thread on the steam forums. User "TheKurrgan" explained that the automodinstaller or whatever it's called in Ark depends on SteamCMD that doesn't exist in the proper location (turns out, seperate from the steamcmd you used/lgsm used to install it), and so you need to add it yourself. To do so, in your serverfiles/ directory, navigate to Engine/Binaries/ThirdParty/SteamCMD. Then, make a new folder called Linux with mkdir Linux and then cd Linux. They then proceeded to download steamcmd with curl using curl http://media.steampowered.com/installer/steamcmd_linux.tar.gz > steamcmd.tar.gz (of course you can use wget or something else similarly if you don't have curl installed), extract it with tar -zxf steamcmd.tar.gz and execute ./steamcmd.sh.

SteamCMD will then update and whatnot, and when you finally get the Steam> prompt, just type exit and start your server.

It worked!

Now FWIW, I read elsewhere you need to have the mods in GameUserSettings.ini and keep them in order, so I kept just copied the same order from the desktop. How true or important this is was beyond me, I just took their word for it. The particular mods we used looked like this in the end:

ActiveMods=764326117,774762563,627340159,554678442

and in Game.ini

[ModInstaller]
ModIDS=764326117
ModIDS=774762563
ModIDS=627340159
ModIDS=554678442

Once I started the server with LGSM it downloaded the mods and all is well. Now onto figuring out admin commands and whatnot....

Anyway, that's what I learned doing this so far so anybody else who gets stuck on getting mods to work on a linux server, hopefully this helps!

So you logged in as root/user with sudo permissions... ok? You want to be at least 20% secure though, and the next coolest game server shouldn't be ran as root. You're just not as dank as Bryan Lunduke.

Perhaps it's Minecraft you want to setup, and you're going to use GNU Screen for running it in the background like a bajillion of online tutorials suggest.

You add a user for minecraft, but hey! Let's be a little bit secure and you use SSH Keys and don't want to be bothered to setup a key for your new minecraft user. OR when you run adduser minecraft you also add the flag --disabled-password or you used the good ol' useradd and didn't set a password because life goals or something.

Whatever the reason is, you don't want to be bothered with firing up another putty window just to run screen, you just want to su to the new user and do your magic.

Now you can always just run screen -dmS sessionname your command here and it will run the command specified after the session name. Assuming you didn't screw up, it'll work fine.

But what if you don't want --dmS? What if you want to attach to the screen session? Whether you're using screen -r or just starting a new session the classic way with screen -S, it doesn't work, all because you su'd in. Screen can't control your pseudo-terminal because you're really using the one from the user you su'd from yet you're running screen from the su'd user. It cries out in agony! Cannot open your terminal '/dev/pts/0' - please check. But alas.... just run this command first:

script /dev/null

Then run your screen session.

It'll work. You're welcome.

So there's lots of tutorials on the osu!forums like "Ultimate guide to low-latency osu! on Linux", "Solution: Running osu! In Ubuntu or Xubuntu", etc. And I'm sure these are all good tutorials that are awfully verbose. But I'm lazy and I didn't read them. I don't like reading too much, only writing, that's why I never proof read haha! I'm contrarian, it shouldn't be hard.

So here's the lazy way. I assume you know your way around linux and you actually know how to configure it (eg. Install proprietary graphics when needed) which personally, I feel that is beyond the scope of any one tutorial, especially how that changes so much and distros vary anyhow. Hardware configurations are a separate issue and effect far more than just osu! anyway, so look for tutorials on that if you need help with tuning any of your hardware (tablets, graphics, what-have-you). Google is your friend.

So if you are looking to install osu!... here is the TL;DR version

  1. Install Wine. (If you're on Ubuntu or debian, it's as easy as an apt-get)
  2. Create a 32bit prefix if you are on 64bit linux (you probably are). Don't know how? If you're learning to use linux and wine you should learn as pretty much everything you'll use in wine will need a 32bit prefix. A google search returns this for example.
  3. Install .net 4.0 and some fonts. I don't know what fonts are necessary but winetricks makes life easy and has the option to install all fonts. Which, by the way... you should use winetricks to do both since it makes it really easy. Another easy apt-get on Ubuntu/Debian. Soooo if you're new.... to run Winetricks on your 32bit prefix? WINEPREFIX=/whatever/your/path/to/32bit/prefix winetricks
  4. Finally, download osu! installer like you normally would on Windows. Fire up a terminal, cd to the directory where the installer is and run it in your prefix. Protip: Something like WINEPREFIX=/whatever wine osu\!installer.exe (Remember to escape the ! with a \ so Bash doesn't freak out over syntax crap)

It will install. I literally had no issues with getting it to work. No input lag. Great fps. I don't see the need, at least with the distro I was running (Ubuntu 16.10 at the time) to do any fancy hacking or installing different kernels. It works out of the box. You can then run the game osu\!.exe the same way you did with the installer. If you don't like using the terminal to launch it all the time make a launcher script or something on your favorite desktop environment of your choice to do it for you.

Otherwise if you want more help post a comment, post in one of the threads above, follow the instructions in those linked threads, cry to peppy to release the native linux client. But just don't make life too hard for you when you don't need to ;)