заранее спасибо за то, что взглянули на это ... Я уверен, что решение простое - просто я не знаю, что это такое.
Бег нк -л -у 9090
И нк-ув 82.165.109.4 9090
команда на том же сервере, установите «соединение» типа netcat, и сообщения будут получены, как и ожидалось.
Существует запущенное приложение Docker, которое также получает пакет, поэтому внутренняя среда выглядит нормально.
эхо -p "привет" >/dev/udp/82.165.109.4/9090
получают оба tcpdump
и приложение.
Я отслеживаю получение пакетов с помощью:
tcpdump -i любой порт udp -AXn 9090
- Если я отправлю UDP-пакет извне, он не дойдет
tcpdump
- Я не могу пинговать сервер извне, но могу внутренне.
- Порт, кажется, открыт и прослушивается.
- порты ssh, http и https работают как положено.
netstat -ltu
Активные интернет-соединения (только серверы)
Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние
TCP 0 0 0.0.0.0:5984 0.0.0.0:* ПРОСЛУШИВАТЬ
TCP 0 0 0.0.0.0:9070 0.0.0.0:* ПРОСЛУШИВАТЬ
TCP 0 0 0.0.0.0:http 0.0.0.0:* ПРОСЛУШАТЬ
TCP 0 0 локальный хост: домен 0.0.0.0: * ПРОСЛУШИВАТЬ
TCP 0 0 0.0.0.0:ssh 0.0.0.0:* ПРОСЛУШАТЬ
TCP 0 0 0.0.0.0:https 0.0.0.0:* ПРОСЛУШАТЬ
tcp6 0 0 [::]:5984 [::]:* ПРОСЛУШАТЬ
tcp6 0 0 [::]:9070 [::]:* ПРОСЛУШАТЬ
tcp6 0 0 [::]:http [::]:* ПРОСЛУШАТЬ
tcp6 0 0 [::]:ssh [::]:* ПРОСЛУШАТЬ
tcp6 0 0 [::]:https [::]:* ПРОСЛУШАТЬ
udp 0 0 локальный хост:домен 0.0.0.0:*
udp 0 0 0.0.0.0: загрузочный компьютер 0.0.0.0: *
удп 0 0 0.0.0.0:9090 0.0.0.0:*
udp6 0 0 [::]:9090 [::]:*
Все, что я читал, указывает на iptables
и брандмауэр, поэтому я отключил уфв
iptables -L
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть FORWARD (политика ACCEPT)
целевая защита выбор источника назначения
DOCKER-USER все -- где угодно где угодно
DOCKER-ISOLATION-STAGE-1 все -- в любом месте в любом месте
ПРИНЯТЬ все -- где угодно и где угодно ctstate СВЯЗАННО, УСТАНОВЛЕНО
DOCKER все -- в любом месте в любом месте
ПРИНИМАТЬ все -- в любом месте в любом месте
ПРИНИМАТЬ все -- в любом месте в любом месте
ПРИНЯТЬ все -- где угодно и где угодно ctstate СВЯЗАННО, УСТАНОВЛЕНО
DOCKER все -- в любом месте в любом месте
ПРИНИМАТЬ все -- в любом месте в любом месте
ПРИНИМАТЬ все -- в любом месте в любом месте
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть DOCKER (2 ссылки)
целевая защита выбор источника назначения
ПРИНЯТЬ udp -- везде 172.18.0.3 udp dpt:9090
ПРИНЯТЬ tcp -- где угодно 172.18.0.6 tcp dpt:9080
ПРИНЯТЬ tcp -- везде 172.18.0.2 tcp dpt:https
ПРИНЯТЬ tcp -- где угодно 172.18.0.5 tcp dpt:5984
ПРИНЯТЬ tcp -- везде 172.18.0.2 tcp dpt:http
Сеть DOCKER-ISOLATION-STAGE-1 (1 ссылка)
целевая защита выбор источника назначения
DOCKER-ISOLATION-STAGE-2 все -- в любом месте в любом месте
DOCKER-ISOLATION-STAGE-2 все -- в любом месте в любом месте
RETURN all -- в любом месте в любом месте
Сеть DOCKER-ISOLATION-STAGE-2 (2 ссылки)
целевая защита выбор источника назначения
УДАЛИТЬ все -- в любом месте в любом месте
УДАЛИТЬ все -- в любом месте в любом месте
RETURN all -- в любом месте в любом месте
Сеть DOCKER-USER (1 ссылка)
целевая защита выбор источника назначения
RETURN all -- в любом месте в любом месте
Настройки NAT следующие:
iptables -t nat -L -v -n
Цепочка PREROUTING (политика ACCEPT 235 пакетов, 28704 байта)
pkts bytes target prot opt in out source target
163 9840 DOCKER all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE соответствует dst-type LOCAL
Цепочка INPUT (политика ACCEPT 205 пакетов, 26904 байта)
pkts bytes target prot opt in out source target
Цепочка OUTPUT (политика ACCEPT 72 пакета, 5351 байт)
pkts bytes target prot opt in out source target
2 121 DOCKER all -- * * 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE соответствует dst-типу LOCAL
Цепочка POSTROUTING (политика ACCEPT 108 пакетов, 7416 байт)
pkts bytes target prot opt in out source target
4 240 МАСКАРАД все -- * !br-a371a521a463 172.18.0.0/16 0.0.0.0/0
0 0 МАСКАРАДировать все -- * !docker0 172.17.0.0/16 0.0.0.0/0
0 0 MASQUERADE udp -- * * 172.18.0.3 172.18.0.3 udp dpt:9090
0 0 МАСКАРАД tcp -- * * 172.18.0.6 172.18.0.6 tcp dpt:9080
0 0 МАСКАРАД tcp -- * * 172.18.0.2 172.18.0.2 tcp dpt:443
0 0 МАСКАРАД tcp -- * * 172.18.0.5 172.18.0.5 tcp dpt:5984
0 0 МАСКАРАД tcp -- * * 172.18.0.2 172.18.0.2 tcp dpt:80
Сеть DOCKER (2 ссылки)
pkts bytes target prot opt in out source target
2 120 ВОЗВРАТ все -- br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0
0 0 ВОЗВРАТИТЬ все -- docker0 * 0.0.0.0/0 0.0.0.0/0
1 37 DNAT udp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 udp dpt:9090 to:172.18.0.3:9090
0 0 DNAT tcp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9070 to:172.18.0.6:9080
4 220 DNAT tcp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:172.18.0.2:443
0 0 DNAT tcp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5984 to:172.18.0.5:5984
5 248 DNAT tcp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:172.18.0.2:80
Если UFW включен, статус такой:
подробный статус ufw
Статус: активен
Ведение журнала: включено (высокий уровень)
По умолчанию: запрещать (входящие), разрешать (исходящие), запрещать (маршрутизируемые)
Новые профили: пропустить
К действию от
-- ------ ----
22/tcp РАЗРЕШИТЬ ВХОД ВСЕГДА
80/tcp РАЗРЕШИТЬ ВХОД В любом месте
443/tcp РАЗРЕШИТЬ ВХОД В любом месте
993 РАЗРЕШИТЬ ВСЕГДА
995 РАЗРЕШИТЬ ВСЕГДА
9090/udp РАЗРЕШИТЬ ВСЕГДА
520/udp РАЗРЕШИТЬ ВСЕГДА
22/tcp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)
80/tcp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)
443/tcp (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)
993 (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)
995 (v6) РАЗРЕШИТЬ ВХОД ВСЕГДА (v6)
9090/udp (v6) РАЗРЕШИТЬ ВСЕГДА (v6)
520/udp (v6) РАЗРЕШИТЬ ВХОД В любом месте (v6)
9090/udp РАЗРЕШИТЬ Прямую переадресацию в любом месте
9090/udp (v6) РАЗРЕШИТЬ FWD везде (v6)
Я много пробовал, но некоторые из наиболее важных вещей таковы;
- сброс iptables не дал результатов
- мониторинг отправки UDP через tcpdump из внешнего ящика (который был зарегистрирован)
- мониторинг всех портов и подробное ведение журнала (без изменений)
- включение ip_forwarding
sysctl -p
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
Другие примечания:
- Использование «облачного» сервера, следовательно, виртуальной машины.
- Я не могу найти журналы ufw
/etc/ufw/