Skip to content

[BUG] Client connects to server but unable to tunnel connection when started as server mode on Docker Engine >= v23 on macOS #355

Closed as not planned
@puttyman

Description

@puttyman

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

  1. On an Intel Mac OSX install the latest docker desktop 4.34.2 at time of this issue. Latest version has docker engine v27.
  2. Start the a VPN Server container as per the documentation.
  3. On a mobile phone scan the QR code.
  4. Connect to the VPN on the client mobile phone.
  5. Try to navigate to Google.com
  6. Notice that the client successfully connects to the Server but the connection timeout.

Expected Behavior

  1. The client should be able to tunnel its connection via the VPN server.

Steps To Reproduce

  1. On an Intel Mac OSX install the latest docker desktop 4.34.2 at time of this issue. Latest version has docker engine v27.
  2. Start the a VPN Server container as per the documentation.
  3. On a mobile phone scan the QR code.
  4. Connect to the VPN on the client mobile phone.
  5. Try to navigate to Google.com
  6. Notice that the client successfully connects to the Server but the connection timeout.
  7. Stop the VPN server container.
  8. Install Docker Desktop v4.18.0 / Docker Engine V20 . See: https://gist.github.com/kupietools/2f9f085228d765da579f0f0702bec33c
  9. Start the a VPN Server container as per the documentation.
  10. On a mobile phone scan the QR code.
  11. Connect to the VPN on the client mobile phone.
  12. Try to navigate to Google.com
  13. Notice that the client successfully connects to the Server and now is able to navigate to Google.com

Environment

- OS: Mac OSX Sonoma
- How docker service was installed: Via Manual dmg download of Docker Desktop

CPU architecture

x86-64

Docker creation

docker run -d \
  --name=mobile-test-proxy \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  -e PUID=502 \
  -e PGID=20 \
  -e TZ=Melbourne/Australia \
  -e SERVERURL=10.0.0.80 \
  -e PEERS=2 \
  -e PEERDNS=10.0.10.1 \
  -e LOG_CONFS=true \
  -p 51820:51820/udp \
  -v /Users/mee/projects/mobile-vpn/config:/config \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --restart unless-stopped \
  linuxserver/wireguard

Container logs

2024-09-16 15:37:49 ───────────────────────────────────────
2024-09-16 15:37:49 GID/UID
2024-09-16 15:37:49 ───────────────────────────────────────
2024-09-16 15:37:49 
2024-09-16 15:37:49 User UID:    502
2024-09-16 15:37:49 User GID:    20
2024-09-16 15:37:49 ───────────────────────────────────────
2024-09-16 15:37:49 Linuxserver.io version: 1.0.20210914-r4-ls51
2024-09-16 15:37:49 Build-date: 2024-09-12T11:23:25+00:00
2024-09-16 15:37:49 ───────────────────────────────────────
2024-09-16 15:37:49     
2024-09-16 15:37:49 Uname info: Linux a4097bdb9bb1 5.15.49-linuxkit #1 SMP Tue Sep 13 07:51:46 UTC 2022 x86_64 GNU/Linux
2024-09-16 15:37:49 **** It seems the wireguard module is already active. Skipping kernel header install and module compilation. ****
2024-09-16 15:37:49 **** As the wireguard module is already active you can remove the SYS_MODULE capability from your container run/compose. ****
2024-09-16 15:37:49 ****     If your host does not automatically load the iptables module, you may still need the SYS_MODULE capability.     ****
2024-09-16 15:37:49 **** Server mode is selected ****
2024-09-16 15:37:49 **** External server address is set to 10.0.0.80 ****
2024-09-16 15:37:49 **** External server port is set to 51820. Make sure that port is properly forwarded to port 51820 inside this container ****
2024-09-16 15:37:49 **** Internal subnet is set to 10.13.13.0 ****
2024-09-16 15:26:13 [#] ip link add wg0 type wireguard
2024-09-16 15:26:13 [#] wg setconf wg0 /dev/fd/63
2024-09-16 15:26:13 [#] ip -4 address add 10.13.13.1 dev wg0
2024-09-16 15:26:13 [#] ip link set mtu 65455 up dev wg0
2024-09-16 15:26:13 [#] ip -4 route add 10.13.13.3/32 dev wg0
2024-09-16 15:26:13 [#] ip -4 route add 10.13.13.2/32 dev wg0
2024-09-16 15:26:13 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
2024-09-16 15:35:05 [#] ip link delete dev wg0
2024-09-16 15:35:06 [#] iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE
2024-09-16 15:37:50 [#] ip link add wg0 type wireguard
2024-09-16 15:37:50 [#] wg setconf wg0 /dev/fd/63
2024-09-16 15:37:50 [#] ip -4 address add 10.13.13.1 dev wg0
2024-09-16 15:37:50 [#] ip link set mtu 1420 up dev wg0
2024-09-16 15:37:50 [#] ip -4 route add 10.13.13.3/32 dev wg0
2024-09-16 15:37:50 [#] ip -4 route add 10.13.13.2/32 dev wg0
2024-09-16 15:37:50 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
2024-09-16 15:37:49 **** AllowedIPs for peers 0.0.0.0/0, ::/0 ****
2024-09-16 15:37:49 **** Peer DNS servers will be set to 10.247.16.1 ****
2024-09-16 15:37:49 **** Server mode is selected ****
2024-09-16 15:37:49 **** No changes to parameters. Existing configs are used. ****
2024-09-16 15:37:49 [custom-init] No custom files found, skipping...
2024-09-16 15:37:49 .:53
2024-09-16 15:37:49 CoreDNS-1.11.1
2024-09-16 15:37:49 linux/amd64, go1.22.5, 
2024-09-16 15:37:50 **** Found WG conf /config/wg_confs/wg0.conf, adding to list ****
2024-09-16 15:37:50 **** Activating tunnel /config/wg_confs/wg0.conf ****
2024-09-16 15:37:50 **** All tunnels are now active ****
2024-09-16 15:37:50 [ls.io-init] done.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions