• For issues you find with the Switch and Console releases, please follow this link and give as much detail as possible. This is the speediest way to get info to Pipeworks and get a hotfix in the works.
  • For issues you find with the Mobile 1.3 update, please follow this link and give as much detail as possible. This is the speediest way to get info to DR Studios to look at your issue. Also, some troubleshooting hints here.

Mac Cannot host server over wifi, only local

DETERMINATOR20

Terrarian
Hi all, I've been trying to set up a server from my mac (Catalina). I can get the server up and running, but I cannot join it when I try to hotspot my other computer (or from friends internet), however, I can join it when connected to the same wifi network.

I've made sure my mac has port 7777 open
I've made sure versions are the same
I've turned on forward porting (and tried off)
I've tried ipv6, ipv4 and the IP address is says when I go to
https://whatismyipaddress.com

Also, I've tried pinging my mac on each address and for my ipv6 it says general issue.


Has anyone else experienced this issue?

Thanks in advance
 

Mutisk

Terrarian
It's not a Terraria problem (as you could prove with local network access). I suggest looking elsewhere for a guide for your network equipment and firewall configurations. It's probably NAT and/or firewall. Those are the tools to learn and can make external connection appear, behave and function just as local ones do.

Searching forums like this (and others) on aforementioned things could potentially get you some useful info as well.
 
Last edited:

DETERMINATOR20

Terrarian
It's not a Terraria problem (as you could prove with local network access). I suggest looking elsewhere for a guide for your network equipment and firewall configurations. It's probably NAT and/or firewall. Those are the tools to learn and can make external connection appear, behave and function just as local ones do.

Searching forums like this (and others) on aforementioned things could potentially get you some useful info as well.
I've disabled the firewall and the issue still occurs. However, this still occurs. I can't find NAT in system preferences, or in my modem details (I'm using Telstra if that helps). It wouldn't surprise me if it hasn't got something to do with my internet as it still doesn't work when my server computer (the Mac) is connected to my hotspot. Thanks!
 

DETERMINATOR20

Terrarian
New discovery - I ping my mac from my pc using the ip from canyouseeme.org, but not the ip in system preferences. Also, after some further looking it appears that port 7777 is now closed. Is there any way to open it?

EDIT - So I've identified the problm - its that the port is not responding (even though port forwarding is on). I can normally ping my mac from two different internets quickly, but port 7777 does not appear when I do a port scan in network utitilty or when I go to canyouseeme.org. I've tried 5 other ports but none work. I've disbaled the network firewall and computer firewall and it still happens.
 
Last edited:

Mutisk

Terrarian
Hey, you're making progress! That's good because I'm mostly only going to offer encouragement! :)
NAT is sometimes called port forwarding, so it could be that if you're describing a setting on your Telestra. If you are talking about the TerrariaServer "automatic port forwarding" it tries to set it up via UPnP. I dont have that installed on my home router and do the manual NAT/port forwards instead.

-----------------------

While I'm at it, I can describe my own setup story for hosting a network terraria game (I use linux tools, so some should carry over to MacOS I think). Perhaps you can find something useful from it.

The first is to start the game server (TerrariaServer.bin) and verify that it binds on the correct interface.

Bash:
netstat -na | grep -i 7777
tcp        0      0 0.0.0.0:7777            0.0.0.0:*               LISTEN
Here I note it's using the wildcard address for me, that should work in most cases. (Not sure TerrariaServer offers alternative binds actually)

Next thing I need to do is to setup my home router (as I know I dont have UPnP on it). It also has the public IP on it's status page. It calls this a "port forward", but it's also referred to as Destination NAT by some other. To cut it short; home router receives packages at <public_IP>:7777 and rewrites destination to <private_IP>:7777 (port is kept unchanged to keep it easier to maintan and use, but DNAT can change that too if necessary). Some care was taken to ensure I had static DHCP lease on, or else the port forward would suddenly be incorrect in the future.

I could then verify this was working with tcpdump and filtering on port 7777, and saw incoming packages with my friends public IP on them. Good then it should work! ...except it did not. I only got SYN packages, and sent no data back which is typical behavior when there is kernel level filtering on a linux server (causing a timeout, hang in "connecting"). This caused me quite some confusion for some 10-20 minutes or so until I found out that my distribution displayed empty (and open) iptable rulesets ~only~ because it had moved on to do everything in nftables instead. *facepalm*. So last step was to allow his IP to connect on port 7777 on my Linux server.

----

My first idea was to use a VPN instead, but I have lazy friends >_>
 

DETERMINATOR20

Terrarian
Sorry, but I'm not great in this field so I don't understand TOO much of it (just the gist of it). When I enter the netstat command, it returns the same thing as what your TCP line says, however with tcp4. I know my router automatically has UPnP on it, so that's probably not the issue. I don't really understand what the second paragraph means, but I tried to run the command tcpdump but it said the operation was not permitted. I know I have made no ip rulesets, but the issue still lies the port is now saying 'no route to host' on canyouseeme.org
 

Mutisk

Terrarian
Great to hear! :)
I'm aware that what I wrote was pretty technical, hence why I made it 'my story' more than a guide. But I belileve it can help being exposed to the very technical lingo just as a basis for study and googling material.

tcpdump need elevated privileges (become root or execute it with sudo). I encourage you to test it out. It's incredibly useful to be able to recognize the patterns of both two-way and one way network communications. But while using tcpdump is generally safe, be aware that as root/sudo you set aside most if not all 'safeguards'.

It's a classic rookie mistake to become root in a terminal (because using sudo results in more typing I guess), then make a dire mistake with copy-paste or recursive flags. :)
 
Top Bottom