It seems Blizzard have been having some issues with World of Warcraft and the newer WoW Classic with them coming under a DDoS attack. Their countermeasures (well, whatever they've done recently) seem to have blocked Linux players in Wine but there's a fix.

You will be able to load the game and bring up the server list but once you click to join a server, it just doesn't work. If you find this happening to you, changing your networking TTL can help. First, run this command in your terminal to find what your current default is:

sysctl net.ipv4.ip_default_ttl

Make a note of the number it shows in case you need to change it back for whatever reason. As for the actual fix, set it to something different like this:

sudo sysctl -w net.ipv4.ip_default_ttl=128

128 is the default in Windows 10.

What does the command do? It changes your "Time To Live" and that's all. As always though you run such commands at your own risk, just here to provide information that might be helpful.

Another possible solution is to enable IPv6 support in the WoW Login screen options, although that won't work for everyone and depends on your ISP and Router.

While you're not supported by Blizzard playing on Linux, people have enjoyed WoW for many years thanks to Wine. Sometimes there's blips like this but thankfully the workaround does work for myself and a number of others who also tested it.

If you use a game launcher like Lutris, it can run commands or scripts you set before launching a game and after you close it, so it's handy for stuff like this where you might not want a permanent change. If you wish to try it through Lutris using that method, you will need to open the options for it: right click -> Configure -> System Options tab, tick the Show advanced options box at the bottom and then scroll to find this:

I've just setup two tiny little scripts to put TTL up and down again on launch and exit. Here's my "upttl.sh" script as a rough example:

#!/bin/bash

[ "$UID" -eq 0 ] || exec kdesu bash "$0" "$@"

sysctl -w net.ipv4.ip_default_ttl=128

You will likely need to replace kdesu with gksu if you're on a GNOME based desktop, which is what will show an actual prompt to ask for your root password since it's needed to change the TTL. Make sure the script is set as executable too. You can use the same for when the game closes, with a lower number than 128 or whatever you wish to set. This is just an example though, whatever way makes it easier for you.

Hat tip to Jaco.