Linux - firewalld - 開放端口


  1. 概述

    1. 年輕人的第一次 firewalld 體驗
  2. 背景

    1. 第一次安裝了 apache
      1. 正兒八經的
    2. 本來想在 localhost 用 curl 看看服務器得了
    3. 結果 80 端口的默認頁面, 是一個有頭有臉的 html
      1. 我頓時就像看看頁面長啥樣
      2. 可是換了 宿主機瀏覽器, 結果發現瀏覽器打不開
    4. 但是 ping 能通, ssh 也能通
    5. 於是又回到了老路, 防火牆 和 selinux 的問題
      1. 本來也時打算 一關解千愁
      2. 可是想起了上次的事, 決定還是稍微看看有沒有別的解決辦法
      3. 上次隨便關防火牆, 導致了 docker-cli 和 git 不能同時連接外網的神奇事件...
      4. 這次只說 防火牆, selinux 我現在也不會...
  3. 環境

    1. 虛擬機 OS

      1. CentOS 7
    2. Apache

      1. 2.4.6-90
    3. 網絡模式

      1. 橋接

1. 問題

  1. 問題

    1. 虛擬機內的 http 服務器, 無法被 宿主機 訪問
  2. 驗證

    1. 虛擬機

      1. httpd 正常啟動
      2. curl localhost 可以有正確結果
      3. 驗證 firewalld 是否打開
        1. 我這是打開了的
        2. 假如沒有打開, 我真不知道怎么辦了...
    2. 宿主機

      1. ping 通虛擬機
      2. 瀏覽器無法訪問
  3. 想法

    1. 嗯, 端口出了問題

2. 智障解法: 關閉防火牆

  1. 概述

    1. 最無腦的解法
    2. 要不是上次 docker 給我搞那么慘, 我就信了
  2. 操作

    # 1. 驗證 防火牆 是否打開
    > systemctl status firewalld
    # 2. 關閉 防火牆
    > systemctl stop firewalld
    # 3. 驗證 防火牆 是否打開
    > systemctl status firewalld
    
  3. 結果

    1. 防火牆關閉成功
    2. 宿主機 訪問 虛擬機 80 端口成功

3. 常規解法: 讓 firewalld 開放 80端口

  1. 概述

    1. 正常的解法
  2. 步驟

1. 確認 firewalld 是否打開

  1. 概述
    1. 一定要確保打開

2. 查看 firewalld 的 開放端口列表

  1. 概述

    1. 查看開放端口
  2. 命令

    > firewall-cmd --list-ports
    
  3. 結果

    1. 果然 80/tcp 並沒有在其中

3. 將 80/tcp 添加到 開放端口列表中

  1. 概述

    1. 添加開放端口
  2. 命令

    # 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. 宿主機驗證

  1. 概述

    1. 宿主機瀏覽器驗證
  2. 結果

    1. 我這邊通過了
      1. 具體我就不細說了

ps

  1. ref

    1. linux:centos7開啟80端口,開放外網訪問
  2. 其他

    1. firewalld 有空看一看
    2. firewalld 和 iptables
      1. 其實他倆, 是一個東西


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM