![nc 호스트에 대한 경로는 없지만 ping이 가능합니다.](https://linux55.com/image/108243/nc%20%ED%98%B8%EC%8A%A4%ED%8A%B8%EC%97%90%20%EB%8C%80%ED%95%9C%20%EA%B2%BD%EB%A1%9C%EB%8A%94%20%EC%97%86%EC%A7%80%EB%A7%8C%20ping%EC%9D%B4%20%EA%B0%80%EB%8A%A5%ED%95%A9%EB%8B%88%EB%8B%A4..png)
netcat을 사용하여 한 가상 머신에서 다른 가상 머신의 포트 25에 연결하려고 하는데 no route to host
ping이 가능하다는 메시지가 표시됩니다. 특정 서브넷의 포트 25에 대한 트래픽을 허용하는 한 가지 예외를 제외하고 방화벽 기본 정책을 삭제하도록 설정했습니다. nc를 사용하여 VM 3에서 포트 25의 VM 2로 연결할 수 있지만 VM 2에서 3으로는 연결할 수 없습니다.
내 VM2 방화벽 규칙의 미리보기는 다음과 같습니다.
내 VM 3 방화벽 규칙의 미리보기는 다음과 같습니다.
청취 서비스를 표시하면 모든 ipv4 IP 주소와 ipv6 주소를 *:25
청취하고 있음을 의미합니다 . :::25
오류가 어디에 있는지 또는 왜 두 방화벽 규칙이 모두 작동하지 않고 포트 25에서 트래픽을 허용하므로 연결되어야 하는지 이해할 수 없습니다. 둘 사이의 차이점을 비교하고 왜 vm3에서 vm2로 연결할 수 있는지 알아보려고 했지만 구성은 정확히 동일합니다. 가능한 문제에 대한 제안 사항이 있습니까?
iptable 서비스를 중지하도록 업데이트하면 문제가 해결되었지만 여전히 존재하는 규칙이 필요합니다.
답변1
컴퓨터에 ping이 실행될 수 있으면 no route to host
방화벽이 사용자의 액세스를 정중하게 거부하고 있음을 의미합니다(예: DROP-ping 대신 ICMP 메시지 사용).
네 REJECT
줄 봤어? 설명과 일치합니다(ICMP xxx로 거부). 문제는 (#)처럼 보이는 REJECT 행이 규칙 중간에 있어서 다음 규칙이 전혀 실행되지 않는다는 것입니다. (#) 이것이 실제로 모든 것을 포괄하는 줄인지 말하기 어렵기 때문에 출력이 iptables -nvL
더 좋을 것입니다.
이러한 REJECT 규칙을 끝에 넣으면 모든 것이 예상대로 작동합니다.
답변2
시안이 대답했다물론 그렇습니다. 그러나 원인이 방화벽일지라도 포트 80/tcp에 문제가 있는 경우 일반적으로 이런 일이 발생하는 이유는 프록시 서버가 있기 때문입니다. 연결을 통해 연결되어야 합니다(또는 https(443/tcp)인 경우 직접). 일부 프로그램은 $http_proxy
환경 변수를 사용합니다. 다른 경우에는 다음을 수행할 수 있습니다.
http_proxy="http://nameOrIPOfProxy:proxyPort" command
apt
다음과 같이 설정해야하기 때문에
Acquire::http::Proxy "http://nameOrIPOfProxy:proxyPort";
Acquire::https::Proxy "false";
존재하다 /etc/apt/apt.conf.d/proxy.conf
.