Last active
October 23, 2024 21:58
-
-
Save midwire/a8846d93fae93a0b1045 to your computer and use it in GitHub Desktop.
[Reset routing table on OSX] #osx #devops #networking
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Reset routing table on OSX | |
# display current routing table | |
echo "********** BEFORE ****************************************" | |
netstat -r | |
echo "**********************************************************" | |
for i in {0..4}; do | |
sudo route -n flush # several times | |
done | |
echo "********** AFTER *****************************************" | |
netstat -r | |
echo "**********************************************************" | |
echo "Bringing interface down..." | |
sudo ifconfig en1 down | |
sleep 1 | |
echo "Bringing interface back up..." | |
sudo ifconfig en1 up | |
sleep 1 | |
echo "********** FINALLY ***************************************" | |
netstat -r | |
echo "**********************************************************" |
@TryTryAgain Thanks for this. Yeah, the -n
option tells it to avoid trying to resolve hostnames which will indeed make it much faster. I usually like to see the hostnames but, certainly, if you prefer speed your version is the right choice. I'll probably make that be an option at some point when I have some free minutes. Cheers!
This script was a lifesaver. For longest time I've tried to fix this constant issue and gave up with often needing to reboot or
spend endless time thinking there was another cause but I always suspected it was a lingering / dynamically misconfigured routing issue but flushing once or twice never fixed, or something else in the short logic above did the trick. THANK YOU!
@Cinemacloud glad it helped. 👍
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You'll definitely want to make that a
netstat -rn
instead of justnestat -r
... I'm not sure why (I do have many other tun, ipv6, loop and link devices)Running this script took me half an hour because of running
netstat -r
three times and scrolling/streaming very slowly each time. Whereas when using -rn it's instantaneous.Also, if you need to change interfaces for clearing/defaulting back to wireless or in case your main isn't en1, mine was en0... this is how I modified your script:
...so I run it like
./reset_routing_table_macos.sh en0
when I need to reset that device vs the default/wired en1 (or set thespecificInt
default to whatever you use more often, but allow for the ability to specify something other than default and not needing to modify the script).