Откройте порт брандмауэра на CentOS 7
Я использую CentOS 7, и я должен убедиться, что порты 2888 и 3888 открыты.
я прочитала в этой статье но это не сработало, потому что на CentOS 7 OS нет
10 ответов:
используйте эту команду для поиска активных зон:
firewall-cmd --get-active-zonesОн скажет либо public, dmz, либо что-то еще. Вы должны применять только к необходимым зонам.
в случае публичной попытки:
firewall-cmd --zone=public --add-port=2888/tcp --permanentпотом не забудьте перезагрузить брандмауэр, чтобы изменения вступили в силу.
firewall-cmd --reloadв противном случае замените public для вашей зоны, например, если ваша зона dmz:
firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
ответ ganeshragav - это правильно, но это также полезно знать, что вы можете использовать:
firewall-cmd --permanent --zone=public --add-port=2888/tcpно если это известная услуга, вы можете использовать:
firewall-cmd --permanent --zone=public --add-service=httpа затем перезагрузите брандмауэр
firewall-cmd --reload[ ответ изменен, чтобы отразить комментарий Мартина Питера, оригинальный ответ был
--permanentВ конце командной строки ]
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.
Федора, сделал это через
iptablessudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT sudo service iptables saveКажется, работает
пока ganeshragav и Sotsir обеспечить правильные и непосредственно применимые подходы, полезно отметить, что вы можете добавить свои собственные услуги в
/etc/firewalld/services. Для вдохновения, посмотрите на/usr/lib/firewalld/services/, где расположены предопределенные службы firewalld.преимущество этого подхода заключается в том, что позже вы узнаете, почему эти порты открыты, как вы описали это в файле службы. Кроме того, теперь вы можете применить его к любой зоне, без риска опечатки. Кроме того, изменения в сервисе не нужно будет применять ко всем зонам отдельно, а только к файлу сервиса.
например, вы можете создать
/etc/firewalld/services/foobar.xml:<?xml version="1.0" encoding="utf-8"?> <service> <short>FooBar</short> <description> This option allows you to create FooBar connections between your computer and mobile device. You need to have FooBar installed on both sides for this option to be useful. </description> <port protocol="tcp" port="2888"/> <port protocol="tcp" port="3888"/> </service>(для получения информации о синтаксисе, do
man firewalld.service.)как только этот файл будет создан, вы можете
firewall-cmd --reloadчтобы он стал доступным, а затем навсегда добавить его в какую-то зону сfirewall-cmd --permanent --zone=<zone> --add-service=foobarзатем с
firewall-cmd --reloadчтобы сделать его активным сразу.
для просмотра открытых портов, выполните следующую команду.
firewall-cmd --list-portsмы используем следующие сервисы порты открыты.
firewall-cmd --list-servicesмы используем следующие сервисы порты открыты и увидеть открытые порты
firewall-cmd --list-allчтобы добавить службу в брандмауэр, мы используем следующую команду, в этом случае служба будет использовать любой порт для открытия в брандмауэре.
firewall-cmd --add-services=ntpчтобы эта служба была постоянно открыта, мы используем следующее команда.
firewall-cmd -add-service=ntp --permanentдобавить порт, используйте следующую команду
firewall-cmd --add-port=132/tcp --permanentдля запуска брандмауэра необходимо перезагрузить его с помощью следующей команды.
firewall-cmd --reloadЙа Али
лучшие ответы здесь работать, но я нашел что-то более элегантное в ответ Майкла Хэмптона к смежному вопросу. "Новый" (firewalld-0.3.9-11+) до
firewall-cmdпозволяет создавать правила выполнения и проверить их, прежде чем сделать их постоянными:$ firewall-cmd --zone=<zone> --add-port=2888/tcp <Test it out> $ firewall-cmd --runtime-to-permanentили вернуть изменения только во время выполнения:
$ firewall-cmd --reloadсм. Также комментарий Энтони Нгуена. По-видимому, firewall-cmd --reload может работать неправильно в некоторых случаях, когда правила были удалены. В этом случае он предлагает перезапустить службу firewalld:
$ systemctl restart firewalld
для просмотра открытых портов, выполните следующую команду.
брандмауэр cmd --список-портов Мы используем следующие сервисы порты открыты.
брандмауэр-cmd --list-services Мы используем следующие сервисы порты открыты и увидеть открытые порты
брандмауэр cmd --список-все Чтобы добавить службу в брандмауэр, мы используем следующую команду, и в этом случае служба будет использовать любой порт для открытия в брандмауэре.
брандмауэр-cmd -- add-services=ntp Чтобы эта служба была постоянно открыта, мы используем следующую команду.
брандмауэр-cmd-add-service=ntp --постоянный Чтобы добавить порт, используйте следующую команду
firewall-cmd --add-port=132 / tcp --permanent
Если вы знакомы с iptables service, как в centos 6 или ранее, вы все еще можете использовать iptables service путем ручной установки:
Шаг 1 => установить epel РЕПО
yum install epel-release
Шаг 2 = > установить iptables service
yum install iptables-services
Шаг 3 = > остановить службу firewalld
systemctl остановить firewalld
Шаг 4 = > отключить службу firewalld при запуске
systemctl отключить firewalld
Шаг 5 = > запуск iptables service
systemctl запуск iptables
Шаг 6 = > включить iptables при запуске
systemctl включить iptables
наконец, теперь вы можете редактировать конфигурацию iptables в /etc/sysconfig / iptables.
Так -> изменить правило - > перезагрузить / перезапустить.
сделайте как более старые centos с такой же функцией как firewalld.
Firewalld немного неинтуитивен для ветерана iptables. Для тех, кто предпочитает iptables-управляемый брандмауэр с iptables-подобным синтаксисом в легко конфигурируемом дереве, попробуйте заменить firewalld на fwtree: https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ а затем сделайте следующее:
echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule systemctl reload fwtree