Purpose:
As of Feb ’25, There appear to be on-going issues with Zoom and GlobalProtect VPN, even when the zoom app is whitelisted and the dns requests for *.zoom.us are correctly setup the VPN client fails to bypass the VPN.
The result of these issues causes performance problems, breaking audio and laggy video. This guide provides a script to manually add routes, it is possible to automate the exection of this script but thats for another one.
Guide is for:
- Mac Users
- Tested on macOS: Sequoila 15.3
- Tested with: Global Protect VPN 6.2.6-857
- MacBook Pro 14inch M3 Pro (2023)
Step 1: Create a script
#add_zoom_routes.sh
#!/bin/bash
# Define variables
URL="https://assets.zoom.us/docs/ipranges/ZoomMeetings.txt"
LOG_FILE="/tmp/add_zoom_routes.log"
//This gets the gateway IP for your adaptor, this may need to be changed
GATEWAY=$(netstat -rn | grep 'en0' | awk '$1 == "default" {print $2}')
if [[ -z "$GATEWAY" ]]; then
echo "Error: Could not determine the adapter's default gateway."
exit 1
fi
echo "Using default gateway: $GATEWAY"
# Temporary file for storing subnets
TEMP_FILE="/tmp/zoom_subnets.txt"
# Download the subnet list
curl -s $URL -o $TEMP_FILE
# Check if the file was downloaded successfully
if [[ ! -s $TEMP_FILE ]]; then
echo "Failed to download subnet list from $URL"
exit 1
fi
# Add each subnet to the routing table
while IFS= read -r subnet; do
if [[ ! -z "$subnet" ]]; then
echo "Adding route for $subnet via $GATEWAY"
sudo route -n add -net $subnet $GATEWAY
fi
done < "$TEMP_FILE"
# Cleanup
rm -f $TEMP_FILE
echo "All routes added successfully!"
Step 2 – Make the script executable
chmod +x add_zoom_routes.sh
Step 3 – Run the Script
./add_zoom_routes.sh
Notes
- You need sudo because modifying the routing table requires admin privileges.
- This script only adds routes; it does not check for existing ones.
- If you want it to run on startup, you can add it to a cron job or a launch agent.
- To view the routing table on your MacBook run netstat -rn
Leave a Reply