Откройте порт брандмауэра на 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
.
Федора, сделал это через
iptables
sudo 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