查找路由到特定主机的接口


14

在多宿主Linux机器上,我如何找出将用于将数据包发送到特定主机的网络接口?我需要以编程方式执行此操作,而我不想自己解析和解释路由表。


这就是路由表的用途。我没有想到。
GioMac

Answers:




5

是的,正如迈克尔·汉普顿(Michael Hampton)建议的那样ip route。如果只需要接口,请使用此

ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}'

例如:

# ip=8.8.8.8
# iface=$( ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}' )
# echo $iface
eth1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.