CentOS 打开21端口详解

21端口是FTP(文件传输协议)的标准端口,用于文件的上传和下载,在CentOS系统中,默认情况下,21端口是关闭的,为了满足文件传输的需求,我们需要手动打开21端口,本文将详细介绍如何在CentOS系统中打开21端口。
准备工作
在开始操作之前,请确保您已经登录到CentOS系统,并且具有root权限。
打开21端口的方法
以下是在CentOS系统中打开21端口的三种常用方法:
使用iptables
iptables是Linux系统中用于配置防火墙规则的工具,以下是通过iptables打开21端口的步骤:
- 打开终端,切换到root用户:
su -
- 编辑iptables规则文件:
vi /etc/sysconfig/iptables
- 在文件中添加以下行:
-A INPUT -p tcp -s 0/0 --dport 21 -j ACCEPT
- 保存并退出编辑器。
- 重启iptables服务以应用新的规则:
service iptables restart
使用firewalld
firewalld是CentOS 7及以上版本中用于配置防火墙的工具,以下是通过firewalld打开21端口的步骤:
- 打开终端,切换到root用户:
su -
- 启用firewalld服务:
systemctl start firewalld
- 添加21端口到防火墙规则:
firewall-cmd --permanent --add-port=21/tcp
- 重载firewalld以应用新的规则:
firewall-cmd --reload
使用SELinux
SELinux(安全增强型Linux)是Linux系统的一个安全模块,在某些情况下,即使防火墙规则已经设置,SELinux也可能阻止21端口的访问,以下是通过调整SELinux策略来允许21端口访问的步骤:
- 打开终端,切换到root用户:
su -
- 使用以下命令查看SELinux的状态:
getenforce
- 如果SELinux是开启状态,可以使用以下命令将其设置为宽容模式:
setenforce 0
- 重新启动SELinux以应用新的设置:
systemctl restart selinux
验证21端口是否打开

使用telnet命令测试21端口是否打开:
telnet 127.0.0.1 21
如果成功连接到FTP服务器,则表示21端口已打开。
使用nc(netcat)命令测试21端口是否打开:
nc -zv 127.0.0.1 21
如果返回“Connection to 127.0.0.1 21 port [tcp/*] succeeded!”,则表示21端口已打开。
FAQs
问题1:打开21端口后,为什么仍然无法访问FTP服务?
解答: 这可能是由于SELinux策略阻止了21端口的访问,请检查SELinux状态,并按照上述步骤调整策略。
问题2:如何关闭21端口?
解答: 如果您需要关闭21端口,可以按照以下步骤操作:

使用iptables关闭21端口:
vi /etc/sysconfig/iptables
删除或注释掉添加的规则行,然后重启iptables服务。
使用firewalld关闭21端口:
firewall-cmd --permanent --remove-port=21/tcp
重载firewalld以应用新的规则。
如果SELinux开启了,需要重新启动SELinux服务:
setenforce 1 systemctl restart selinux
通过以上步骤,您可以在CentOS系统中成功打开或关闭21端口。

