RHEL / CentOS 防火牆開啟埠號

RHEL 及 CentOS 預設的防火牆會預設限制埠號對外開放, 如果安裝一些伺服器 (例如 Apache, NFS, Samba 等), 在本機測試正常, 但不能在外部連接, 可能是給防火牆封鎖了, 那便需要在防火牆開啟相應的埠號 (如 Apache 要開啟 80 或 443)。

在 RHEL 6 及 CentOS 6, 預設是使用 iptables, 而在 RHEL 7 開始改用了 firewalld 作為防火牆, 以下是兩者開啟埠號的方法。

RHEL 7 / CentOS 7 開啟埠號

例如我想永久開啟 80 埠號, 在 CentOS 7 輸入以下指令:

$ sudo firewall-cmd –zone=public –add-port=80/tcp –permanent
$ sudo firewall-cmd –reload

如果上面指令沒有加上 “–permanent” 參數, 下次重新開機後設定便會失效。

然後檢查設定是否生效:

$ sudo firewall-cmd –list-all

輸出類似這樣:

在 “ports” 一行, 可以看到 “80/tcp”, 那便表示埠號 80 的 tcp 連線對外開放。

RHEL 6 / CentOS 6 開啟埠號

在 CentOS 6 是使用 iptables 作為防火牆, 以下同樣是開啟埠號 80 作為例子:

$ sudo iptables -I INPUT -p tcp -m tcp –dport 80 -j ACCEPT
$ sudo service iptables save

上面第一行指令是開啟埠號 80 的連線, 而第二行指令則是將設定儲存, 讓下次開機保留這次的設定。




Leave a Reply