Ubuntu 18.04 서버에서 포트를 열려고 합니다. 뭔가 빠졌습니다.

Ubuntu 18.04 서버에서 포트를 열려고 합니다. 뭔가 빠졌습니다.

Ubuntu 18.04 Server vm에서 포트 30080을 열려고 하는데 혼란스러운 결과가 나타납니다.

iptables 출력

ubuntu@k8-master:~$ sudo iptables -v -x -n -L
[sudo] 우분투 비밀번호:
체인 INPUT(정책 ACCEPT 289 패킷, 98798바이트)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
    3919 272820 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 서비스 포털 */
    3919 272820 KUBE-EXTERNAL-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 외부에 표시되는 서비스 포털 */
  846424 164692436 KUBE-FIREWALL 모두 -- * * 0.0.0.0/0 0.0.0.0/0

체인 FORWARD(정책 DROP 0 패킷, 0바이트)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
       0 0 KUBE-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0 /* 쿠버네티스 전달 규칙 */
       0 0 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 서비스 포털 */
       0 0 DOCKER-USER 모두 -- * * 0.0.0.0/0 0.0.0.0/0
       0 0 DOCKER-ISOLATION-STAGE-1 모두 -- * * 0.0.0.0/0 0.0.0.0/0
       0 0 모두 수락 -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate 관련,설정됨
       0 0 도커 모두 -- * docker0 0.0.0.0/0 0.0.0.0/0
       0 0 모두 수락 -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
       0 0 모두 수락 -- docker0 docker0 0.0.0.0/0 0.0.0.0/0
       0 0 모두 수락 -- * * 10.244.0.0/16 0.0.0.0/0
       0 0 모두 수락 -- * * 0.0.0.0/0 10.244.0.0/16

체인 출력(정책 ACCEPT 281 패킷, 145464바이트)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
    6870 412563 KUBE-SERVICES all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 서비스 포털 */
  846213 192244364 KUBE-FIREWALL 모두 -- * * 0.0.0.0/0 0.0.0.0/0

체인 DOCKER (참고문헌 1개)
    pkts 바이트 대상 prot 옵트아웃 소스 대상

체인 DOCKER-ISOLATION-STAGE-1(참조 1개)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
       0 0 DOCKER-ISOLATION-STAGE-2 모두 -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
       0 0 모두 반환 -- * * 0.0.0.0/0 0.0.0.0/0

체인 DOCKER-ISOLATION-STAGE-2(참조 1개)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
       0 0 모두 삭제 -- * docker0 0.0.0.0/0 0.0.0.0/0
       0 0 모두 반환 -- * * 0.0.0.0/0 0.0.0.0/0

체인 DOCKER-USER (참조 1개)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
       0 0 모두 반환 -- * * 0.0.0.0/0 0.0.0.0/0

체인 KUBE-EXTERNAL-SERVICES (참조 1개)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
       0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 /* robots-shop/web:8080에는 엔드포인트가 없습니다. */ ADDRTYPE match dst-type LOCAL tcp dpt:30080 icmp-port-unreachable 거부

체인 KUBE-FIREWALL(참조 2개)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
       0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 /* 표시된 패킷 삭제를 위한 kubernetes 방화벽 */ 표시 일치 0x8000/0x8000

체인 KUBE-FORWARD (참고문헌 1개)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
       0 0 모두 삭제 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
       0 0 모두 수락 -- * * 0.0.0.0/0 0.0.0.0/0 /* 쿠버네티스 전달 규칙 */ 일치 표시 0x4000/0x4000
       0 0 모두 수락 -- * * 10.0.0.0/16 0.0.0.0/0 /* kubernetes 전달 conntrack 포드 소스 규칙 */ ctstate RELATED,ESTABLISHED
       0 0 ACCEPT all -- * * 0.0.0.0/0 10.0.0.0/16 /* kubernetes 전달 conntrack 포드 대상 규칙 */ ctstate RELATED,ESTABLISHED

체인 KUBE-SERVICES (참고문헌 3개)
    pkts 바이트 대상 prot 옵트아웃 소스 대상
       0 0 REJECT tcp -- * * 0.0.0.0/0 10.96.93.102 /* robots-shop/cart:8080에는 엔드포인트가 없습니다. */ tcp dpt:8080 icmp-port-unreachable 거부
       0 0 REJECT tcp -- * * 0.0.0.0/0 10.111.89.174 /* robots-shop/web:8080에는 엔드포인트가 없습니다. */ tcp dpt:8080 icmp-port-unreachable 거부

또한 ufw는 포트가 열린 것으로 표시합니다.

sudo ufw status
Status: active

To               Action      From
--               ------      ----
30080            ALLOW       Anywhere
30080/tcp        ALLOW       Anywhere

Netstat는 또한 "수신" 모드의 포트를 표시합니다.

netstat -talpn | grep 30080
tcp6    0    0 :::30080      :::*           LISTEN      -

그래서 왜 nmap이 여전히 포트를 필터링된 것으로 표시하는지 잘 모르겠습니다.

nmap -Pn localhost -p 30080 
PORT      STATE    SERVICE
30080/tcp filtered unknown

그리고 원격 컴퓨터에서 시도하면 nmap이 닫힌 것으로 표시됩니다.

PORT      STATE  SERVICE
30080/tcp closed unknown

여기서 어디로 가야할지 잘 모르겠습니다.

답변1

몇 가지 조사를 해본 결과 이것이 쿠버네티스 문제인 것 같습니다. kube-proxy가 다음 줄을 추가하는 것 같습니다:

/* robots-shop/web:8080에는 엔드포인트가 없습니다. */ ADDRTYPE match dst-type LOCAL tcp dpt:30080 Reject-with icmp-port-unreachable

그래서 이 주제를 닫고 kubernetes 섹션에서 다른 주제를 열겠습니다. 감사해요.

관련 정보