在Centos7中,從主機 Windows 上無法遠程訪問 Linux 上rabbitmq的解決方法


 當在 Linux 上配置好 Rabbitmq服務器后,如果從主機中無法訪問到 Linux 中的Rabbitmq服務器時,需要做如下的檢查:

1. Rabbitmq是否啟動成功

在控制台輸入:

ps -ef | grep rabbitmq

命令含義:從當前所有進程中查找是否含有rabbitmq進程

如果有內容顯示,則說明 Rabbitmq啟動成功

否則,重新啟動 Rabbitmq

2. 檢查能否從 Linux 本地中訪問到 Rabbitmq

從控制台輸入命令:

wget http://localhost:15672

命令含義:訪問 http://localhost:15672

否則,檢查 Rabbitmq端口號是否正確

3. 檢查 Rabbitmq啟動端口號

Rabbitmq 默認的啟動端口號是 15672,如果你沒有對 Rabbitmq 的配置文件做修改的話應該是沒有問題的
輸入命令:

ps -ef | grep rabbitmq

命令含義:查看 Rabbitmq進程信息



查看進程號(圖中紅色框位置)

接着輸入命令:

netstat -apn | grep 9810

(注:grep 后跟的就是上一步所查的進程號)
命令含義:查看 9810進程占用的端口號

圖中紅色框位置即是你的 Rabbitmq的啟動端口號

4. 檢查遠程訪問的 ip 地址是否正確

如果從 Linux 本地可以成功訪問 Rabbitmq服務器,而從 Windows(主機) 上無法訪問,那么首先檢查遠程訪問的 ip 地址是否正確
在 Liunx 控制台上輸入命令:

ifconfig

 

圖中位置即是 Linux 的 ip 地址,若此處沒出現ens33的ip地址,可能是網絡配置沒配置好,解決方法具體請見https://www.cnblogs.com/zipxzf/p/11237269.html

5. 檢查 Linux 防火牆是否開放 Rabbitmq端口號

當window能夠ping通linux的ip,而還是不能通過ip在windows上訪問linux的一些服務,如tomcat、mysql、nginx、rabbitmq等服務,最可能的原因是linux的防火牆問題。

如果你沒有修改過 Linux 防火牆配置的話,那么 Rabbitmq 端口號一定是被禁用了 ,因為 Linux 防火牆默認只開啟 22 號端口。

你需要設置防火牆配置,開放 Rabbitmq的端口號 (注:網上有其他解決方法說直接關閉防火牆,這種方法很不可取

我的 Linux 版本是 CentOS 7 ,在CentOS 7或RHEL 7或Fedora中防火牆由firewalld來管理,如果要添加范圍例外端口 如 1000-2000

語法命令如下:啟用區域端口和協議組合

firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]

此舉將啟用端口和協議的組合。端口可以是一個單獨的端口 <port> 或者是一個端口范圍 <port>-<port> 。協議可以是 tcp 或 udp。

實際命令如下:

  添加

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

firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent 

  重新載入

firewall-cmd --reload

  查看

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

  刪除

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

此處的解決方案是開放 15672端口號只需輸入命令:(注:若python無法連接Rabbitmq,同理,則需要開放5672端口號)

firewall-cmd --zone=public --add-port=15672/tcp --permanent

然后重啟防火牆,即可解決:

firewall-cmd --reload

 成功訪問rabbitmq管理頁面

 


免責聲明!

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



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