FTP默认端口是多少

FTP协议在传输控制中默认使用两个端口,命令端口为21,数据端口为20。当我们执行linux ftp命令连接远程服务器时,如果不特别指定端口,系统会自动尝试连接目标主机的21号端口。这个端口负责传递用户登录信息、执行目录切换、文件重命名等控制指令,是整个FTP会话的管理中枢。理解21号端口的作用linux课程,是排查连接失败问题的第一步。

除了21号命令端口,FTP在进行实际文件传输时还会用到20号数据端口。在主动模式下,服务器会从20号端口主动向客户端发起数据连接。这意味着FTP服务需要同时开放这两个端口才能正常工作。许多初学者只放行了21端口,结果发现能登录但无法列出目录或下载文件,正是因为忽略了20端口的数据通道规则。

如何修改FTP端口号

linux ftp命令 端口_查询端口命令_telnetip端口命令

修改FTP服务端口需要编辑vsftpd或其他FTP服务器的配置文件。以最常见的vsftpd为例,使用vim打开/etc/vsftpd/vsftpd.conf文件,找到“listen_port=21”这一行,将21改为你想要的新端口号,例如2121。修改后保存文件,并执行systemctl restart vsftpd命令重启服务,新的端口配置就会生效。注意新端口不能与其他常用服务冲突。

当服务器端口改为非标准端口后,客户端连接时必须显式指定端口。使用linux ftp命令时,格式为“ftp 服务器IP 新端口号”,例如“ftp 192.168.1.100 2121”。如果使用lftp或sftp等其他客户端,参数写法略有不同但原理相同。另外,修改默认端口可以降低被自动化攻击扫描的风险,但也会带来管理上的不便linux ftp命令 端口,建议在防火墙规则中做好标注。

主动模式与被动模式端口区别

linux ftp命令 端口_查询端口命令_telnetip端口命令

主动模式下,FTP客户端从随机端口向服务器的21号端口发起控制连接,然后服务器从自己的20号端口主动连接客户端的一个随机端口。这种模式要求客户端防火墙允许来自外部的入站连接,对于家庭网络或企业内网来说往往会被安全策略拦截,导致连接失败。因此主动模式在现代网络环境中越来越少被采用。

被动模式则解决了主动模式的弊端。客户端同样连接服务器的21号端口,但服务器会开放一个临时端口范围(通常为30000至31000)并告知客户端,由客户端主动发起数据连接。这样所有连接都是从客户端向外发起,避免了防火墙入站规则的限制。在linux ftp命令中,通过输入“passive”可以切换主动被动模式,输入“passive on”则强制使用被动模式。

防火墙如何开放FTP端口

查询端口命令_telnetip端口命令_linux ftp命令 端口

配置iptables防火墙时,需要同时开放命令端口和数据端口。如果使用默认21端口,执行“iptables -A INPUT -p tcp --dport 21 -j ACCEPT”开放控制连接。对于主动模式,还要开放20端口:“iptables -A INPUT -p tcp --dport 20 -j ACCEPT”。对于被动模式,则需要开放整个被动端口范围,例如“iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT”。

使用firewalld更简单,可以直接加载FTP服务模板:“firewall-cmd --add-service=ftp --permanent”。但firewalld的ftp模板默认只处理21端口,对于被动模式仍需单独开放端口范围。更推荐的做法是使用nf_conntrack_ftp内核模块,它会动态跟踪FTP控制连接并自动放行数据端口。执行“modprobe nf_conntrack_ftp”即可加载,然后重启防火墙,这样就不用手动配置被动端口范围了。

如何测试FTP端口连通性

查询端口命令_telnetip端口命令_linux ftp命令 端口

在linux系统中,测试FTP端口是否开放最简单的方法是使用telnet命令。例如“telnet 192.168.1.100 21”,如果看到220开头的欢迎信息,说明21端口可达且FTP服务正在运行。如果没有响应或连接被拒绝,则可能是防火墙拦截或服务未启动。对于非标准端口,同样使用telnet测试即可。注意telnet只能测试控制端口,无法验证数据端口。

更专业的测试工具是nmap。执行“nmap -p 21,20 192.168.1.100”可以扫描这两个端口的状态。加上“-sV”参数还能探测FTP服务的版本信息。如果需要测试被动端口范围,可以扫描整个范围:“nmap -p 30000-31000 192.168.1.100”。另外,使用lftp客户端连接后,开启调试模式“debug 3”,可以详细看到端口协商过程,从而判断数据端口是否正常工作。

常见FTP端口故障如何解决

查询端口命令_telnetip端口命令_linux ftp命令 端口

故障一:能登录但无法列出目录。这通常是因为数据端口被阻断。检查客户端是否处于主动模式而防火墙不允许入站连接,解决方法是在ftp命令后输入“passive”切换到被动模式。如果被动模式仍然失败,检查服务器端是否配置了被动端口范围,并且防火墙已放行该范围。同时确认/etc/vsftpd/vsftpd.conf中有“pasv_enable=YES”和“pasv_min_port”“pasv_max_port”参数。

故障二:连接被拒绝或超时。首先用netstat -tulnp | grep vsftpd确认服务是否监听在正确的端口上。然后检查SELinux:“getsebool -a | grep ftp”,如果ftpd_use_passive_mode或ftpd_full_access为off,执行“setsebool -P ftpd_full_access on”。最后查看云服务器安全组规则,许多云厂商要求同时在实例防火墙和控制台安全组中放行端口linux ftp命令 端口,容易遗漏。按顺序从服务监听、本地防火墙、SELinux到云安全组逐一排查即可解决问题。

你在使用linux ftp命令时linux获取当前时间,是否遇到过端口不通导致文件传输失败的情况?欢迎在评论区分享你的排障经验,点赞转发让更多运维朋友看到这份实用指南。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复