Centos7 でポートを開放する方法:コマンドとファイル書き込み

サーバー構築時にはポートの設定をいじることは当たり前だけど
最近(?)では仮想環境(DockerやVagrant)でのアプリ開発も普通なので
自分である程度設定できたほうがいいよね。

Centos6とCentos7のポート開放

ご存じの通りCento6とCentos7でポート開放の方法は異なります。
Centos6ではiptablesをイジイジするのですが

/etc/sysconfig/iptables

Centos7ではそんなことしてもぱっぱらぱーです。

Centos7ではiptablesにかわりFirewalldデーモンを使用します。

一応redhatによると下記のように言っています。

The firewalld daemon provides a dynamically managed firewall with support for network “zones” to assign a level of trust to a network and its associated connections and interfaces.

実際やることは、Centos6とほとんど変わらないから
使うコマンドが違うよぐらいで大丈夫です。

普通はコマンドで済ますんだけど
ファイルを編集する方も覚えておきましょうね。
結局最後はコマンド使うけどね。




コマンドでポートを開放する

今回はrailsで使う3000番を解放させましょう。
使用するコマンドははfirewall-cmdです。
*rootでやってくださいね。

一時的にだけで良いならpermanentを除いてください。

最後にfirewalldをリロードします。

ファイルを編集してポートを開放する

/etc/firewalld/zones/public.xml を編集します。
最初の状態はおそらく

ここに

<port protocol="tcp" port="3000"/>

を追加します。

最後にfirewalldをリロードします。




開放したポートを確認する

reloadしたら、それが反映されているかチェックしましょう。

反映されてますね!!



いや~簡単だったね。

firewallcmdを使用してポートを開放したはずなのに、
まだサービスに接続できないとき、ルーターなど別の要因が考えられます。
その場合はサーバー内部からでなく、外部からポートの状態を確認するため、
Nampを利用しましょう。

https://omohikane.com/check_port_with_nmap/



もっと詳しく!!
そんな方はredhatのページでどうぞ。

気が向いたらまとめるね。



じゃあね~