我的伺服器沒有收到來自 ping 的響應
如果我通過 SSH 連接到我的伺服器,並嘗試 ping 另一台伺服器,我永遠不會看到響應。這似乎只發生在網址上。我已經能夠ping通幾個IP地址。
當我的 PHP cURL 請求失敗時,我首先註意到了這個問題;我看到了這個錯誤:“名稱查找超時”。
另外,我不確定這是否異常,但我無法在我的伺服器上找到 nslookup 或 dig。(執行 which nslookup 和 which dig 沒有提供任何結果)
這個問題似乎與切片遷移相吻合(Slicehost 正在遷移我的切片)。
有趣的是,我能夠從任何其他電腦成功 ping 我的伺服器,並導航到它託管的網頁。
我的伺服器是:Debian 5.0 (lenny),如果有什麼不同的話,我正在執行 Apache。我有點 SysAdmin 菜鳥,所以如果有更多有用的資訊,請告訴我。任何援助將不勝感激。謝謝!
新塘,
聽起來您遇到了 DNS 解析問題。要確認網路連接,您可以 ping Google 的 DNS 伺服器 8.8.8.8 或 8.8.4.4。如果可行,但 ping google.com 返回名稱查找超時,則可能是 DNS 問題。
/etc/resolv.conf 應該包含您的機器發送 DNS 查詢的解析器列表。該列表應包括您的託管服務提供商推薦的內容。我不使用 Slicehost,所以我不能確定,但這個 wiki 可能會有所幫助:http ://wiki.slicehost.com/doku.php?id=using_slicehost_nameservers_for_dns_lookups
出於測試目的,您可以將 Google 的名稱伺服器添加到 /etc/resolv.conf(在開頭),看看是否能解決您的問題。
例如
名稱伺服器 8.8.8.8
編輯:
如果您的 /etc/resolv.conf 看起來不錯,請確保您的防火牆沒有阻止 DNS 數據包。如果你使用 iptables,你可以通過執行 ‘iptables -L’ 查看你的規則。DNS 使用埠 53,因此您需要確保有一條規則允許查詢發出,而另一條規則允許返回。
例子:
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT