【问题现象】:通过rpm安装好lftp后,执行lftp huangmr:huangmr@192.168.107.132无法连接(lftp huangmr@192.168.107.132:~> ls
`ls' at 0 [Delaying before reconnect: 175]或者是一直处于connecting...);通过sftp huangmr@192.168.107.132却可以连接。
`ls' at 0 [Delaying before reconnect: 175]或者是一直处于connecting...);通过sftp huangmr@192.168.107.132却可以连接。
【问题原因】:
192.168.107.132上ftp服务异常(应该是没有启动ftp服务),使用上述命令不加端口默认使用21端口(ftp协议);按照网上的lftp使用方法“lftp
用户名:密码@ftp地址:传送端口(默认21)”加上22或115端口都不行,后来查到lftp与sftp结合使用,并不是直接用sftp端口就行了,需要使用lftp -u huangmr,huangmr sftp://192.168.107.132:22这种方式。
用户名:密码@ftp地址:传送端口(默认21)”加上22或115端口都不行,后来查到lftp与sftp结合使用,并不是直接用sftp端口就行了,需要使用lftp -u huangmr,huangmr sftp://192.168.107.132:22这种方式。
【排查过程】:
昨天解决这个问题提的时候,进行了以下方面的尝试排查:
1、是否网络断连:无法ping通远程ftp服务器,但是通过sftp是可以访问的,就证明,至少网络方面是打通了的,只是端口或服务可能有限制;
2、是否本地及远程ftp服务器的ftp服务没起:检查了本地vsftpd服务是起着的,没法连接远程ftp服务器,就没有检查其ftp服务,认为既然sftp是可用的那么ftp也没问题(这种想法是错误的);
3、是否本地root用户登录导致远端ftp服务器拒绝:使用普通用户dop等执行lftp huangmr:huangmr@192.168.107.132也是不行的;
晚上回去后验证:
4、是否使用的rpm包问题:在虚拟机上(两台虚拟机上都已启动了vsftpd服务)使用相同rpm包安装,发现连接正常(至少能证明rpm包以及安装方法是可以用的,从而怀疑现网服务与虚拟机环境不一致);
5、是否防火墙、SELinux等问题导致:在虚拟机A上启动SELinux后(vsftpd服务是起着的),从虚拟机A连接虚拟机B没问题,而如果B也开着SELinux,连接失败(仅验证对端启动SELinux会对lftp连接有影响,但是还是无法证明现网的问题是该问题导致,没法连接对端服务器关掉SELinux尝试!!!)。
今天上午的排查:
1、通过ftp 192.168.107.132尝试连接ftp,发现ftp超时:估计是对端ftp服务没启动;
2、查询lftp使用方法,如果不加端口,默认21端口,即使用ftp协议,通过上步排查,ftp服务实际上是没启动的,因此不再使用ftp协议方式连接。
使用lftp huangmr:huangmr@192.168.107.132:22也是无法连接,报FEAT negotiation...,百度上也没有找到什么有效方法。
3、既然只能使用sftp方式,又百度lftp sftp找到连接方式lftp -u huangmr,huangmr sftp://192.168.107.132:22,基本满足一线需求(通过sftp连接,在连接时能够直接输入密码,而非通过交互式输入密码连接ftp)。
【过程分析】:
1、问题排查过程中,有些验证方式实际上是不能充分证明或排除某问题,比如“认为既然sftp是可用的那么ftp也没问题”;
2、之所以出现不能充分证明的情况,还是由于自身对知识了解不充分,对ftp只是一知半解。
【想法】:
1、以后遇到问题时,首先列出可能的原因,先从最可能的原因入手,如果一知半解要先查资料,以找到充分证明或排除原因的方法,而不能想当然;
2、列出来可能原因以及证明方法,而不是脑袋一热就去搞,太乱,也浪费时间;
3、求助别人,有时候时间一久,脑袋还是容易发热,但是别人的一句话有时候真的很有用。