我正在尝试使用目标 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
Run Code Online (Sandbox Code Playgroud)
我的目标是使用目标 0.0.0.0 ping 默认网关;因此,即“133.88.31.70”;但是由于使用了'grep',这个返回了一个列表。
问题是:我如何只获得默认网关?我的 bash 脚本需要它来识别网络连接是否已启动。
Dav*_*ley 23
DEFAULT_ROUTE=$(ip route show default | awk '/default/ {print $3}')
ping -c 1 $DEFAULT_ROUTE
Run Code Online (Sandbox Code Playgroud)
这应该可以解决您的问题。
小智 6
ip route show default 0.0.0.0/0
Run Code Online (Sandbox Code Playgroud)
此命令比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
Run Code Online (Sandbox Code Playgroud)
ip route show default show
我的所有路线不仅是默认路线ip route get
不接受默认值或0.0.0.0/0作为参数 归档时间: |
|
查看次数: |
26479 次 |
最近记录: |