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
$ sudo firewall-cmd –reload
如果上面指令沒有加上 “–permanent” 參數, 下次重新開機後設定便會失效。
然後檢查設定是否生效:
$ sudo firewall-cmd –list-all
輸出類似這樣:
|
1 2 3 4 5 6 7 8 9 |
public (default) interfaces: sources: services: dhcpv6-client ssh ports: 80/tcp masquerade: no forward-ports: icmp-blocks: rich rules: |
在 “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
$ sudo service iptables save
上面第一行指令是開啟埠號 80 的連線, 而第二行指令則是將設定儲存, 讓下次開機保留這次的設定。
你好~
$ sudo firewall-cmd –list-all
是–list
少一個會跑不出來~
啊抱歉我少看一個XD