Назад | Перейти на главную страницу

Настройка порта на сервере 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 (классическая виртуальная машина). Дополнительным шагом, который я предпринял, было добавление endpoint для порта 7778 на портале Azure. Таким образом, эта часть покрыта.

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

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

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

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

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

1. Проверьте сервис на своей ВМ.

netstat -ant | grep 7778

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

  1. Тест с использованием IP-адреса localhost

телнет 127.0.0.1 7778

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

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