Heyo,
I am attempting to setup a VPN server on my Raspberry Pi with a local bridge to my home’s LAN so that my brothers, who live elsewhere, can play Civilization 6 with me on their iPhones. I have set up the VPN and bridge according to this guide and am able to connect to the VPN and can even play a multiplayer game between my iPad and iPhone.
But here’s the catch: I can only play the multiplayer game when the game host device (my iPad in this case) is connected to the VPN and the other device (my iPhone) is connected to my WiFi. The game cannot be played when both devices are connected to the VPN. The game also cannot be played when the WiFi-connected device (iPhone) attempts to be the game host.
After investigating with Wireshark I found that the game lobby relies on UDP broadcasting which the VPN somehow messes up. I am not well-versed in networking but am here to learn and am willing to edit this post to make it useful to as many other non-networking experts as possible. Thank you.
I expect that this question is closely related but the answer is incompatible with the fact that we need to play the game on iOS devices.
Details:
I am using SoftEther (4.34) for my server, installed on a Raspberry Pi 3 B+
My RPi is connected directly via ethernet to my router
The VPN type is L2TP to allow iOS devices to connect
Seems like the VPN server is not forwarding broadcast frames from outside. Try looking into turning on bridging mode on the server which would put devices into the same L2 domain so broadcast frames can be sent and received.
I can’t help, but you are giving me flashbacks of using Hamachi to play DOTA 1 with my friends in multiple cities (and that one guy from South Korea that always showed up).
I’m not familiar with SoftEther, but with OpenVPN you need to specify the client-to-client directive in your server configuration to allow clients to talk to each other. Perhaps SoftEther has a similar configuration.
Thanks for the feedback! I think you are correct in saying that the VPN server is not forwarding broadcast frames from the outside.
Just to make sure I’m understanding correctly, to implement your suggestion, each of my brothers would need to setup a machine with a VPN bridge leading to my server as described here. Is that right?
I considered ZeroTier (admittedly briefly). What steered me away from it was this reddit post which describes identical symptoms to the ones I am experiencing; they are able to ping one another but their games could not find one another’s devices. They also didn’t find a resolution.
I would be curious to see if anyone has used ZeroTier to play LAN games that rely on UDP broadcasts to locate players’ devices like Civ does.
I haven’t gamed on WireGuard, but this is what I use for my VPN and the IOS client is pretty easy to use. If you have a raspberry pi all you have to do is use pivpn to set it up and test it. Not sure how it handles UDP stuff, but it’s super easy to set up and I would consider it worth a shot for sure.
So I looked into it that, going as far as to setup a ZeroTier network. Unfortunately, the ethernet bridging feature that I would need is not supported on mobile devices
So I looked into it further, going as far as to setup a ZeroTier network. Unfortunately, the ethernet bridging feature that I would need is not supported on mobile devices