
我需要在 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
重新載入防火牆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
目前就這樣。