{"id":105,"date":"2025-02-10T13:03:33","date_gmt":"2025-02-10T13:03:33","guid":{"rendered":"https:\/\/blog.thebowrings.co.uk\/?p=105"},"modified":"2025-02-10T13:10:16","modified_gmt":"2025-02-10T13:10:16","slug":"how-fix-poor-quality-audio-and-video-on-zoom-when-using-global-protect-vpn","status":"publish","type":"post","link":"https:\/\/blog.thebowrings.co.uk\/index.php\/2025\/02\/10\/how-fix-poor-quality-audio-and-video-on-zoom-when-using-global-protect-vpn\/","title":{"rendered":"How fix poor quality audio and video on Zoom when using Global Protect VPN"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Purpose:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As of Feb &#8217;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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Guide is for:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mac Users<\/li>\n\n\n\n<li>Tested on macOS: Sequoila 15.3<\/li>\n\n\n\n<li>Tested with: Global Protect VPN 6.2.6-857<\/li>\n\n\n\n<li>MacBook Pro 14inch M3 Pro (2023)<\/li>\n<\/ul>\n\n\n\n<nav class=\"wp-block-table-of-contents\"><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/blog.thebowrings.co.uk\/index.php\/2025\/02\/10\/how-fix-poor-quality-audio-and-video-on-zoom-when-using-global-protect-vpn\/#step-1-create-a-script\">Step 1: Create a script<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/blog.thebowrings.co.uk\/index.php\/2025\/02\/10\/how-fix-poor-quality-audio-and-video-on-zoom-when-using-global-protect-vpn\/#step-2-make-the-script-executable\">Step 2 &#8211; Make the script executable<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/blog.thebowrings.co.uk\/index.php\/2025\/02\/10\/how-fix-poor-quality-audio-and-video-on-zoom-when-using-global-protect-vpn\/#step-3-run-the-script\">Step 3 &#8211; Run the Script<\/a><\/li><\/ol><\/nav>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"step-1-create-a-script\">Step 1: Create a script<\/h4>\n\n\n\n<pre class=\"wp-block-code has-tertiary-background-color has-background has-small-font-size\" style=\"border-style:none;border-width:0px\"><code>#add_zoom_routes.sh\n\n#!\/bin\/bash\n\n# Define variables\nURL=\"https:\/\/assets.zoom.us\/docs\/ipranges\/ZoomMeetings.txt\"\nLOG_FILE=\"\/tmp\/add_zoom_routes.log\"\n\n\/\/This gets the gateway IP for your adaptor, this may need to be changed\nGATEWAY=$(netstat -rn | grep 'en0' | awk '$1 == \"default\" {print $2}')\n\nif &#91;&#91; -z \"$GATEWAY\" ]]; then\n    echo \"Error: Could not determine the adapter's default gateway.\"\n    exit 1\nfi\n\necho \"Using default gateway: $GATEWAY\"\n\n# Temporary file for storing subnets\nTEMP_FILE=\"\/tmp\/zoom_subnets.txt\"\n\n# Download the subnet list\ncurl -s $URL -o $TEMP_FILE\n\n# Check if the file was downloaded successfully\nif &#91;&#91; ! -s $TEMP_FILE ]]; then\n    echo \"Failed to download subnet list from $URL\"\n    exit 1\nfi\n\n# Add each subnet to the routing table\nwhile IFS= read -r subnet; do\n    if &#91;&#91; ! -z \"$subnet\" ]]; then\n        echo \"Adding route for $subnet via $GATEWAY\"\n        sudo route -n add -net $subnet $GATEWAY\n    fi\ndone &lt; \"$TEMP_FILE\"\n\n# Cleanup\nrm -f $TEMP_FILE\n\necho \"All routes added successfully!\"<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"step-2-make-the-script-executable\">Step 2 &#8211; Make the script executable<\/h4>\n\n\n\n<pre class=\"wp-block-code has-tertiary-background-color has-background\"><code>chmod +x add_zoom_routes.sh\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"step-3-run-the-script\">Step 3 &#8211; Run the Script<\/h4>\n\n\n\n<pre class=\"wp-block-code has-tertiary-background-color has-background\"><code>.\/add_zoom_routes.sh\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Notes<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You need <strong>sudo<\/strong> because modifying the routing table requires admin privileges.<\/li>\n\n\n\n<li>This script only <strong>adds<\/strong> routes; it does not check for existing ones.<\/li>\n\n\n\n<li>If you want it to <strong>run on startup<\/strong>, you can add it to a cron job or a launch agent.<\/li>\n\n\n\n<li>To view the routing table on your MacBook run <strong>netstat -rn<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As of Feb &#8217;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.<\/p>\n<p>This Guide helps work around these issues<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[28,29,26,27],"class_list":["post-105","post","type-post","status-publish","format-standard","hentry","category-vpn","tag-globalprotect","tag-macbook","tag-vpn","tag-zoom"],"_links":{"self":[{"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=105"}],"version-history":[{"count":9,"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/105\/revisions"}],"predecessor-version":[{"id":114,"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/105\/revisions\/114"}],"wp:attachment":[{"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/categories?post=105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.thebowrings.co.uk\/index.php\/wp-json\/wp\/v2\/tags?post=105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}