【问题现象】:通过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却可以连接。
【问题原因】:
    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这种方式。
【排查过程】:
    昨天解决这个问题提的时候,进行了以下方面的尝试排查:
        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、求助别人,有时候时间一久,脑袋还是容易发热,但是别人的一句话有时候真的很有用。

lftp连接异常情况分析过程的更多相关文章

  1. 一则线上MySql连接异常的排查过程

    Mysql作为一个常用数据库,在互联网系统应用很多.有些故障是其自身的bug,有些则不是,这里以前段时间遇到的问题举例. 问题 当时遇到的症状是这样的,我们的应用在线上测试环境,JMeter测试过程中 ...

  2. JQuery阻止冒泡事件on绑定中异常情况分析

    科普下事件冒泡以及默认行为,以下面例子举列子:     事件冒泡:当点击内部button元素时,会触发自身及外层 a的点击事件,这就是事件冒泡引起的.事件会随着 DOM 的层次结构依次向上传播. 事件 ...

  3. Android运行异常情况分析(持续更新)

    1.java.lang.IllegalAccessException: access to class not allowed 原因:在写class 文件的时候没有把class设置成public 2. ...

  4. .NET Core HttpClient请求异常详细情况分析

    前言 最近项目上每天间断性捕获到HttpClient请求异常,感觉有点奇怪,于是乎观察了两三天,通过日志以及对接方沟通确认等等,查看对应版本源码,尝试添加部分配置发布后,观察十几小时暂无异常情况出现, ...

  5. 异常情况下的Activity生命周期分析

    情况1:资源相关的系统配置发生改变 资源相关的系统配置发生改变,举个栗子.当前Activity处于竖屏状态的时候突然转成横屏,系统配置发生了改变,Activity就会销毁并且重建,其onPause, ...

  6. 一次Linux系统被攻击的分析过程

    IT行业发展到现在,安全问题已经变得至关重要,从最近的“棱镜门”事件中,折射出了很多安全问题,信息安全问题已变得刻不容缓,而做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先 ...

  7. 基于TBDS的flume异常问题排查过程

    版权声明:本文由王亮原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/214 来源:腾云阁 https://www.qclou ...

  8. HBase一次客户端读写异常解读分析与优化全过程(干货)

    大数据时代,HBase作为一款扩展性极佳的分布式存储系统,越来越多地受到各种业务的青睐,以求在大数据存储的前提下实现高效的随机读写操作.对于业务方来讲,一方面关注HBase本身服务的读写性能,另一方面 ...

  9. 使用Django.core.cache操作Memcached导致性能不稳定的分析过程

    使用Django.core.cache操作Memcached导致性能不稳定的分析过程 最近测试一项目,用到了Nginx缓存服务,那可真是快啊!2Gb带宽都轻易耗尽. 不过Api接口无法简单使用Ngin ...

随机推荐

  1. 计算机组成原理 — CPU 中央处理器

    目录 文章目录 目录 前文列表 逻辑电路部件 组合逻辑电路 时序逻辑电路 阵列逻辑电路 中央处理器(CPU) 控制单元(控制器) 运算单元(运算器) 存储单元(寄存器组和片内缓存) CPU 的工作原理 ...

  2. java最常见的5个错误

    1. Null 的过度使用 避免过度使用 null 值是一个最佳实践.例如,更好的做法是让方法返回空的 array 或者 collection 而不是 null 值,因为这样可以防止程序抛出 Null ...

  3. C++类中的一些细节(重载、重写、覆盖、隐藏,构造函数、析构函数、拷贝构造函数、赋值函数在继承时的一些问题)

    1 函数的重载.重写(重定义).函数覆盖及隐藏 其实函数重载与函数重写.函数覆盖和函数隐藏不是一个层面上的概念.前者是同一个类内,或者同一个函数作用域内,同名不同参数列表的函数之间的关系.而后三者是基 ...

  4. 【AMAD】Pysnooper -- 别再用print进行debug了

    简介 动机 作用 用法 热度分析 源码分析 个人评分 简介 pysnooper是低配版debugger,别再用print进行debug了. 动机 想象一个场景,你的Python代码运行后不产生你要的效 ...

  5. Linux批量文件管理

    Linux批量文件管理   实验目标: 通过本实验掌握批量建立.移动.复制文件或目录的操作,也可以作为后续shell编程的基础. 实验步骤: 1.现在有十台终端机器,要为每台机器建立3个文件,总共要建 ...

  6. 在Debian下利用URLOS快速安装SqlServer2017

    SqlServer能在Debian上安装吗?答案是可以!网络上也能找到很多Linux系统下安装SqlServer的相关文章,也许经过一些折腾,你也能成功在Debian中安装sqlserver,但是其中 ...

  7. 简单场景的类继承、复杂场景的类继承(钻石继承)、super、类的方法

    1.python子类调用父类成员有2种方法,分别是普通方法和super方法 class Base(object): #基类的表示方法可以多种,Base(),Base,Base(object),即新式类 ...

  8. finereport JS 获取按钮所在单元格的值及获取当前报表的变量

    1.通过按钮获取单元格所在的值 debugger; var cr; if(window.lineboxes) { var cells = []; for (var i = 0; i < line ...

  9. hadoop的单机配置

    hadoop的单机配置 准备工作 利用vim /etc/sysconfig/network命令修改主机名称. Ssh security shell 远程登录 登录远程服务器 $ ssh user@ho ...

  10. Elasticsearch-数组和多字段

    ES-数组和多字段 当需要在同一个字段中需要拥有多个值时,就会用到数组. 数组 如果要索引拥有多个值的字段,将这些值放入方括号中即可.在music索引下的album类型中,添加songs字段,存储专辑 ...