-
概述
- 年輕人的第一次 firewalld 體驗
-
背景
- 第一次安裝了 apache
- 正兒八經的
- 本來想在 localhost 用 curl 看看服務器得了
- 結果 80 端口的默認頁面, 是一個有頭有臉的 html
- 我頓時就像看看頁面長啥樣
- 可是換了 宿主機瀏覽器, 結果發現瀏覽器打不開
- 但是 ping 能通, ssh 也能通
- 於是又回到了老路, 防火牆 和 selinux 的問題
- 本來也時打算 一關解千愁
- 可是想起了上次的事, 決定還是稍微看看有沒有別的解決辦法
- 上次隨便關防火牆, 導致了 docker-cli 和 git 不能同時連接外網的神奇事件...
- 這次只說 防火牆, selinux 我現在也不會...
- 第一次安裝了 apache
-
環境
-
虛擬機 OS
- CentOS 7
-
Apache
- 2.4.6-90
-
網絡模式
- 橋接
-
1. 問題
-
問題
- 虛擬機內的 http 服務器, 無法被 宿主機 訪問
-
驗證
-
虛擬機
- httpd 正常啟動
curl localhost
可以有正確結果- 驗證 firewalld 是否打開
- 我這是打開了的
- 假如沒有打開, 我真不知道怎么辦了...
-
宿主機
- ping 通虛擬機
- 瀏覽器無法訪問
-
-
想法
- 嗯, 端口出了問題
2. 智障解法: 關閉防火牆
-
概述
- 最無腦的解法
- 要不是上次 docker 給我搞那么慘, 我就信了
-
操作
# 1. 驗證 防火牆 是否打開 > systemctl status firewalld # 2. 關閉 防火牆 > systemctl stop firewalld # 3. 驗證 防火牆 是否打開 > systemctl status firewalld
-
結果
- 防火牆關閉成功
- 宿主機 訪問 虛擬機 80 端口成功
3. 常規解法: 讓 firewalld 開放 80端口
-
概述
- 正常的解法
-
步驟
1. 確認 firewalld 是否打開
- 概述
- 一定要確保打開
2. 查看 firewalld 的 開放端口列表
-
概述
- 查看開放端口
-
命令
> firewall-cmd --list-ports
-
結果
- 果然 80/tcp 並沒有在其中
3. 將 80/tcp 添加到 開放端口列表中
-
概述
- 添加開放端口
-
命令
# 1. 添加端口 # 參數意思, 我並不是很懂 # 但是稍微有點基礎的同學, 肯定能猜個 7788 # 我打算等以后正式學習 firewalld 時, 再 詳細說明 > firewall-cmd --zone=public --add-port=80/tcp --permanent # 2. 重啟 firewalld # 這步必須有 > firewall-cmd --reload # 3. 查看是否生效 # 80/tcp 加入了列表 > firewall-cmd --list-ports
4. 宿主機驗證
-
概述
- 宿主機瀏覽器驗證
-
結果
- 我這邊通過了
- 具體我就不細說了
- 我這邊通過了
ps
-
ref
-
其他
- firewalld 有空看一看
- firewalld 和 iptables
- 其實他倆, 是一個東西