Ubuntu 24.04 VM randomly disappears from LAN in Bridged mode (MacBook Pro M3 Max, Parallels 20.4.1)

Discussion in 'macOS Virtual Machine' started by Aleksabdr, Nov 4, 2025 at 8:53 AM.

  1. Aleksabdr

    Aleksabdr

    Messages:
    2
    Hi everyone,

    I've been struggling with an issue for days and finally found a reliable fix, so I'm sharing it here.

    Setup:
    • MacBook Pro M3 Max (Apple Silicon)
    • Parallels Desktop 20.4.1 (build 55996)
    • Guest OS: Ubuntu 24.04 ARM
    • Network mode: Bridged - Default Adapter

    Problem:
    Every 1-3 minutes, my Ubuntu VM became unreachable from the Mac host and the LAN:
    • SSH and pings to the guest stopped working.
    • Inside the VM everything still worked fine - Internet, outgoing pings, etc.
    • If I pinged the host (from inside the VM), connectivity was instantly restored -- for a minute or two -- until it dropped again.

    So the network inside the VM never actually went down -- it just stopped being visible to other devices. On the Mac, arp -a showed an "incomplete" entry for the VM's IP, so it looked like an ARP cache aging issue in Parallels Bridge mode.

    Root cause (most likely):
    The Parallels bridge driver seems to stop sending broadcast ARP packets when the guest is idle, so the Mac forgets its MAC mapping after a short timeout. If the guest VM doesn't transmit anything for ~60 seconds, the host drops it from the ARP table and the connection dies.

    Solution:
    Keep the bridge alive by sending a tiny ping from the VM to the host every 30 seconds. This forces ARP refresh without breaking anything or restarting services.

    1️⃣ Create the script
    sudo nano /usr/local/bin/ping_host_keepalive.sh

    Paste this:
    #!/bin/bash
    HOST="192.168.1.18" # replace with your Mac host IP
    ping -c 1 -W 2 $HOST > /dev/null

    2️⃣ Make it executable
    sudo chmod +x /usr/local/bin/ping_host_keepalive.sh

    3️⃣ Add to cron
    sudo crontab -e

    Add two lines (to run every 30 seconds):
    * * * * * /usr/local/bin/ping_host_keepalive.sh
    * * * * * sleep 30; /usr/local/bin/ping_host_keepalive.sh


    That's it. Your VM will now send a lightweight ping every 30 seconds, keeping the ARP entry active and the connection stable.

    After doing this, my Ubuntu VM has been completely stable -- no more network drops, no manual resets.



    If any Parallels engineers see this -- please check the bridge ARP timeout logic on Apple Silicon hosts. The guest is still alive and pingable from inside, so it shouldn't disappear from the network like that.
     

Share This Page