
這裡有2台伺服器
- 192.168.0.12
- 192.168.0.21
伺服器 192.168.0.12 的 50070 連接埠有一個服務正在執行
當我從 192.168.0.21 伺服器進行 telnet 時,它失敗:
$telnet 192.168.0.12 50070
Trying 192.168.0.12...
telnet: connect to address 192.168.0.12: Connection refused
當我給出主機名稱時,它也會失敗:
$telnet master1.mycluster 50070
Trying 192.168.0.12...
telnet: connect to address 192.168.0.12: Connection refused
即使我從 192.168.0.12 嘗試,如果我給 IP 位址也會失敗:
$telnet 192.168.0.12 50070
Trying 192.168.0.12...
telnet: connect to address 192.168.0.12: Connection refused
但如果我給出主機名,它就會起作用:
$telnet master1.mycluster 50070
Trying 127.0.0.1...
Connected to master1.mycluster.
Escape character is '^]'.
我發現這個問題無法 telnet 到伺服器連線拒絕,但我嘗試了所有的可能性。這些是我嘗試過的:
關閉兩台伺服器中的 iptables
在 cat /etc/hosts.allow 中加入了 ALL: ALL
確保服務正在該連接埠運行
但這些都不適合我。
這是我的/etc/hosts
127.0.0.1 master1.mycluster master1
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.12 master1.mycluster master1
192.168.0.21 slave1.mycluster slave1
我還缺少其他東西來使其正常工作嗎?
答案1
您的服務僅偵聽環回位址127.0.0.1
。
當您從地址建立連線192.168.0.21
或指定ip
地址時,它不起作用,因為您的服務沒有偵聽該地址ip
。
當您使用hostname
from時192.168.0.12
,它可以工作,因為它連接到環回位址。這是因為它會首先查看您的主機文件,/etc/hosts
其中有一個條目指向hostname
您的環回ip
:127.0.0.1 master1.mycluster