Since the last update, the Rust's server browser is trying to query my server using the main server machine's IP instead of the assigned (and bound) server IP. Because of this, we're not being displayed in the list.
Anyone else having the same issue running Linux?
Server list pulling wrong IP?
Discussion in 'Rust Discussion' started by iDeath, Feb 3, 2018.
-
Yes, we have the same problem.
-
@BigWorld Thanks for confirming, thought it was machine related.
-
something to do with facepunch.steamworks im sure
-
explain it in a bit more details u could always set the server.ip to 0.0.0.0 that will reset ur IP and Enables it to show again on the rust list its not really recommend to set a different IP here.
-
Wulf Community Admin
-
I use a failover IP to make it easier for me to transfer game servers in and out of clusters as well as within a cluster when load distribution is needed. Using the machines IP will mean I would eventually have to change the game servers IP which means it would then fall off players history/favorite tab. With a failover I can transfer it machine to machine within seconds. See the point now? -
-
Here is what's happening at a more technical level.
https://i.imgur.com/Q5xXGTw.png
On the right is my server configured to use OVH's failover IP properly. On the left is Wireshark loading packet captures taken off the wire on my dedicated OVH system. Just like the thread states, the steam master server is telling game clients to query the incorrect IP address.
At first I suspected Facepunch.Steamworks or SteamAPI_Init being called incorrectly in Rust, but after spending the weekend reversing that, I don't believe either of those are at fault. I suspect this is either a change in Steam's API that hasn't been accounted for, or a bug on Steam's side. What is happening is Steam is using the IP address the server connects from to communicate with Steamworks as the server IP. When, why or how is unclear. It impacts both Linux and Windows. Though anecdotally it seems to impact Windows randomly, where sometimes it works and sometimes it doesn't. So I'm suspecting this may be a bug inside of the Steamworks native libraries on the Steam side maybe.
So far however, on Linux I was able to create a successful workaround that seems to have resolve the issue for now.
Code:root@server:~# iptables -t nat -A POSTROUTING --destination 0.0.0.0/0 -j SNAT --to 147.135.3.86 root@server:~# iptables -t nat -nv -L POSTROUTING Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 2769 183K SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 to:147.135.3.86
-
@Diametric That's more structured than my jerry rig
-
Is not it easier to change the primary ip address in /etc/network/interfaces ?
-
Additionally, there are numerous people using multiple failover IPs for multiple servers on the box, which the problem would still exist for. -
@BigWorld Would defeat the purpose of a failover
-
Hi, I apologize for the bump but this is the only thread I found regarding this issue.
I am running into this issue as well. I do have a work-around related to my firewall but that is inconsistent and I'd prefer if the `server.ip` command worked as intended with the Valve Master Server list.
Does anybody know if this issue has been reported to the Rust development team? Is there also a reasoning behind this change back in February. From my understanding, the `server.ip` command is basically useless now with the Valve Master Server list.
Thank you! -
@gamemann Are you using a failover IP as your Rust servers main IP?
-
The first is if you only have 1 failover IP and use all your rust servers on it, you can create an SNAT rule forcing all outbound traffic to use that IP address. You can see that above in my previous post.
The second is to use network namespaces. This will allow you to use any arbitrary number of IP addresses as your Rust server IP. So if you have 3 servers running on a dedicated box and all 3 each have their own IP, this is the way to go. It's also significantly more complicated.
Network namespaces - Unweaving the web
Is a decent write-up on how to utilize it. Linux allows you to create virtual namespaces with independent network settings, and then forcibly have an application use that as its network stack instead of the default. This makes the Rust server completely unaware of anything but the network settings within the namespace, causing its traffic to be properly tagged with the source IP address of your choosing. -
I've made a plugin that checks if the server is in the list, then auto restarts if not until it does show up. Ran into a problem with the server freezing for about 10 minutes when restarting though, so now I need to make a workaround for my workaround
-
Are people still having this problem, is the workaround currently on Windows to just use the Primary IPv4 address?
I'm facing the same problem after setup of Failover IP address with Ovh, using the main IP and everything works, however once you switch it over, it no longer appears in the server list. -
yes, use the primary ip
-
Hi,
Have any of you tested this solution?
r/playrust - Rust server are not showing up on Rust Server List and making our server die
Put this in your startup and it shouldn't disappear again
rd /s /q "%rustpath%\appcache"
rd /s /q "%rustpath%\config"
rd /s /q "%rustpath%\logs"
rd /s /q "%rustpath%\userdata"
Would that be correct?
Start.bat:
rd /s /q "%rustfolder%\appcache" rd /s /q "%rustfolder%\config" rd /s /q "%rustfolder%\11\logs" rd /s /q "%rustfolder%\userdata" @echo off cls :start echo Starting server... start /AFFINITY 54 RustDedicated.exe -batchmode ^ +rcon.ip x.x.x.x ^ +rcon.port xxxx ^ +server.ip x.x.x.x ^ +server.port xxxx ^ +server.identity "myserver" ^ +server.globalchat true ^ +rcon.password "xxxxx" echo. echo Restarting server... timeout /t 10 echo.