arkmanager / ark-server-tools

Set of server tools used to manage ARK: Survival Evolved servers on Linux
MIT License
680 stars 144 forks source link

Multiple Instances - Only One Can Be Joined #1141

Open paytah232 opened 4 years ago

paytah232 commented 4 years ago

Hi. I am running a few different instances and I thought I'd try and configure so I can run multiple at the same time. It seems that the first server I turn on works fine, but the following 1 or 2 say they are listening and appear in Ark search, but cannot be joined with "Connection Timeout". My ports are correctly forwarded, and are open according to an online checker. Not really sure why this is happening. I copied my instance file for the island and placed it below. The other instance files are virtually copies, with only the ports/map/sessionname changed.

# ARK server options - use ark_<optionname>=<value>
# comment out these values if you want to define them
# inside your GameUserSettings.ini file
serverMap="TheIsland"                                               # server map (default TheIsland)
ark_RCONPort="32331"                                                # RCON Port
ark_SessionName="Bangers - TheIsland"                                  # if your session name needs special characters please use the .ini instead
ark_Port="8889"                                                     # ARK server port (default 7778)
#Takes up 2 ports per instance (8889, and 8890)
ark_QueryPort="27016"                                               # ARK query port (default 27015)
ark_GameModIds="751991809,754885087,630601751,569786012,622608522,731604991,793605978,554678442,566887000,918590226"                     # Uncomment to specify additional mods by Mod Id separated by commas
#Mods=Death Recovery, More Narcotics, Resource Stacks, Meat Spoiler, Charcoal Baker, Structures Plus, Super Spyglass, Egg N Poop Collector, Pet Finder, Offhand Gear
ark_AltSaveDirectoryName="TheIsland"
arkopt_ClusterDirOverride="/ark/servers/ARK-Cluster-Data"
arkopt_clusterid=mycluster                                    # Uncomment to specify a different save directory name

#Dead mods = 821530042 -> upgrade station
klightspeed commented 4 years ago

Are the servers on the same network as you are trying to connect from? Some routers do not support loopback (or hairpin) routing.

paytah232 commented 4 years ago

Yes the servers are on the same network, and it seems that my modem doesn't support NAT loopback:

https://community.tpg.com.au/t5/Modems-and-Devices/TP-Link-VR1600v-wont-resolve-my-website/m-p/31008/highlight/true#M3244

Why would this be an issue though if the ports are set up and forwarded? The server runs off my NAS, and I / everyone connects via the NAS external IP. Shouldn't it be the same as accessing Webpages on different ports at the same time? Example I can access several containers externally at the same time by http://external-nas-ip:[6969,8000,9000,34567] entering all Port separately obviously. Isn't that the same principle as an ark servers listening on ports 8888 and 8890?


From: Ben Peddell notifications@github.com Sent: Sunday, August 23, 2020 11:10:41 PM To: arkmanager/ark-server-tools ark-server-tools@noreply.github.com Cc: Paytah232 peterpugno@hotmail.com; Author author@noreply.github.com Subject: Re: [arkmanager/ark-server-tools] Multiple Instances - Only One Can Be Joined (#1141)

Are the servers on the same network? Some routers do not support loopback (or hairpin) routing.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/arkmanager/ark-server-tools/issues/1141#issuecomment-678772720, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKQIURBOIAL3S2PCMA7MFPDSCEINDANCNFSM4QIUKQ2A.

klightspeed commented 4 years ago

I wonder if the NAS has a workaround for incomplete NAT loopback support, spoofing the external IP address on outgoing TCP packets when a request has an internal source IP address yet comes from the router's MAC address?

The game ports are UDP ports, so applying such a workaround on the game ports would result in direct connections failing should the game hold onto the UDP socket when switching between connecting to the external IP and connecting to the internal IP.

paytah232 commented 4 years ago

I had a bit of a look on the web and I see that there is a way to host your own DNS on the Synology NAS, but most people require it when they cannot access their NAS locally when using the external DDNS name eg. Mynas.synology.me. I think I edited my hosts file a long time ago to make sure that worked correctly because I can access my external address internally and do it quite often (doesn’t this mean NAT loopback is working to some extent?). I will try tonight to remove my host file entries and see if I can indeed access my DDNS from the local network. Not sure where to go after that, perhaps I could try to set up the DNS server on the NAS and point my router to it. I currently point my router’s DNS to a local IP linked to a docker running PI-hole and then secondary dns to opendns.

From: Ben Peddell notifications@github.com Sent: Monday, 24 August 2020 8:00 AM To: arkmanager/ark-server-tools ark-server-tools@noreply.github.com Cc: Paytah232 peterpugno@hotmail.com; Author author@noreply.github.com Subject: Re: [arkmanager/ark-server-tools] Multiple Instances - Only One Can Be Joined (#1141)

I wonder if the NAS has a workaround for incomplete NAT loopback support, spoofing the external IP address on outgoing TCP packets when a request has an internal source IP address yet comes from the router's MAC address?

The game ports are UDP ports, so applying such a workaround on the game ports would result in direct connections failing should the game hold onto the UDP socket when switching between connecting to the external IP and connecting to the internal IP.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/arkmanager/ark-server-tools/issues/1141#issuecomment-678830142, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKQIURB7VOJRWVJKXRT2X63SCGGO5ANCNFSM4QIUKQ2A.

klightspeed commented 4 years ago

DNS won't affect being able to connect using the in-game server browser or using Steam's server browser, as they use the IP address while it sounds like you're using the DNS hostname for connecting to the web services.

DNS (and /etc/hosts or %SYSTEMROOT%\system32\drivers\etc\hosts) is used for mapping hostnames to IP addresses, and will do nothing if you already have the IP address.

paytah232 commented 4 years ago

Yes true, when I run arkmanager status from inside the docker I can see that both servers advertise on my external IP (same IP that maps to my DDNS of my Synology NAS) and then their listen port either 27015 or 27016. It reports the steam connect ID etc to which I know a couple of my users successfully use for the 1st instance I have running. Does this mean that I am limited by my router’s nat loopback feature?

From: Ben Peddell notifications@github.com Sent: Monday, 24 August 2020 8:33 AM To: arkmanager/ark-server-tools ark-server-tools@noreply.github.com Cc: Paytah232 peterpugno@hotmail.com; Author author@noreply.github.com Subject: Re: [arkmanager/ark-server-tools] Multiple Instances - Only One Can Be Joined (#1141)

DNS won't affect being able to connect using the in-game server browser or using Steam's server browser, as they use the IP address while it sounds like you're using the DNS hostname for connecting to the web services.

DNS (and /etc/hosts or %SYSTEMROOT%\system32\drivers\etc\hosts) is used for mapping hostnames to IP addresses, and will do nothing if you already have the IP address.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/arkmanager/ark-server-tools/issues/1141#issuecomment-678833182, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKQIURDKIJGRUQTIOCHKMXTSCGKIHANCNFSM4QIUKQ2A.

paytah232 commented 4 years ago

So my router connecting to my Modem is a TPLink Archer vr1600v but I have a netgear R8000 acting as my Wi-Fi as the signal is much better and faster. According to this :https://kb.netgear.com/000049578/Which-NETGEAR-routers-support-NAT-loopback , the Netgear R8000 supports NAT loopback. Perhaps I should configure my R8000 as the DHCP lease router and simply use the VR1600v to receive the internet and send it to the R8000. Do you think that might solve the issue?

klightspeed commented 4 years ago

Assuming you have the VDSL modem because you have FTTN, it might work if you put the VDSL modem into bridge mode, and have the R8000 router handle the routing.