1. 程式人生 > >No route to host 之 SSH

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,這樣還是不訪問。這樣證明了不是硬體防火牆的問題,剩下的問題就交給本地的同事去查了。果然一會他就找到了原因。

問題很簡單,但願下次不要犯類似的錯誤。

解決這個問題的關鍵是證明其中一個人是錯誤的。