web-dev-qa-db-ja.com

CentOS7でfirewalldを使用して開いているポートのリストを表示する

firewalldを使用して開かれたすべてのポートの完全なリストを表示する簡単な方法はありますか?

コマンドfirewall-cmd --list-allは知っていますが、サービス名が表示されるだけで、サービスが開いていると定義しているポートは表示されません。

例えば:

[root@myserver log]# firewall-cmd --list-all
  dmz (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: ssh squid my-icap 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

これらの各サービスの定義ファイルを開いて、どのポートがオープンとして定義されているかを確認できることはわかっていますが、これを行うには1行の方法が必要であるように見えます。

そして、私はnetstatを探していません。ポートで何かがリッスンしているかどうかがわかります。これは、そのポートが別のホストからアクセス可能かどうかとは別の質問です。

4
Dave Mulligan

私もこれを探していましたが、現在このbashワンライナーを思いつきました

$ for s in `firewall-cmd --list-services`; do firewall-cmd --permanent --service "$s" --get-ports; done;

そして通常のポートには

$ firewall-cmd --list-ports

あるいは単に

$ firewall-cmd --list-all
1
davispuh