포트가 여러 인터페이스를 사용하여 통신할 수 있습니까?

포트가 여러 인터페이스를 사용하여 통신할 수 있습니까?

다음 명령에 대한 나의 이해는 다음과 같습니다.

tcpdump -i any -nn port X
  • tcpdump-> 패킷 캡처 서비스를 시작합니다.

  • -i any -> 모든/모든 인터페이스에서.

  • -nn -> 호스트 주소를 이름(DNS 조회를 피하기 위해)이나 프로토콜 및 포트 번호로 변환하지 마십시오.

  • port X->이 규칙을 포트 X에 적용

위의 내용이 정확하다고 가정하면 이 명령은 포트(프로세스의 논리적 끝점) X가 사용 가능한 모든 인터페이스를 사용하여 다른 프로세스/장치 등과 통신할 수 있음을 의미하는 것 같습니다. 이 tcp 덤프는 사용 가능한 모든 패킷에서 모든 패킷을 캡처합니다. 인터페이스.

특정 포트(명령?)에 대해 사용 가능한 모든 인터페이스 목록을 볼 수 있는 방법이 있습니까?

답변1

포트 번호는 TCP 및 UDP 패킷 헤더의 일부이며 사용되는 포트 번호는 통신에 사용되는 물리적 인터페이스와 거의 직교합니다. (반면에 인터페이스는 IP 주소에 바인딩되는 경우가 많지만 꼭 필요한 것은 아닙니다.)

하나의 애플리케이션이 단일 IP 주소/인터페이스에 바인딩될 수 있으며, 그러면 동일한 포트 번호를 사용하여 두 개의 애플리케이션이 서로 다른 IP 주소에 바인딩될 수도 있습니다. 또는 개별 애플리케이션이 각각 다른 인터페이스에 바인딩되고 모든 인터페이스에서 동일한 포트 번호를 사용할 수 있습니다. 아니면 다른 것을 사용하세요. 포트 번호와 인터페이스는 서로 다른 계층에 존재하므로 특정 인터페이스에서 어떤 포트를 사용할 수 있는지에 대한 제한이 없습니다.

또한 TCP와 UDP 모두 1(0)에서 65535 사이의 포트 번호를 갖지만 숫자 공간은 다릅니다. 한 애플리케이션은 TCP 포트 1234를 사용할 수 있고, 다른 애플리케이션은 UDP 포트 1234를 사용할 수 있습니다.


용어와 관련하여 포트가 인터페이스를 "사용한다"거나 인터페이스가 특정 포트에 "사용 가능"하다고 말하는 것은 의미가 없습니다. 포트 번호는 단지 식별자일 뿐이며 아무 것도 "수행"하지 않습니다.

마지막 문장도 포트와 명령을 혼동하는 것처럼 보이지만 약간 부정확합니다. 많은 애플리케이션에는 잘 알려진 포트(SSH는 TCP/22를 사용하고, HTTP는 TCP/80을 사용하는 등)가 있지만 이를 강제하는 것은 없습니다. 포트 2222에서 SSH 서버를 실행하고 포트 22에서 완전히 다른 서버를 실행할 수 있습니다.

관련 정보