특정 호스트로 라우팅하기위한 인터페이스 찾기


14

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


이것이 라우팅 테이블의 목적입니다. 나는 그렇지 않다고 생각하지 않습니다.
GioMac

답변:


29

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

ip route show to match 198.252.206.16

완전한! 감사합니다.
Rob H


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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.