如何检查运行中的FTP进程?

在Linux系统中关闭FTP服务是提升服务器安全性的重要操作,尤其考虑到FTP协议使用明文传输敏感数据(如用户名、密码),存在被嗅探的风险,以下是详细操作指南,涵盖主流Linux发行版(Ubuntu/Debian/CentOS)和常见FTP服务软件(vsftpd/proftpd/pure-ftpd):


确认当前运行的FTP服务

在关闭前需确定系统使用的FTP服务类型:

# 检查已安装的FTP软件包
## Debian/Ubuntu
dpkg --get-selections | grep -E 'vsftpd|proftpd|pure-ftpd'
## CentOS/RHEL
rpm -qa | grep -E 'vsftpd|proftpd|pure-ftpd'

关闭FTP服务(分场景操作)

场景1:使用 systemd 的系统(Ubuntu 16.04+/CentOS 7+)

步骤:

  1. 停止运行中的服务(以 vsftpd 为例):
    sudo systemctl stop vsftpd  # 替换为实际服务名(如proftpd)
  2. 禁止开机自启:
    sudo systemctl disable vsftpd
  3. 验证状态(应显示 inactive 和 disabled):
    systemctl status vsftpd

场景2:使用 init 的旧系统(CentOS 6/Ubuntu 14.04-)

步骤:

  1. 停止服务:
    sudo service vsftpd stop  # 或 /etc/init.d/vsftpd stop
  2. 移除开机启动:
    sudo chkconfig vsftpd off  # CentOS
    sudo update-rc.d -f vsftpd remove  # Ubuntu/Debian
  3. 检查是否成功:
    service vsftpd status

彻底卸载FTP软件(可选)

若需完全移除FTP服务以释放资源:

# Debian/Ubuntu
sudo apt purge vsftpd proftpd pure-ftpd -y
# CentOS/RHEL
sudo yum remove vsftpd proftpd pure-ftpd -y

验证FTP服务已关闭

  1. 检查端口占用(FTP默认端口21):
    sudo netstat -tuln | grep ':21'

    若无输出则说明端口未监听。

  2. 尝试连接测试:
    ftp localhost  # 或使用 telnet 127.0.0.1 21

    应返回连接拒绝(Connection refused)。


安全建议

  1. 替代方案:
    使用加密协议替代FTP:

    • SFTP/SCP:基于SSH的文件传输(默认端口22),启用命令 sudo systemctl enable sshd。
    • FTPS:FTP over SSL/TLS(需配置证书)。
  2. 防火墙加固:
    禁止外部访问FTP端口:

    sudo ufw deny 21/tcp  # Ubuntu
    sudo firewall-cmd --permanent --remove-service=ftp  # CentOS
  3. 定期审计:
    使用 ss -tuln 或 nmap localhost 定期检查开放端口。

故障排除

  • 报错 “Unit not found”:说明服务名错误,通过 systemctl list-unit-files | grep ftp 确认正确名称。
  • 端口仍被占用:可能有残留进程,用 sudo killall vsftpd 强制结束。

引用说明:本文操作基于Linux官方文档(systemd、vsftpd)及服务器安全最佳实践,具体命令请以实际环境为准,生产环境操作前建议备份配置。

通过以上步骤,您已有效关闭Linux的FTP服务并提升系统安全性,对于长期运行的服务器,建议迁移至加密传输协议以保障数据安全。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7624.html

赞 (0)
酷番叔酷番叔
上一篇 2025年7月17日 06:11
下一篇 2025年7月17日 06:27

相关推荐

  • 在Linux系统中如何进入DOS命令模式?具体操作步骤是什么?

    在Linux系统中,直接进入“DOS命令”界面需要先明确一个概念:DOS(磁盘操作系统)是微软早期开发的操作系统,其命令行环境与Linux的Shell(如Bash)有本质区别,Linux本身不原生支持DOS命令,但可以通过模拟器、命令映射或虚拟机等方式实现类似DOS的命令行操作,以下是几种常见方法及详细操作步骤……

    2025年9月26日
    1.3K00
  • Linux如何调用执行JavaScript脚本?

    在Linux系统中调用JavaScript主要通过JavaScript运行时环境实现,其中Node.js是最主流的方式,此外还可借助命令行工具(如SpiderMonkey)、Shell脚本交互或浏览器环境执行,以下是具体实现方法及场景分析,通过Node.js环境调用JavaScriptNode.js是基于Chr……

    2025年10月6日
    28100
  • 为什么你还没用XX?3个理由说服你

    include是C/C++中的预处理指令,用于在编译前将指定头文件的内容插入当前文件,它允许代码复用、声明共享,是模块化编程的基础。

    2025年6月13日
    20400
  • Linux误删文件夹还能恢复吗?

    核心命令详解rmdir 命令(安全删除空文件夹)适用场景:仅删除空文件夹,命令格式:rmdir 文件夹路径示例:rmdir /home/user/empty_folder # 删除名为 empty_folder 的空目录⚠️ 限制:若文件夹非空,将报错 Directory not empty,rm 命令(递归删……

    2025年6月28日
    26900
  • 如何一招实时显示并保存管道数据?

    在Linux中,管道(Pipe)是进程间通信的核心机制,用竖线符号 表示(如 cmd1 | cmd2),它直接将前一个命令(cmd1)的标准输出(stdout)作为后一个命令(cmd2)的标准输入(stdin),管道本身是内存中的临时数据流,无法直接“查看”内容,但可通过以下方法间接捕获或监控其传输的数据:核心……

    2025年8月7日
    21800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信