TCP 연결이 어떤 인터페이스인지 알려면 어떻게해야합니까?


10

이더넷 인터페이스가 여러 개인 서버가 있습니다. 나가는 TCP 연결이 어떤 인터페이스를 통해 나가는 지 알 수있는 가장 쉬운 방법은 무엇입니까? "netstat -rn"의 결과는 그리스어이므로 귀하의 답변이 "로컬 라우팅 테이블을보십시오"라면, 상세하고 명확하게 알려주십시오.

답변:


13

나를 위해 내가 바로 사용 한 인터페이스 무엇을 볼 수있는 netstat -rnroute -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 연결과 관련 인터페이스가 표시됩니다. 모니터링 목적으로 좋은 터미널 기반입니다.


좋은 답변 루이스. 또한 명령을 사용할 수 있습니다route
팬더

1
오히려 말의 이동 모습보다는 그것이 어디에 있는지 않습니다 주어진 주소에 대한 트래픽이 곳, 정답이 라우팅 테이블 정보를 제공 말을해야 이동, 당신이 볼 수있는 것입니다 이동합니다.
psusi

8

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