다음 명령을 사용하여 홈 LAN에 있는 한 컴퓨터에서 동일한 LAN에 있는 다른 컴퓨터로 메시지를 보내려고 합니다.인터넷 고양이. 이것은 bash에서 실행하는 코드입니다.컴퓨터 1
nc -l -p 31337
존재하다컴퓨터 2(사설 IP 주소 192.168.1.10)
nc 192.168.1.10 31337
문제는 한 터미널에서 메시지를 보낼 때 다른 컴퓨터에는 아무 것도 나타나지 않고 그 반대의 경우도 마찬가지라는 것입니다. 동일한 PC에서 동일한 작업을 수행하지만 두 개의 터미널 창이 열려 있으면 모든 것이 잘 작동합니다. 그러나 동일한 컴퓨터의 한 터미널에서 다른 터미널로 메시지를 보내는 것은 의미가 없습니다. 내가 원하는 것은 내 집 LAN의 한 컴퓨터에서 다른 컴퓨터로 보내는 것입니다.
PS 저는 두 컴퓨터 모두에서 Ubuntu 16.04.4를 실행하고 있습니다.
답변1
이를 테스트하는 방법은 다음과 같습니다.
tcpdump
1) PC1 및 PC2, 부팅 또는 wireshark
LAN 인터페이스에서 두 번째 창을 엽니다 tcpdump -ni eth0
.
2) ping
PC1에서 PC2로, PC2에서 PC1로 작업을 수행합니다. ping 응답을 받았는지 확인하고 덤프에서 패킷을 볼 수 있는지 확인하십시오.
핑 응답이 표시되지 않으면 네트워크 설정에 문제가 있는 것입니다. 찾아서 고쳐보세요.
3) 지금 사용하여 nc
패킷을 다시 관찰하십시오. 결과를 바탕으로 이제 문제가 어디에 있는지 알 수 있습니다.
답변2
문제는 내 Windows 방화벽이 포트 31337에 대한 인바운드 요청을 차단한다는 것입니다(PC의 코드는 Windows의 Linux 하위 시스템에서 실행됨). 따라서 제어판 -> 시스템 및 보안 -> Windows Defender 방화벽으로 이동하여 고급 설정을 선택해야 합니다. 포트 31337에 대한 요청을 허용하는 새 인바운드 규칙을 만듭니다.