サーバ管理していると、ポート関係で思ったサービスがインターネット上から遮断されていて動かなかったりする場合があります。その場合ファイヤーウォールを確認して変更などの作業が必要になります。
使用しているポートの確認コマンド
# lsof -i -P
# lsof -i -P | more
| moreをつけると、ページごとに表示してくれるので流されなくて済みます。
上記の図のように、何となく、どのポートが何に使われているのかが確認できますね。
開いているポート確認
実際に、ファイヤーウォールで遮断されてない外部にも開いているポートを確認します。
# nmap localhost
上記の図から、993という数字がありますが、この数字は、外部からの通信を受け付けていない状態のポートという意味のようです。
その下の方に、22、80・・・とありますが、この表示が、現在外部に対して開いてアプリケーションが受信可能なポートのようです。
# nmap -p 0-65535 localhost
上記のように、ポートの範囲を選択して開いて使われている外部ポートを調べることができるようです。
上記のは、TCPだけでしたが、UDPを調べたい場合は、
# nmap -sU localhost
iptablesでポート管理
ポートの開け閉めは、コマンドからできるようですが、その方法は、下記の参考サイトを参考にしてください。
Linux firewalldでポート開放する方法(RHEL/CentOS7系)
# vi /etc/sysconfig/iptables
などで、iptablesの中を見ると、
上記の図のようになっていますが、80ポートの設定が複数でていますが、何で入っているのかは今の自分にはわかりません。
それは後ほど調べるとして、意味を調べてみたいと思います。
-A INPUT -p tcp -m tcp --dport **** -j ACCEPT
この文字列が、ポート開放の分であり、****番ポートをTCPで受け付け可能にする命令のようです。****を好きな数字にすれば望むポートを開くことができるようですね。
ポートの設定を追加したら、iptablesを再起動して設定を有効にします。
$ /etc/init.d/iptables restart
ちなみに、ipteblesの書式の意味は下記のサイトに詳細がある。