почему мой перенаправленный порт не работает, используйте firewall-cmd

Вопрос или проблема

  1. настроить перенаправление порта
firewall-cmd --permanent --add-masquerade
firewall-cmd --permanent --add-forward-port=port=81:proto=tcp:toaddr=127.0.0.1:toport=80
firewall-cmd --reload

вот, это мой firewall-cmd.
вставьте описание изображения здесь

  1. откройте сервер, используйте: nc -lk 80
  2. используйте nc -v 127.0.0.1 81 не сработает, но nc -v 127.0.0.1 80 сработает

.

Ответ или решение

Когда дело касается настройки сетевых портов в Linux с помощью firewall-cmd, может возникнуть несколько причин, почему переадресация порта не работает, как ожидалось. Давайте подробно рассмотрим вашу конфигурацию и возможные причины проблемы.

Шаги настройки и проверка

  1. Проверка конфигурации перенаправления порта:
    Ваши команды для настройки переадресации порта выглядят корректно:

    firewall-cmd --permanent --add-masquerade
    firewall-cmd --permanent --add-forward-port=port=81:proto=tcp:toaddr=127.0.0.1:toport=80
    firewall-cmd --reload

    Здесь вы сначала добавляете маскарад, что позволяет пакетам, проходящим через интерфейс, изменять свои адреса, чтобы они выглядели как если бы они приходили с вашего сервера. Затем вы настраиваете перенаправление трафика с порта 81 на порт 80 локального адреса.

  2. Проверка, работает ли сервер на порту 80:
    Вы используете команду nc -lk 80, что является правильным способом открыть порт 80 для прослушивания. Подтвердите, что этот сервер успешно запущен, и что вы можете подключиться к нему напрямую через nc -v 127.0.0.1 80, что, судя по вашему описанию, работает.

  3. Проверка работы переадресации:
    При попытке подключиться к nc -v 127.0.0.1 81, вы ожидаете, что это будет переадресовано на порт 80, но это не работает. Вот несколько возможных причин:

    • Недостаточные права: Убедитесь, что вы выполняете команды firewall-cmd с правами суперпользователя. Для этого используйте sudo перед каждой командой, если вы не уже находитесь под суперпользователем.

    • Проблемы с конфигурацией firewall: Вы можете проверить текущие правила брандмауэра, используя команду:

      firewall-cmd --list-all

      Убедитесь, что правило перенаправления порта отображается в выводе. Если его нет, это может означать, что оно не было успешно добавлено.

    • Правила в других брандмауэрах: Если у вас установлен другой брандмауэр, например, iptables, он может блокировать соединения на порту 81. Проверьте его настройки и убедитесь, что они не конфликтуют с firewalld.

    • Проблемы с NAT: Проверьте, что на вашем сервере нет других настроек NAT, которые могут влиять на поведение соединений.

Рекомендуемые действия

  1. Перезапустите службы брандмауэра:

    systemctl restart firewalld
  2. Повторно проверьте ваши правила и примите во внимание возможные конфликты с другими настройками.

  3. Попробуйте временно отключить брандмауэр:

    sudo systemctl stop firewalld

    После этого протестируйте соединение еще раз. Если оно заработает, значит проблема определенно в конфигурации брандмауэра.

  4. Изучите журналы системы и брандмауэра, они могут дать подсказки о произошедших ошибках.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...