
Мне нужно открыть несколько разных портов (не в диапазонах) на машине CentOS.
Я знаю, как открыть порт с помощью firewall-cmd
, но это становится хлопотным, когда приходится открывать 40 и более портов.
Есть ли файл конфигурации, в котором я могу определить все открытые порты в одном месте? К сожалению, я ничего не нашел по этому поводу.
решение1
Вы можете определить службу из xml-файла, содержащего все необходимые вам порты, добавить службу из него и затем включить ее. Создайте файл service.xml следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<service>
<port port="port1" protocol="proto1"/>
<port port="port2" protocol="proto2"/>
<port port="port3" protocol="proto3"/>
<port port="port4" protocol="proto4"/>
</service>
Добавить новую услугу:
# firewall-offline-cmd --new-service-from-file=service.xml --name=My_Service
Перезагрузите firewall-cmd:
# firewall-cmd --reload
Затем добавьте свою услугу:
# firewall-cmd --add-service My_Service
решение2
firewall-cmd --permanent --add-port={80/tcp,443/tcp,9200/tcp,5601/tcp,5044/tcp}
firewall-cmd --reload
решение3
Вы всегда можете сделать небольшой скрипт/однострочник:
#!/bin/bash
for i in 80 443 22 123 21 1337 31337
do
firewall-cmd --zone=public --add-port=${i}/tcp
done
решение4
Несмотря на то, что это очень старый вопрос, он может оказаться действительно «интересным», поэтому я посчитал нужным на него ответить.
Все возможные порты в одной строке
# simple
firewall-cmd --add-port={80,443}/tcp
# Both protocols
firewall-cmd --add-port={80,443}/{tcp,udp}
# can be a bit complex and note the nested parentheses
firewall-cmd --add-port={{80,443}/{tcp,udp},{110,995}/tcp}
Затем посмотрите, что вы сделали :), набрав
firewall-cmd --list-ports
Но обслуживание лучше
Я также экспериментировал с --add-services', whose names can be found in
/etc/services'. Это даже лучше, чем использование портов. И имена, и порты находятся в этом файле, так что вы можете перечислить некоторые из них:
grep -E 'http|imap|pop3|smtp|dns|ftp' /etc/services
Мы можем открыть порты, введя следующее: ``:
# readable
firewall-cmd --add-service={http,https}
firewall-cmd --list-services
На данный момент это все.