Please keep in mind I know little about networking, but I’ve done tests that might give a clue of what’s happening.
A friend of mine has a computer that runs Windows 10, and another friend of mine is an Arch Linux user, as am I. We set up a VPN with ZeroTier to play some old games that won’t allow specifying an IP address and detect ongoing games over LAN instead.
For whatever reason, the games on Linux won’t find any games no matter where they are hosted, but it is possible to do so from Windows, which forces us to host and my Windows friend to join. Maybe it’s like the broadcasting packets can’t reach our games on Linux?
Here are the tests I’ve done:
- Connecting to the network
$ sudo zerotier-cli join **[REDACTED]** [sudo] password for manuel: 200 join OK $ nmcli connection modify ztc3qrelk2 ipv6.route-metric 1 $ nmcli connection up ztc3qrelk2 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
- Tried a game that allows to connect both specifying an IP and auto-listing games over the LAN network, Sven Co-op.
a) If a Linux machine is the host, the game on Windows can detect it.
b) If a Linux machine is the host, the game on the other Linux machine can’t detect it.
c) If a Windows machine is the host, the game on Linux can’t detect it.
d) Connecting specifying the IP address works from anywhere on the VPN.
e) If both Linux computers happen to be on the same physical network, they can detect each others’ games automatically while also being part of the VPN.
Some extra details:
$ nmcli device status DEVICE TYPE STATE CONNECTION wlp3s0 wifi connected TP ZELDA ztc3qrelk2 tun connected ztc3qrelk2 p2p-dev-wlp3s0 wifi-p2p disconnected -- enp2s0 ethernet unavailable -- lo loopback unmanaged --
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 60:e3:27:96:5c:0e brd ff:ff:ff:ff:ff:ff inet 192.168.0.7/24 brd 192.168.0.255 scope global dynamic noprefixroute wlp3s0 valid_lft 3562sec preferred_lft 3562sec inet6 fe80::ea8d:bf6e:1bd4:691/64 scope link noprefixroute valid_lft forever preferred_lft forever
$ ip addr show ztc3qrelk2 4: ztc3qrelk2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether 72:67:a5:69:ff:7b brd ff:ff:ff:ff:ff:ff inet 10.241.19.92/16 brd 10.241.255.255 scope global noprefixroute ztc3qrelk2 valid_lft forever preferred_lft forever inet6 fe80::d0f8:b78:dc61:881/64 scope link noprefixroute valid_lft forever preferred_lft forever
$ nmcli d show GENERAL.DEVICE: wlp3s0 GENERAL.TYPE: wifi GENERAL.HWADDR: 60:E3:27:96:5C:0E GENERAL.MTU: 1500 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: TP ZELDA GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1 IP4.ADDRESS: 192.168.0.7/24 IP4.GATEWAY: 192.168.0.1 IP4.ROUTE: dst = 0.0.0.0/0, nh = 192.168.0.1, mt = 600 IP4.ROUTE: dst = 192.168.0.0/24, nh = 0.0.0.0, mt = 600 IP4.DNS: 220.127.116.11 IP4.DNS: 18.104.22.168 IP6.ADDRESS: fe80::ea8d:bf6e:1bd4:691/64 IP6.GATEWAY: -- IP6.ROUTE: dst = fe80::/64, nh = ::, mt = 600 GENERAL.DEVICE: ztc3qrelk2 GENERAL.TYPE: tun GENERAL.HWADDR: 72:67:A5:69:FF:7B GENERAL.MTU: 2800 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: ztc3qrelk2 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/3 IP4.ADDRESS: 10.241.19.92/16 IP4.GATEWAY: -- IP4.ROUTE: dst = 10.241.0.0/16, nh = 0.0.0.0, mt = 1 IP6.ADDRESS: fe80::d0f8:b78:dc61:881/64 IP6.GATEWAY: -- IP6.ROUTE: dst = fe80::/64, nh = ::, mt = 1 [...]