查找面向外部的物理接口

查找面向外部的物理接口

我想知道如何编写 bash 脚本来检查哪个接口有外部连接(eth0、eth1、wlan0、em1 和 em2),这样我就可以获得一个在任何机器上工作的脚本,而不必在我的接口中硬编码接口脚本

答案1

使用ip route show并提取感兴趣的接口名称。例如,要提取可直接访问默认网关的接口的名称:

$ ip route show | sed -e 's/^default via [0-9.]* dev \(\w\+\).*/\1/'
ens192

用于 IPv6 使用ip -6 route show

原来的问题要求具有外部连接的接口,这比直接访问默认网关的接口更通用。我无法对此进行测试,但可能0.0.0.0/0在输出中查找ifip route show会有所帮助。

相关内容