Я пытаюсь разрешить перенос интернет-трафика 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
Убедитесь, что порт прослушивает.
телнет 127.0.0.1 7778
Насколько мне известно, если в вашем брандмауэре отсутствуют некоторые настройки, вы получите следующую ошибку.
telnet: невозможно подключиться к удаленному хосту: истекло время ожидания подключения