- Mirror of Google Sites
- Download and extract the latest Lanemu release by selecting your OS under Packages
- Launch Lanemu
- Windows
- Run Lanemu.exe
- Linux
- Run Lanemu.desktop or Lanemu-pkexec / Lanemu-run0
- Windows
- Do you want to join 'Default network'?
- Click No
- Click the Options icon and select Global tab
- Specify Your Name
- Specify any port in "Listen on Port" (e.g., 5521)
- At least one user should enable UPnP or forward the port(s) on the router
- All used TCP and UDP ports are displayed in the Protocol selection
- Legacy TCP port is unnecessary if all users are able to connect via RUDP
- If nobody can set up port forwarding (stuck behind NAT)
- Lanemu might be able to connect peers by using STUN and UDP hole-punching
- STUN only works if all peers set Protocol to RUDP + UDP or RUDP
- Created network must include BitTorrent Trackers / DHT Nodes
- Peers behind Symmetric NAT won't be able to connect to anyone
- In case of Symmetric NAT, all users can try hyper-nat (everyone must set Protocol to TCP + UDP)
- Windows
- Download the latest forwarder.zip under Assets
- Extract forwarder.zip to Lanemu folder
- Linux
- Install npm
- Download the latest Source code (tar.gz) under Assets
- Extract hyper-nat.tar.gz to Lanemu folder
- Windows
- If connection via hyper-nat is unsuccessful, all users can route Tailscale or other similar VPN through Lanemu
- Lanemu allows Layer 3 VPNs to work in games that require Broadcast / Multicast
- Replace all instances of PublicIP:Port with Tailscale or other VPN IP (e.g., 100.111.88.108:5521)
- Alternatively, one user (Host PC) can create a tunnel (e.g., playit.gg)
- Lanemu supports TCP+UDP or UDP-only / TCP-only tunnels
- Tunnel type requirements (TunnelIP:TunnelPort -> 127.0.0.1:LanemuPort)
- TCP+UDP
- Lanemu Protocol: RUDP + UDP (Legacy TCP) or TCP + UDP
- Example: tcp-udp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:6411
- TunnelPort and LanemuPort must be identical
- RUDP + UDP needs 1 tunnel with 2 sequent ports (e.g., 6411 & 6412)
- STUN server field in the Network tab must be empty
- Lanemu Protocol: RUDP (Legacy TCP)
- Example: tcp-udp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:5521
- TunnelPort and LanemuPort can be the same or different
- Lanemu Protocol: RUDP + UDP (Legacy TCP) or TCP + UDP
- UDP-only
- Lanemu Protocol: RUDP + UDP
- Example: udp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:6411
- TunnelPort and LanemuPort must be identical
- RUDP + UDP needs 1 tunnel with 2 sequent ports (e.g., 6411 & 6412)
- STUN server field in the Network tab must be empty
- Lanemu Protocol: RUDP
- Example: udp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:5521
- TunnelPort and LanemuPort can be the same or different
- Lanemu Protocol: RUDP + UDP
- TCP-only
- Lanemu Protocol: TCP
- Example: tcp-tunnel.gl.at.ply.gg:6411 -> 127.0.0.1:5521
- TunnelPort and LanemuPort can be the same or different
- Lanemu Protocol: TCP
- TCP+UDP
- Lanemu might be able to connect peers by using STUN and UDP hole-punching
- At least one user should enable UPnP or forward the port(s) on the router
- Click OK
- Steps for Host PC
- If you are using hyper-nat
- Modify hyper-nat options.json file
{ "schema": [ { "mode": "server", "proto": "tcp", "port": "5521", "host": "127.0.0.1", "secret": "SomeUniqueTextThatIsTheSameForAllPorts" }, { "mode": "server", "proto": "udp", "port": "5521", "host": "127.0.0.1", "secret": "SomeUniqueTextThatIsTheSameForAllPorts" } ] } - Launch hyper-nat
- Windows
- Run hyper-nat.exe
- Linux
- Open the Terminal in Lanemu -> hyper-nat folder
npm installnpm run start
- Open the Terminal in Lanemu -> hyper-nat folder
- Windows
- Windows : Allow hyper-nat through Windows Firewall
- Check both Private and Public networks
- Click Allow access
- Copy your public key from the Console / Terminal
- Windows
- Highlight it and press CTRL + C
- Linux
- Highlight it and press CTRL + SHIFT + C
- Windows
- Send your public key to every Client
- Modify hyper-nat options.json file
- Create a network
- Click the New Network icon
- Select Simple tab
- Specify Network Name
- Select Advanced tab
- If you are using UPnP / Port Forwarding or Tunneling Services
- Specify your PublicIP:Port or TunnelIP:Port in Known Hosts
- Example: 82.129.80.111:5521 or udp-tunnel.gl.at.ply.gg:6411
- Specify your PublicIP:Port or TunnelIP:Port in Known Hosts
- If you are using hyper-nat
- Specify these network settings
- Known Hosts: 127.0.0.1:5521
- BitTorrent Trackers: Empty
- BitTorrent DHT Nodes: Empty
- Specify these network settings
- If you are using UPnP / Port Forwarding or Tunneling Services
- Click OK
- Windows : Allow OpenJDK through Windows Firewall
- Check both Private and Public networks
- Click Allow access
- Create an invitation
- Click the Invite Someone icon
- Check Allow invitation of others
- Click Generate Invitation
- Click Save to a File
- Click Close
- Send the invitation file to every Client
- You may also send a pre-configured profile.ini file that automatically accepts your invitation on first launch
default.autoInvite=invitation_file.txt
- You may also send a pre-configured profile.ini file that automatically accepts your invitation on first launch
- If you are using hyper-nat
- Steps for Client PC
- If you are using hyper-nat
- Temporarily close Lanemu
- Right click Lanemu tray icon and select Quit
- Modify hyper-nat options.json file
{ "schema": [ { "mode": "client", "proto": "tcp", "port": "5521", "serverport": "5521", "publicKey": "CopyPasteTheServerPublicKeyHere" }, { "mode": "client", "proto": "udp", "port": "5521", "serverport": "5521", "publicKey": "CopyPasteTheServerPublicKeyHere" } ] } - Launch hyper-nat
- Windows
- Run hyper-nat.exe
- Linux
- Open the Terminal in Lanemu -> hyper-nat folder
npm installnpm run start
- Open the Terminal in Lanemu -> hyper-nat folder
- Windows
- Windows : Allow hyper-nat through Windows Firewall
- Check both Private and Public networks
- Click Allow access
- Wait until hyper-nat establishes connection to the server
- The window closes if connection fails, you might have to retry several times
- Relaunch Lanemu
- Temporarily close Lanemu
- Join a network
- Click the Accept Invitation icon
- Click Load from File
- Click OK
- Windows : Allow OpenJDK through Windows Firewall
- Check both Private and Public networks
- Click Allow access
- Wait for connection
- If connection did not occur automatically
- Option 1 : Click the Connect to Known IPs icon at the bottom
- Option 2 : Click the Information icon at the bottom and select Connections tab
- If you are using hyper-nat
- Enter 127.0.0.1:Port (e.g., 127.0.0.1:5521) next to the Connect To button and click it
- If you are using other connection method
- Enter a peer PublicIP:Port or TunnelIP:Port next to the Connect To button and click it
- If you are using hyper-nat
- If connection did not occur automatically
- If you are using hyper-nat
- Install libnotify and libayatana-appindicator to mitigate tray issues
- Enable DirectPlay via Winetricks or Protontricks / Lutris / Bottles
- Disable SSDP Discovery
- Open Control Panel
- Click System and Security
- Click Administrative Tools
- Open Services
- Right click SSDP Discovery and select Properties
- Click Stop
- Startup type: Disabled
- Click Apply and OK
- Enable DirectPlay and Media Features
- Open Control Panel
- Click Programs
- Click Turn Windows features on or off
- Expand Legacy Components
- Check DirectPlay
- Check Media Features
- Click OK
- Allow DirectPlay and game through Windows Firewall
- Open Control Panel
- Click System and Security
- Click Allow an app through Windows Firewall
- Click Change settings
- Click Allow another app
- Click Browse
- DirectPlay
- Go to C:\Windows\SysWOW64
- Select dplaysvr.exe and click Open
- DirectPlay 8 (x32)
- Go to C:\Windows\System32
- Select dpnsvr.exe and click Open
- DirectPlay 8 (x64)
- Go to C:\Windows\SysWOW64
- Select dpnsvr.exe and click Open
- Game
- Go to game directory
- Select game executable and click Open
- DirectPlay
- Click Network types
- Check Private and Public
- Click OK
- Click Add
- Click OK
- Visit PCGamingWiki for game patches / fixes
- Use DXVK or DXVK-Sarek for DirectX 8/9 games
- Use dgVoodoo or DxWrapper for older DirectX / DirectDraw games
- Use Special K for improved frame pacing and other advanced features
You can ignore this "error", it only appears if the exposed app hasn't been launched for a while.
I just opened Lanemu a bit later and everything went back to normal.
There's another similar project being developed, but the client config only seems to support one protocol (TCP or UDP) at a time: