특정 호스트로 라우팅하기위한 인터페이스 찾기 멀티 홈 Linux 시스템에서 특정 호스트로 패킷을

멀티 홈 Linux 시스템에서 특정 호스트로 패킷을 보내는 데 어떤 네트워크 인터페이스가 사용되는지 어떻게 알 수 있습니까? 프로그래밍 방식 으로이 작업을 수행해야하며 라우팅 테이블을 직접 구문 분석하고 해석하지 않습니다.



답변

ip route이것을 위해 사용하십시오 . 예를 들어 :

ip route show to match 198.252.206.16

답변

더 짧은 옵션 :

ip route get 172.29.42.94

답변

예, 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