FirewalldはTCPとUDPを1行として定義します。

FirewalldはTCPとUDPを1行として定義します。

もちろん、ポートとプロトコルを1行で定義することも可能ですが、TCPとUDPプロトコルを別々のFirewalldコマンドではなく1行にどのように定義しますか?

[root@centos8 /]# firewall-cmd --permanent --add-port=2222/tcp/udp
Error: INVALID_PORT: bad port (most likely missing protocol), correct syntax is portid[-portid]/protocol
[root@centos8 /]# firewall-cmd --permanent --add-port=2222/tcp-udp
Error: INVALID_PROTOCOL: 'tcp-udp' not in {'tcp'|'udp'|'sctp'|'dccp'}
[root@centos8 /]# firewall-cmd --permanent --add-port=2222/tcp|udp
-bash: udp: command not found
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
BrokenPipeError: [Errno 32] Broken pipe
[root@centos8 /]# firewall-cmd --permanent --add-port=2222/tcp,udp
Error: INVALID_PROTOCOL: 'tcp,udp' not in {'tcp'|'udp'|'sctp'|'dccp'}
[root@centos8 /]# firewall-cmd --permanent --add-port=2222/tcp udp
usage: see firewall-cmd man page
firewall-cmd: error: unrecognized arguments: udp
[root@centos8 /]# firewall-cmd --permanent --add-port=2222/'tcp''udp'
[root@dynatrace /]# firewall-cmd --permanent --add-port=2222/tcp udp
usage: see firewall-cmd man page

最後の出力でわかるように、マニュアルページを確認しましたが、その例を見つけることができませんでした。

ベストアンサー1

マニュアルページによると、ポートには1つのプロトコルしか指定できません。これは、各ポートに対して2つのコマンドを実行する必要があることを意味します。

ポートは単一のポート番号またはポート範囲portid-portidです。契約は次のようにすることができます。どちらかTCP、UDP、sctp、またはdccp。

サービスが同じポートでTCPとUDPの両方をリッスンすることは非常にまれです。私が知っているサービスは、このように動作するサービスがちょうど一つありますが、まさにDNSです。

ライナーにするには、次のシェル機能を使用できます。

ftu() {
    firewall-cmd --permanent --add-port="$1"/TCP
    firewall-cmd --permanent --add-port="$1"/UDP
}

ftu 1000

おすすめ記事