Настройка порта на сервере Linux

Я пытаюсь разрешить интернет-трафику порт 7778 на моем сервере, но не могу сделать это правильно. Вероятно, здесь совершается какая-то ошибка новичка. Можете ли вы помочь мне диагностировать и решить проблему?

Я просто сделал следующее:

sudo iptables -A TCP -p tcp -m tcp --dport 7778 -j ACCEPT

Если я сделаю iptables -S , я действительно увижу правило, добавленное в список, например:

-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
-A TCP -p tcp -m tcp --dport 80 -j ACCEPT
-A TCP -p tcp -m tcp --dport 443 -j ACCEPT
-A TCP -p tcp -m tcp --dport 7778 -j ACCEPT

Однако, если я пингую этот конкретный порт из другого сервер - telnet example.com 7778 , я вижу:

telnet: невозможно подключиться к удаленному хосту: В соединении отказано

Что еще я могу здесь сделать? Порт 80 , 443 и 22 работают правильно FYI.


Примечание: мой сервер использует инфраструктуру Azure (классическая виртуальная машина). Дополнительным шагом, который я предпринял, было добавление конечной точки для порта 7778 на портале Azure. Таким образом, эта часть закрыта.

0
задан 23 December 2016 в 14:28
2 ответа

Используя переключатель -A , вы добавили свое правило в конец цепочки. Это почти наверняка поместит его после правила, которое отбрасывает / блокирует пакеты.

Когда iptables / netfilter проверяет, как следует действовать с пакетом. побеждает тот, кто первым совпадет. В вашем случае он, скорее всего, будет соответствовать строке вроде -A INPUT -j REJECT --reject-with icmp-port-unreachable , которая вызовет сообщение об отказе в соединении до сопоставления ваших разрешающих сообщений.

решение - использовать правило вставки с помощью -I в подходящее место в вашей цепочке INPUT.

3
ответ дан 4 December 2019 в 11:26

Судя по журналу ошибок, ваша служба не слушает.

Чтобы устранить эту проблему более эффективно, я предложил проверить следующие способы:

1. Проверить службу в вашей виртуальной машине.

netstat -ant | grep 7778

Убедитесь, что порт прослушивает.

  1. Протестируйте, используя IP-адрес localhost

telnet 127.0.0.1 7778

Насколько мне известно, если ваш брандмауэр отсутствует какая-то конфигурация, вы получите следующую ошибку.

telnet: Невозможно подключиться к удаленному узлу: Истекло время ожидания подключения

2
ответ дан 4 December 2019 в 11:26

Теги

Похожие вопросы