检测 linux 系统下 sftp 服务是否开启
检测环境
服务器环境: 阿里云 ESC 服务器,CentOS 7.6。
前言
之前写过一篇文章 centos 安装、配置 ftp 和操作用户,里面介绍了通过 yum 安装 vsftpd 的过程,其中第一步就是通过 rpm 指令检测 vsftpd 是否安装:rpm -qa | grep vsftpd
。
rpm 指令能够检测到的只有通过 rpm 或者 yum 进行安装的软件包,如果是通过其他方式安装的软件,是查不到的。
Linux 软件有哪些安装方式? yum 与 rpm 有什么关系?请看 Linux软件安装,RPM与YUM。
sftp 等于 vsftpd 吗? ftp、sftp、vsftp、vsftpd 这几个术语之间是什么关系?请看 ftp、sftp、vsftp、vsftpd 四者区别。
因为服务器拿到之后就可以用 sftp 上传文件了,所以肯定是存在这样一个 sftp 服务的,且该服务已开启。在确认不是通过包管理器安装的情况下,可以通过查询进程或端口来查看服务。
具体操作
- 查看下端口是不是开启
netstat -an | grep '22'
详细的 netstat 指令介绍,可以看这里 Linux netstat命令详解。
22 端口其实查的是 ssh 服务,所以也可以用 netstat -an | grep 'ssh'
查询。
- 查看进程:
ps -ef | grep sftp
值得注意的是,这两种方法都需要在开启一个 sftp 客户端并已经连接了服务器的情况下才能查出来。除非是以 vsftpd 形式运行。
[notice]vsftpd 以 daemon 形式运行,可以通过 service 进行控制,所以可以直接通过进程或端口查到。[/notice]