이더넷 인터페이스가 여러 개인 서버가 있습니다. 나가는 TCP 연결이 어떤 인터페이스를 통해 나가는 지 알 수있는 가장 쉬운 방법은 무엇입니까? “netstat -rn”의 결과는 그리스어이므로 귀하의 답변이 “로컬 라우팅 테이블을보십시오”라면, 상세하고 명확하게 알려주십시오.
답변
나를 위해 내가 바로 사용 한 인터페이스 무엇을 볼 수있는 netstat -rn
나route -n
cyrex@cyrex:~$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.48.0.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.48.0.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0
또는 netstat -r
cyrex@cyrex:~$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192-48-0-1.dyn. 0.0.0.0 UG 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
192.48.0.0 * 255.255.224.0 U 0 0 0 eth0
두 경우 모두 끝에 인터페이스 이름이 표시됩니다.이 경우에는 eth0입니다.
이 명령으로 제공되는 정보는 다음과 같습니다 (출처는 here ).
대상 -대상 네트워크 또는 대상 호스트
게이트웨이 -게이트웨이 주소 또는 *
설정되지 않은 경우.
Genmask- 대상 네트워크의 넷 마스크.
255.255.255.255 for the host destination.
0.0.0.0 for the default route.
플래그 -가능한 플래그는 다음과 같습니다.
U (route is up)
H (target is a host)
G (using gateway)
R (reinstate route for dynamic routing)
D (dynamically installed by daemon or redirect)
M (modified from routing daemon or redirect)
A (installed by addrconf)
C (cache entry)
! (reject route)
MSS- 이 경로를 통한 TCP 연결의 기본 최대 세그먼트 크기입니다.
창 -이 경로를 통한 TCP 연결의 기본 창 크기입니다.
irtt- 초기 RTT (왕복 시간). 커널은 이것을 사용하여 응답을 기다리지 않고 최상의 TCP 프로토콜 매개 변수를 추측합니다.
Iface- 이 경로에 대한 패킷이 전송 될 인터페이스입니다.
다른 필드는 다음과 같습니다.
Metric (메트릭) -대상까지의 거리입니다 (일반적으로 홉으로 계산). 최근 커널에서는 사용되지 않지만 라우팅 데몬에서는 필요할 수 있습니다.
Ref- 이 경로에 대한 참조 수 (Linux 커널에서는 사용되지 않습니다.)
사용 -경로에 대한 조회 수입니다. -F 및 -C의 사용에 따라 이는 라우트 캐시 미스 (-F) 또는 적중 (-C)입니다.
HH (캐시 전용)-캐시 된 경로의 하드웨어 헤더 캐시를 참조하는 ARP 항목 및 캐시 된 경로 수입니다. 캐시 된 경로 (예 : lo)의 인터페이스에 하드웨어 주소가 필요하지 않은 경우 -1이됩니다.
Arp (캐시 전용)-캐시 된 경로의 하드웨어 주소가 최신인지 여부입니다.
지금 당장 질문에. 내가 지금 기억할 수있는 가장 쉬운 방법은 (항상 똑같이하는 여러 가지 방법이 있음)를 사용하는 것 iptraf
입니다. 설치 만하면됩니다.
sudo apt-get install iptraf
루트 권한으로 실행하십시오. sudo iptraf
의 메뉴에서 iptraf
선택 IP 트래픽 모니터 한 다음 선택 모든 인터페이스를 사용 . 모든 TCP 연결과 관련 인터페이스가 표시됩니다. 모니터링 목적으로 좋은 터미널 기반입니다.
답변
ip
명령을 사용하여 커널 라우팅 테이블을 쿼리 할 수 있습니다 . 그 route get
부속 명령은 정확히 어떻게 커널 의지 경로 목적지 주소로 패킷을 말할 것이다 :
$ ip route get to 10.0.2.2
10.0.2.2 dev eth0 src 10.0.2.15
이므로
$ ip route get to 192.168.3.5
192.168.3.5 via 10.0.2.2 dev eth0 src 10.0.2.15
과
$ ip route get to 127.0.1.1
local 127.0.1.1 dev lo src 127.0.0.1