转载自:http://www.wo81.com/tec/os/suse/2014-04-16/116.html
故障描述:换机房后,配置ip启动成功后,7台服务器中只有一台,用putty 使用 SSH(协议SSH2)无法登录,报错:Connection timed out。
最终定位问题是下面第四点:发现网关没有配置。特此转载,方便后续学习。
解决过程:
1、客户机:ping 服务器IP
不通
2、服务器:ping 127.0.0.1,ping 当前服务器IP,ping 网关IP
都通
3、服务器:检查网络配置
# vi /etc/sysconfig/network/ifcfg-eth0
配置正常。实际内容不能贴出,只能贴个类似的:
BOOTPROTO='static'
STARTMODE='auto'
IPADDR=199.0.105.101
NETMASK=255.255.255.0
BROADCAST=199.0.105.255
NETWORK=199.0.105.0
STARTMODE=onboot
USERCONTROL=no
4、服务器:检查网关设置
发现网关没有配置,如下为配置好以后的效果:
方法1)route命令查看(default行)
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
199.0.105.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 199.0.105.1 0.0.0.0 UG 0 0 0 eth0
方法2)查看route文件(修改该文件,增加了默认路由default 199.0.105.1 - - )
# cat /etc/sysconfig/network/routes
default 199.0.105.1 - -
重启网络服务:/etc/init.d/network restart (这个我没有测试不重启是否可使修改生效)
方法3)yast 命令(可用于修改网关)
yast → Network Devices → Network Settings → 路由选择标签 即可查看
方法4)YaST控制中心(与yast命令类似,可用于修改网关)
5、网关(默认路由)设置生效后,客户机:ping 服务器IP
通
6、客户机:ssh连接服务器
依然 Connection timed out
7、服务器:检查ssh服务
# service sshd status
Checking for service sshd running
8、服务器:ssh连接本机
# ssh localhost
可正常连接。
9、怀疑防火墙的缘故,看了资料,修改了防火墙 /etc/sysconfig/SuSEfirewall2 配置文件,开放了ssh服务。
将FW_SERVICES_EXT_TCP=""修改为FW_SERVICES_EXT_TCP="ssh"
FW_SERVICES_EXT_TCP设置示例(/etc/services中的服务名,端口号,或者端口号范围,或者混合,空格分隔):
FW_SERVICES_EXT_TCP="ssh"
FW_SERVICES_EXT_TCP="123 514"
FW_SERVICES_EXT_TCP="3200:3299"
FW_SERVICES_EXT_TCP="ftp 22 telnet 512:514"
重启防火墙:
service SuSEfirewall2_init restart
service SuSEfirewall2_setup restart
检查状态:service xxxxx status
10、客户机:ssh到服务器
依然 Connection timed out,看来与防火墙配置无关啊
11、服务器:检查ssh配置文件
既然防火墙做了过滤,那会不会是ssh自身的问题呢?
在服务器上修改了ssh配置文件/etc/ssh/sshd_config。
将#PasswordAuthentication yes的注释去掉(ssh默认不支持密码方式验证)。
12、服务器:重启ssh服务
依然 Connection timed out,看来也不是ssh服务的问题呢
12、检查了另一台SUSE Linux Enterprise Server11,发现根本没有修改/etc/ssh/sshd_config,没有修改防火墙配置文件,可是为什么它又可以访问呢?因此检查了该服务器的防火墙,发现防火墙根本没有启动。
检查方法1:结果都是unused
service SuSEfirewall2_init status
service SuSEfirewall2_setup status
检查方法2:yast命令 → 安全和用户→防火墙 或者YaST控制中心
只能选择“立即启动防火墙”,说明是关闭的。
13、既然另一台没开防火墙,那么本机也干脆不开算了!停止并禁用防火墙。
方法1:命令
service SuSEfirewall2_init stop
service SuSEfirewall2_setup stop
chkconfig SuSEfirewall2_init off
chkconfig SuSEfirewall2_setup off
方法2:yast命令→ 安全和用户→防火墙(YaST控制中心图形化的方法,与yast命令类似)
立即停止防火墙,让后勾选:禁用防火墙自动启动
14、客户机:ssh到服务器
依然 Connection timed out。你妹啊,都搞到这一步了还不行!!!!
15、干脆拿一根网线用我的笔记本直连服务器看看!
配好笔记本IP地址(和服务器一个网段),ssh到服务器,搞定了!!!!
对于这个问题,我只能对网络管理员说:呵呵...