Я пытаюсь открыть порт 30080 на виртуальной машине Ubuntu 18.04 Server и вижу некоторые запутанные результаты.
вывод iptables
ubuntu@k8-master:~$ sudo iptables -v -x -n -L [sudo] пароль для ubuntu: Цепочка INPUT (политика ACCEPT 289 пакетов, 98798 байт) pkts байт цель prot opt in out источник назначение 3919 272820 KUBE-SERVICES все -- * * 0.0.0.0/0 0.0.0.0/0 ctstate НОВЫЙ /* порталы служб kubernetes */ 3919 272820 KUBE-EXTERNAL-SERVICES все -- * * 0.0.0.0/0 0.0.0.0/0 ctstate НОВЫЙ /* внешние видимые порталы служб Kubernetes */ 846424 164692436 KUBE-FIREWALL все -- * * 0.0.0.0/0 0.0.0.0/0 Цепочка FORWARD (политика DROP 0 пакетов, 0 байт) pkts байт цель prot opt in out источник назначение 0 0 KUBE-FORWARD все -- * * 0.0.0.0/0 0.0.0.0/0 /* правила пересылки kubernetes */ 0 0 KUBE-SERVICES все -- * * 0.0.0.0/0 0.0.0.0/0 ctstate НОВЫЙ /* порталы служб kubernetes */ 0 0 DOCKER-USER все -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DOCKER-ИЗОЛЯЦИЯ-СТАДИЯ-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 DOCKER все -- * 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 Цепочка ВЫХОД (политика ПРИНЯТЬ 281 пакет, 145464 байта) pkts байт цель prot opt in out источник назначение 6870 412563 KUBE-SERVICES все -- * * 0.0.0.0/0 0.0.0.0/0 ctstate НОВЫЙ /* порталы служб kubernetes */ 846213 192244364 KUBE-FIREWALL все -- * * 0.0.0.0/0 0.0.0.0/0 Цепной DOCKER (1 ссылка) pkts байт цель prot opt in out источник назначение Цепь DOCKER-ИЗОЛЯЦИЯ-СТАДИЯ-1 (1 ссылка) pkts байт цель prot opt in out источник назначение 0 0 DOCKER-ИЗОЛЯЦИЯ-СТАДИЯ-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-ИЗОЛЯЦИЯ-СТАДИЯ-2 (1 ссылка) pkts байт цель prot opt in out источник назначение 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 opt in out источник назначение 0 0 ВОЗВРАТ всех -- * * 0.0.0.0/0 0.0.0.0/0 Цепочка KUBE-EXTERNAL-SERVICES (1 ссылка) pkts байт цель prot opt in out источник назначение 0 0 ОТКЛОНИТЬ tcp -- * * 0.0.0.0/0 0.0.0.0/0 /* robot-shop/web:8080 не имеет конечных точек */ ADDRTYPE соответствует dst-type LOCAL tcp dpt:30080 reject-with icmp-port-unreachable Цепочка KUBE-FIREWALL (2 ссылки) pkts байт цель prot opt in out источник назначение 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 /* межсетевой экран Kubernetes для отбрасывания отмеченных пакетов */ соответствие отметке 0x8000/0x8000 Цепь KUBE-FORWARD (1 ссылка) pkts байт цель prot opt in out источник назначение 0 0 ОТБРОСИТЬ все -- * * 0.0.0.0/0 0.0.0.0/0 ctstate НЕВЕРНО 0 0 ПРИНЯТЬ все -- * * 0.0.0.0/0 0.0.0.0/0 /* правила пересылки Kubernetes */ отметить совпадение 0x4000/0x4000 0 0 ПРИНЯТЬ все -- * * 10.0.0.0/16 0.0.0.0/0 /* правило источника pod conntrack для пересылки kubernetes */ ctstate RELATED,ESTABLISHED 0 0 ПРИНЯТЬ все -- * * 0.0.0.0/0 10.0.0.0/16 /* правило назначения pod conntrack для пересылки kubernetes */ ctstate RELATED,ESTABLISHED Сеть KUBE-SERVICES (3 отзыва) pkts байт цель prot opt in out источник назначение 0 0 ОТКЛОНИТЬ tcp -- * * 0.0.0.0/0 10.96.93.102 /* robot-shop/cart:8080 не имеет конечных точек */ tcp dpt:8080 reject-with icmp-port-unreachable 0 0 ОТКЛОНИТЬ tcp -- * * 0.0.0.0/0 10.111.89.174 /* robot-shop/web:8080 не имеет конечных точек */ tcp dpt:8080 reject-with 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
После некоторых исследований я думаю, что это проблема kubernetes. Кажется, kube-proxy добавляет эту строку:
/* robot-shop/web:8080 не имеет конечных точек */ ADDRTYPE соответствует dst-type LOCAL tcp dpt:30080 reject-with icmp-port-unreachable
Так что я думаю, что закрою эту тему и открою другую в разделе kubernetes. Спасибо.