«Нет маршрута к хосту» при попытке подключения к службе TCP на экземпляре Oracle Cloud

«Нет маршрута к хосту» при попытке подключения к службе TCP на экземпляре Oracle Cloud

Я создал экземпляр Ubuntu наОблачная инфраструктура Oracle (OCI). Я могу подключиться к этому экземпляру с помощью SSH (TCP 22). Я создал несколько служб на этом экземпляре, например, daytime (TCP 13), mail (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

Проблема, по-видимому, связана с тем, что OCI не хочет, чтобы вы использовали ufwв Ubuntu:https://docs.cloud.oracle.com/iaas/Content/knownissues.htm#ufw

Мне нужно отключить или удалить ufwи отредактировать файл /etc/iptables/rules.v4, как описано в ссылке, указанной выше. После этого, чтобы включить новые правила, мне нужно запустить:

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

Похоже, что ufwправила не имеют никакого эффекта в такой конфигурации, и яиметьиспользовать iptables. Однако это не очень удобный способ управления правилами брандмауэра на сервере Ubuntu на платформе OCI.

решение2

Я обнаружил эту проблему с Oracle Linux в облаке Oracle. Он имеет предопределенный набор правил блокировки. Поэтому я успешно подключался к 22 порту (ssh), но получал сообщение "No route to host" при попытке подключиться к другим портам.
Вам нужно открыть порты по отдельности:

Например, для 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, с которыми у меня нет опыта.

Связанный контент