Oracle Cloud 인스턴스에서 TCP 서비스에 연결하려고 할 때 "호스트에 대한 경로 없음" 발생

Oracle Cloud 인스턴스에서 TCP 서비스에 연결하려고 할 때 "호스트에 대한 경로 없음" 발생

Ubuntu 인스턴스를 만들었습니다.오라클 클라우드 인프라(OCI). SSH(TCP 22)를 사용하여 이 인스턴스에 연결할 수 있습니다. 이 인스턴스에서 주간(TCP 13), 메일(TCP 25), http(TCP 80), dns(TCP/UDP 53)와 같은 일부 서비스를 만들었습니다. 비슷한 규칙을 추가했습니다.기본 보안 목록이 인스턴스의 OCI 관리 웹 페이지에서 기본 SSH 규칙과 유사합니다. 그런데 접속하려고 하면어느인터넷에서 이러한 서비스 중 No route to host오류가 발생합니다. 유일한 예외는 문제 없이 작동하는 SSH 서비스입니다.

ufw이 인스턴스에 설치한 후 ; 그러나 나중에 ufw. 그 후 iptables패키지도 제거했습니다. 따라서 이제 Linux 방화벽은 전혀 없습니다. 그러나 여전히 이 문제가 있습니다.

OCI 관련 문제인 것 같습니다. 다른 클라우드 플랫폼(AWS, GCP 등)에서도 비슷한 구성을 문제 없이 수행했습니다.

이 문제를 분리하기 위해 다른 곳을 찾을 수 있습니까?


업데이트: iptables 제거재부팅하고문제를 해결했습니다. 이제 iptables를 다시 설치해 보겠습니다.

답변1

ufw문제는 OCI가 Ubuntu에서 사용하는 것을 원하지 않는 것과 관련된 것 같습니다 .https://docs.cloud.oracle.com/iaas/Content/knownissues.htm#ufw

위에 제공된 링크에 설명된 대로 ufw파일을 비활성화하거나 제거하고 편집해야 합니다 . /etc/iptables/rules.v4그런 다음 새 규칙을 활성화하려면 다음을 실행해야 합니다.

# iptables-restore </etc/iptables/rules.v4

ufw그러한 구성에서는 규칙이 아무런 영향을 미치지 않는 것 같습니다 .가지다사용 iptables. 그러나 이는 OCI 플랫폼의 Ubuntu 서버에서 방화벽 규칙을 관리하는 사용자 친화적인 방법은 아닙니다.

답변2

Oracle Cloud의 Oracle Linux에서 이 문제를 발견했습니다. 사전 정의된 차단 규칙 세트가 있습니다. 그래서 22 포트(ssh)를 성공적으로 연결했지만 다른 포트를 연결하려고 하면 "호스트에 대한 경로 없음" 메시지가 표시되었습니다.
포트를 개별적으로 열어야 합니다.

예를 들어 Docker의 경우:

firewall-cmd  --permanent --zone=public --add-port=2377/tcp
firewall-cmd  --reload

또한 가상 클라우드 네트워크에 대한 보안 목록을 설정해야 합니다.

답변3

FedKad의 원래 게시물에 대한 답변을 바탕으로 저에게 도움이 된 정확한 단계는 다음과 같습니다.

Ubuntu 20에서 포트를 열려면 Oracle 클라우드에서 다음 추가 단계가 필요했습니다.:

  1. sudo vim /etc/iptables/rules.v4 (또는 사용하는 편집기)

  2. 줄 뒤에 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT다음을 삽입합니다.

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1234 -j ACCEPT

(열어야 할 포트 번호를 변경해주세요!)

  1. 쉘 프롬프트에서:

sudo su -

iptables-restore < /etc/iptables/rules.v4

exit

  1. 새로 열린 포트는 다음과 같이 테스트할 수 있습니다.또 다른Linux 머신에서 다음 명령을 실행합니다.

nc -zvw100 THE_IP_ADDRESS_OF_MACHINE_WHOSE_PORT_WE_OPENED THE_PORT_NUMBER

답변4

네트워크 또는 Linux 인스턴스에 있을 수 있습니다. Linux에 있는 경우 iptables 또는 서비스일 수 있습니다.

마지막 것부터 시작하려면 메일이 있으므로 Linux 상자에서 시도해 보십시오.

telnet 127.0.0.1 smtp
helo there
quit

220, 250, 221 메시지가 보이시나요? 그러면 메일 서비스가 작동합니다. 이 표시되면 Connection refused서비스가 실행되고 있지 않은 것입니다.

다음으로 iptables -nvL포트가 외부 세계에 열려 있는지 알려주어야 합니다. 당신이 출력의 머리나 꼬리를 만들지 않는다면,

service iptables stop

테스트를 위해 허용될 수 있는 iptables를 중지해야 합니다. 당신은 을 제거했다고 말했으므로 더 이상 필요하지 않을 것이라고 ufw생각합니다 .sudo ufw disable

iptables를 제거한 후에도 여전히 연결할 수 없다면 아마도 경험이 없는 Amazon 클라우드의 설정일 것입니다.

관련 정보