做网络运维这行,最怕半夜三点被电话吵醒,说公司网断了。你连上服务器,发现ssh链接不上交换机,那心情简直比吞了苍蝇还难受。这篇文不整虚的,直接告诉你咋排查,保证你看完能省下不少加班费。
先说个真事。上个月有个做电商的朋友,半夜急得跳脚,说核心交换机ssh链接不上交换机了,后台全是订单报错。我让他别急,先别重启,重启可能更麻烦。我让他查了三样东西,结果发现是个低级错误。
第一,看IP和路由。很多人以为插上网线就能通,太天真。你得ping一下交换机的管理IP。ping不通,说明物理链路或者IP配置就有问题。要是ping得通,但ssh连不上,那就是端口或者服务的问题。这时候别瞎猜,用Telnet试试23端口。如果Telnet能连上,说明网络是通的,问题出在SSH服务上。
第二,查SSH服务状态。交换机默认可能没开SSH,或者开了但限制了来源IP。很多新手栽在这里。进交换机命令行,看vty线路配置。有没有开启ssh登录?有没有指定认证方式为本地或者AAA?还有,检查ip ssh version,现在都2.0了,别还用1.0,容易有安全漏洞。要是版本不对,客户端连不上也正常。
第三,看ACL和防火墙。有些公司为了安全,在交换机上配了访问控制列表。你可能忘了把自己电脑的IP加进去。或者,中间隔了个防火墙,端口没放行。22端口,必须放行。我见过最坑的情况,是交换机重启后,配置没保存,SSH服务没起来。这时候你连上去,发现连不上,急得满头大汗,其实保存一下配置就完事了。
数据说话。据我统计,80%的ssh链接不上交换机问题,都是配置遗漏或者权限不足导致的。只有20%是硬件故障或者软件Bug。硬件故障概率极低,除非你运气背到家。所以,别一上来就想着换设备,先软后硬,这是铁律。
对比一下,以前我们做外包,遇到这种问题,往往直接远程过去,一顿乱点。现在有了经验,先让客户提供show running-config | include ssh的输出。一看便知。要是配置里没ssh server命令,那肯定连不上。要是配了,但没指定vty线路的transport input ssh,也连不上。这些细节,新手容易忽略,老手一眼就能看出来。
再说说地域性的坑。有些地方的网络环境复杂,运营商的光猫和路由器设置奇葩,导致内网IP冲突。你看着IP是对的,其实被占了。这时候,换个网段试试,或者抓包看看ARP表。要是ARP表里IP对应的MAC地址不对,那就是IP冲突。解决起来也简单,把冲突的IP改掉,或者绑定静态ARP。
还有,时间同步问题。SSH连接需要时间同步,要是交换机时间和客户端时间差太多,证书验证可能失败。虽然SSH主要靠密钥,但有些认证方式对时间敏感。检查一下NTP配置,确保时间一致。
最后,给点实在建议。别等出了问题再找解决办法。平时多备份配置,多测试SSH连接。找个稳定的客户端,比如Xshell或者SecureCRT,别用系统自带的,稳定性差。要是实在搞不定,别硬撑,找厂家技术支持。但在那之前,把日志导出来,把配置导出来,这样人家也能快速帮你定位问题。
记住,网络运维是个细致活。ssh链接不上交换机,多半是人为疏忽。别慌,按步骤排查,总能解决。要是你还搞不定,或者怕搞坏配置,随时找我聊聊。毕竟,专业的事交给专业的人,省下的时间喝杯茶不香吗?