Я использую CentOS 7, и я должен убедиться, что порты 2888 и 3888 открыты.
Я читал эту статью, но это не сработало, потому что на ОС CentOS 7 нет iptables save
команды.
Кто-то сказал мне, что указанный выше URL-адрес недействителен для CentOS 7. Я должен следовать этому . Но из этой статьи мне не ясно, какую именно команду мне нужно выполнить.
Я также нашел
firewall-cmd --zone=public --add-port=2888/tcp
но это не переживает перезагрузки.
Так как же я могу открыть порты и сделать так, чтобы он пережил перезагрузки?
Ответы:
Используйте эту команду, чтобы найти ваши активные зоны:
Это скажет либо public, dmz, либо что-то еще. Вы должны подать заявку только на необходимые зоны.
В случае публики попробуйте:
Затем не забудьте перезагрузить брандмауэр, чтобы изменения вступили в силу.
В противном случае, замените public для вашей зоны, например, если ваша зона dmz:
источник
--zone=dmz
на--zone=public
--permanent
делает, они просто говорят, чтобы сделать это. Оба были бы более полными и полезными ответами, если бы было объяснено, как работает ответ. Из одного из ресурсов OP: «Правила можно сделать постоянными, добавив параметр --permanent [...]. Если правила не сделаны постоянными, их необходимо применять каждый раз после получения сообщения о запуске, перезапуске или перезагрузке из firewalld, используя D-BUS. "firewall-cmd --get-active-zones
чтобы узнать, какая зона используется в вашей системе. Также man firewall-cmd.The --permanent option needs to be the first option for all permanent calls
. Я не получил никакой ошибки, используя вышеупомянутое, но я не уверен, может ли это вызвать проблемы кому-то еще.Ответ Ганешрагава правильный, но также полезно знать, что вы можете использовать:
но если это известный сервис, вы можете использовать:
а затем перезагрузите брандмауэр
[Ответ изменен, чтобы отразить комментарий Мартина Питера, исходный ответ был
--permanent
в конце командной строки]источник
--permanent
опцию в конце заявления. В документации явно указывается, что это должен быть первый вариант.man firewall-cmd
дает таких указаний на моем компьютере (Fedora 21).The --permanent option needs to be the first option for all permanent calls.
CentOS (RHEL) 7 изменил используемый брандмауэр,
firewall-cmd
который имеет понятие зон, аналогичное версии Windows для публичных, домашних и частных сетей. Вы должны посмотреть здесь, чтобы выяснить, какой из них вы думаете, вы должны использовать. EL7 используетpublic
по умолчанию, это то, что используют мои примеры ниже.Вы можете проверить, с какой зоной вы пользуетесь,
firewall-cmd --list-all
и изменить ееfirewall-cmd --set-default-zone=<zone>
.Затем вы узнаете, в какой зоне разрешен сервис (или порт):
firewall-cmd --permanent --zone=<zone> --add-service=http
firewall-cmd --permanent --zone=<zone> --add-port=80/tcp
Вы можете проверить, действительно ли порт был открыт, запустив:
firewall-cmd --zone=<zone> --query-port=80/tcp
firewall-cmd --zone=<zone> --query-service=http
Согласно документации ,
Вы можете перезагрузить настройки брандмауэра с:
firewall-cmd --reload
.источник
Fedora, сделал это через
iptables
Кажется работать
источник
Чтобы просмотреть открытые порты, используйте следующую команду.
Мы используем следующее, чтобы увидеть сервисы, порты которых открыты.
Мы используем следующее, чтобы увидеть службы, чьи порты открыты, и увидеть открытые порты.
Чтобы добавить службу в брандмауэр, мы используем следующую команду, и в этом случае служба будет использовать любой порт для открытия в брандмауэре.
Чтобы эта служба была постоянно открыта, мы используем следующую команду.
Чтобы добавить порт, используйте следующую команду
Для запуска брандмауэр необходимо перезагрузить с помощью следующей команды.
Я Али
источник
В то время как Ганешрагав и Социр предоставляют правильные и непосредственно применимые подходы, полезно отметить, что вы можете добавлять свои собственные услуги
/etc/firewalld/services
. Для вдохновения посмотрите/usr/lib/firewalld/services/
, где расположены предопределенные сервисы firewalld.Преимущество этого подхода в том, что позже вы узнаете, почему эти порты открыты, как вы это описали в служебном файле. Кроме того, теперь вы можете применить его к любой зоне без риска опечаток. Кроме того, изменения в сервисе не нужно применять ко всем зонам отдельно, а только к файлу сервиса.
Например, вы можете создать
/etc/firewalld/services/foobar.xml
:(Для получения информации о синтаксисе, сделайте
man firewalld.service
.)Как только этот файл создан, вы можете
firewall-cmd --reload
сделать его доступным, а затем добавить его в какую-либо зонузатем,
firewall-cmd --reload
чтобы сделать его активным сразу.источник
Чтобы просмотреть открытые порты, используйте следующую команду:
Мы используем следующее, чтобы увидеть сервисы, порты которых открыты:
Мы используем следующее для просмотра сервисов, чьи порты открыты, и для просмотра открытых портов:
Чтобы добавить службу в брандмауэр, мы используем следующую команду, и в этом случае служба будет использовать любой порт для открытия в брандмауэре:
Чтобы эта служба была постоянно открыта, мы используем следующую команду:
Чтобы добавить порт, используйте следующую команду:
источник
Лучшие ответы здесь работают, но я нашел что-то более элегантное в ответе Майкла Хэмптона на связанный вопрос. «Новый» (firewalld-0.3.9-11 +)
--runtime-to-permanent
опцияfirewall-cmd
позволяет создавать во время выполнения правил и проверить их , прежде чем сделать их постоянными:Или отменить изменения только во время выполнения:
Также см . Комментарий Энтони Нгуена . Очевидно, что firewall-cmd --reload может работать некорректно в некоторых случаях, когда правила были удалены. В этом случае он предлагает перезапустить службу firewalld:
источник
Если у вас есть несколько портов для разрешения в Centos 7 FIrewalld, то мы можем использовать следующую команду.
источник
Если вы знакомы со службой iptables, как в Centos 6 или более ранней версии, вы все равно можете использовать службу iptables путем ручной установки:
шаг 1 => установить репозиторий Epel
шаг 2 => установить сервис iptables
шаг 3 => остановить службу firewalld
шаг 4 => отключить службу firewalld при запуске
шаг 5 => запустить сервис iptables
шаг 6 => включить iptables при запуске
наконец, теперь вы можете редактировать конфигурацию iptables в / etc / sysconfig / iptables.
Итак -> изменить правило -> перезагрузить / перезапустить.
делаю как старые ченто с такой же функцией, как firewalld.
источник
Firewalld немного не интуитивно понятен для ветерана iptables. Для тех, кто предпочитает управляемый iptables брандмауэр с iptables-подобным синтаксисом в легко настраиваемом дереве, попробуйте заменить firewalld на fwtree: https://www.linuxglobal.com/fwtree-f flex-linux-tree-based-firewall/, а затем сделайте следующее:
источник
Привет в Centos 7 firewall-cmd. Да, правильно, если вы используете firewall-cmd --zone = public --add-port = 2888 / tcp, но если вы перезагрузите firewal firewall-cmd --reload
ваш конфиг не будет сохранен
вам нужно добавить ключ
firewall-cmd --permanent --zone = public --add-port = 2888 / tcp
источник