linuxcore network 관리 Current: 서버 연결 실패시 " No route to host" Vs "Destination unreached" vs "connection Refused" 의 차이점 서버 연결 실패시 " No route to host" Vs "Destination unreached" vs "connection Refused" 의 차이점 개요서버에 올린 서비스가 연결할 수 없을 때 제일 먼저 할 일은 외부에서 해당 포트로 접속이 가능한지 여부이다.포트 오픈 확인은 telnet 을 직접 실행해서 포트 오픈을 확인하거나 web 기반 서비스라면 curl 을 사용하면 된다. telnet DOMAIN PORT BASH curl http://DOMAIN:PORT/ BASH 에러가 날 경우 메시지는 다음중 하나이며 각 상황에 따라 다르다connection refusedNo route to hostDestination unreached curl 일 경우 7 connection timeout 이 날수도 있다. 연결 에러 메시지Connection refused"connection refused" 에러는 방화벽 정책에서 해당 포트가 오픈되서 외부에서 연결가능하나 포트에 서비스 daemon 이 구동 안 되어 발생하는 경우이다. lsof 로 해당 포트를 listening 하는 데몬이 있는지 여부를 확인하고 서비스를 재구동해주면 된다. sudo lsof -i TCP:PORT BASH No route to host방화벽에서 포트가 차단되어 있으며 DROP 정책으로 설정했을 경우 발생한다.DROP 일 경우 source host 에 ICMP response 를 보내지 않으므로 port scanning 에 조금 더 안전한 편이다.Destination unreached방화벽에서 포트가 차단되어 있으며 Reject 정책으로 설정했을 경우 발생한다.Reject 일 경우 설정한 ICMP response 를 보내므로 더 빨리 port scanning 을 할수 있으므로 권장하지 않는다. curl 에서 connection timeout 이 나는건 방화벽에서 해당 포트 연결을 허용하지 않고 DROP 또는 REJECT 설정해서 발생한다. 같이 보기lsof 로 포트 오픈 정보 보기Reflinux - No route to host with nc but can ping - Unix & Linux Stack ExchangeUnderstanding Firewalld in Multi-Zone Configurations | Linux Journallinux - REJECT vs DROP when using iptables - Server Fault ×