No route to host 之 SSH
最近DMZ的新系統上線,期間遇到了一個小問題,兩天都沒有解決,影響到了專案的進度。
簡單來說就是Office的機器通過ssh連線不到DMZ的機器。
其中,作業系統由國內的同事安裝與配置,硬體防火牆規則由泰國的同事設定。
這個問題都可能與防火牆的規則設定有關,因此出了問題,我們首先懷疑的就是防火牆的規則設定的有問題。
Office Server測試如下:
1.通過ssh連線DMZ 主機
#ssh 10.*.*.* -p22145
Error1: ssh: connect to host 10.*.*.* port 22145: No route to host
2.ping Dmz主機
#date && ping 10.*.*.*
Fri Jul 24 14:26:22 CST 2014
PING 10.*.*.* (10.*.*.*) 56(84) bytes of data.
^C
--- 10.*.*.* ping statistics ---
42 packets transmitted, 0 received, 100% packet loss, time 41929ms
3. telnet DMZ主機的IP 和埠
# date && telnet 10.*.*.* 22145 Fri Jul 24 14:28:41 CST 2014 Trying 10.*.*.*...
國內的同事通過虛機的控制檯登入DMZ的server
DMZ Local Server測試:
1.檢查ssh服務狀態是否正常
# service sshd status
openssh-daemon (pid 8014) is running...
2.檢查ssh的對應的埠
#netstat -lntp|grep sshd tcp 0 0 0.0.0.0:22145 0.0.0.0:* LISTEN 8014/sshd tcp 0 0 :::22145 :::* LISTEN 8014/sshd
3.檢查系統的iptables策略
# iptables -L -n --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22145
4.看本地的ip地址
#ifconfig |grep "inet addr"
inet addr:10.*.*.* Bcast:10.*.*.* Mask:255.255.255.192
inet addr:127.0.0.1 Mask:255.0.0.0
5.eth0的配置情況
#more /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:30:16:80:23:32
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID="e6361119-cd22-41de-9e84-f35b50c23d52"
IPADDR=10.*.*.*
NETMASK=255.255.255.192
GATEWAY=10.*.*.*
IPV6INIT=no
USERCTL=no
泰國的同事也將防火牆的設定規則,截圖發給國內的同事看,的確是按照同事提交的申請進行設定的防火牆規則。
國內裝系統的同事和泰國管理防火牆的同事開始討論這件事,都說自己的配置沒問題。由於用英語交流,況且都不是自己的母語,有些問題表達起來可能不是特別的清楚。
時間過去兩天了。。。。。。
他們兩個還在互相證明自己是對的,但最著急的是我。因為部門大BOSS在催這件事。
解決這件事情,只要證明其中的任何一個人說的是正確或錯誤就可以了,但機器都連不上,怎麼證明呢?
想來想去,想到了一個移花接木的辦法。
區域網中還有能ssh上的測試機,臨時關閉測試機。通過虛擬機器的console把新建機器的IP替換成測試機的IP.
如果可以訪問測試機的IP,就證明國內的同事沒問題,問題出在泰國同事的身上。如果不能訪問測試機的IP,就證明問題出在系統的設定上,與泰國同事設定的防火牆關係不大。
換上測試機器的ip,這樣還是不訪問。這樣證明了不是硬體防火牆的問題,剩下的問題就交給本地的同事去查了。果然一會他就找到了原因。
問題很簡單,但願下次不要犯類似的錯誤。
解決這個問題的關鍵是證明其中一個人是錯誤的。