Gateway
在給定目的地的情況下,如何在 LINUX 中獲取預設網關?
我正在嘗試使用目標 0.0.0.0 獲取預設網關
我使用了這個命令:netstat -rn | grep 0.0.0.0
它返回此列表:
Destination - Gateway - Genmask - Flags - MSS - Window - irtt - Iface 10.9.9.17 - 0.0.0.0 - 255.255.255.255 - UH - 0 0 0 - tun0 133.88.0.0 - 0.0.0.0 - 255.255.0.0 - U - 0 0 0 - eth0 0.0.0.0 - 133.88.31.70 - 0.0.0.0 - UG - 0 0 0 - eth0
我的目標是使用目標 0.0.0.0 ping 預設網關;因此,即“133.88.31.70”;但是由於使用了“grep”,這個返回了一個列表。
問題是:我如何只獲得預設網關?我的 bash 腳本需要它來辨識網路連接是否啟動。
DEFAULT_ROUTE=$(ip route show default | awk '/default/ {print $3}') ping -c 1 $DEFAULT_ROUTE
這應該可以解決您的問題。
ip route show default 0.0.0.0/0
ip route | grep
此命令比具有許多(10000+)路由的系統上的預設命令要快得多例如,從我的路由器中查找完整的 BGP 和手動預設路由作為備份
router:~# time ip route show default 0.0.0.0/0 default via XXX.XXX.192.254 dev eth0.123 real 0m0.707s router:~# time ip route | grep default default via XXX.XXX.192.254 dev eth0.123 real 0m8.596s
- 因為
ip route show default show
我的所有路線不僅是預設路線- 因為
ip route get
不接受預設值或0.0.0.0/0作為參數