在阿里雲的ECS雲主機上(CentOS)無法通過外網ip去訪問自己的網站的解決辦法


首先我們在阿里雲的雲服務器管理控制台中復制到ECS的公網ip並粘貼到瀏覽器上訪問得到下面的結果:

度娘上搜索資料發現絕大部分的解決辦法都是在服務器的安全組上配置上80端口


在配置好服務器的安全組后重啟了服務器查詢訪問,得到的結果還是沒有變化。
此時排除了服務器的安全組問題。
那么我們就應該測試排查看是否為服務器問題
首先我們打開Window下的cmd窗口,然后ping一下我們的服務器公網ip測試是否可用

結果可見我們的服務器公網IP是可以被外網訪問的。
隨后我們用工具(SocketTool)測試IP的端口是否可接通

經過SocketTool工具的測試我們可以發現服務器的22端口是可接通的,而80端口是不可接通的。接下來我們就應該去查看服務器內部的防火牆等問題
首先我們連接上自己的服務器(Window的cmd窗口下輸入ssh root@IP)
然后執行命令(netstat -ln)(此標簽詳細解釋: https://blog.csdn.net/rqy1994/article/details/51398547)

在執行結果中我們可以看到其中並沒有監聽80端口,由此得出我們的服務器並未開發80端口。

那么接下來我們就是要給服務器配置上:

  首先需要 通過 yum install httpd -y安裝好http服務
  (在yum安裝http服務時可能出現找不到包的情況此時我們修改/etc/yum.conf文件,將文件中的exclude那行注釋掉,也可只刪除httpd字段。)
  然后再通過 systemctl start httpd 開始http服務
  當然也可以通過systemctl enable  httpd 設置為開機自動啟動httpd服務
  systemctl stop httpd 結束http服務 

http服務開啟之后,如果配置過防火牆的規則的,就需要設置防火牆允許80端口

  firewall-cmd --zone=public --add-port=80/tcp

注:在我們給服務器安裝http服務的時候可能出現報錯(Failed to start httpd.service: Unit httpd.service not found.)
解決方法如下:

  1.找到yum.conf
        [root@d78acc291c9e var]# find / -name yum.conf
        /etc/yum.conf
  2.編輯yum.conf文件,注釋掉exclude那行,也可只刪除httpd
        [main]
        gpgcheck=1
        installonly_limit=3
        clean_requirements_on_remove=True
        best=True
        #exclude=httpd nginx php mysql mairadb python-psutil python2-psutil
  3.重新通過(yum install httpd -y)安裝http服務
  4.通過httpd -v查看http服務
        [root@d78acc291c9e var]# httpd -v
        Server version: Apache/2.4.37 (centos)
        Server built:   Dec 23 2019 20:45:34      

//---------------------------------------------------------------------------------------
在我們為服務器安裝上fttp服務和設置安全組后若還是不能服務,則需查看服務器的防火牆是否放行
執行(firewall-cmd --list-ports)查看防火牆放行的端口

可以看到防火牆並未放行80端口
下面是Linux防火牆操作所用到的代碼

  ====配置firewall-cmd
  查看版本:firewall-cmd --version
  查看幫助:firewall-cmd --help
  顯示狀態:firewall-cmd --state
  查看所有打開的端口:firewall-cmd --zone=publiu --list-ports
  更新防火牆規則:firewall-cmd --reload
  查看區域信息:firewall-cmd --get-active-zones
  查看指定接口所屬區域:firewall-cmd --get-zone-of-interface-eth0
  拒絕所有包:firewall-cmd --panic-on
  取消拒絕狀態:firewall-cmd --panic-off
  查看是否拒絕:firewall-cmd --query-panic

  ===開啟一個端口

  添加:
  firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,沒有此參數重啟后生效)

  重新載入:
  firewall-cmd --reload

  查看:
  firewall-cmd --zone=public --query-port=80/tcp

  刪除:
  firewall-cmd --zone=public --remove-port=80/tcp --permanent  

注:本文參考鏈接:
1.https://blog.csdn.net/qq_28949495/article/details/82227233?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-3&spm=1001.2101.3001.4242
2.https://blog.csdn.net/xiaopeng147258/article/details/80412912?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
3.https://www.cnblogs.com/v5captain/p/12596403.html


免責聲明!

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



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