在CentOS系统中查询SFTP端口是一项常见的管理任务,SFTP(SSH File Transfer Protocol)通常运行在SSH服务之上,默认端口为22,出于安全或特定需求,管理员可能会修改默认端口,以下是查询SFTP端口的详细方法,涵盖多种场景和工具使用。

检查SSH配置文件
SFTP依赖于SSH服务,因此首先需要检查SSH的主配置文件,在CentOS中,SSH配置文件通常位于/etc/ssh/sshd_config,使用文本编辑器(如vi或nano)打开该文件,查找Port指令。
sudo vi /etc/ssh/sshd_config
在文件中搜索Port关键字,若未注释掉(以开头),则其后的数字即为SSH/SFTP端口,若文件中未指定Port,则默认使用22,修改后需重启SSH服务使配置生效:
sudo systemctl restart sshd
使用netstat命令查询端口
netstat是传统的网络工具,可查看当前监听的端口,执行以下命令查看SSH/SFTP端口:
sudo netstat -tulnp | grep ssh
-t:显示TCP端口-u:显示UDP端口-l:仅显示监听端口-n:以数字形式显示地址和端口-p:显示进程ID和名称 输出结果中,类似0.0.0:22或::2222的条目即为监听端口。
使用ss命令查询端口
ss是netstat的替代工具,性能更优,执行以下命令:
sudo ss -tulnp | grep ssh
参数与netstat类似,但输出格式更简洁,若看到LISTEN状态且关联SSH进程的端口,即为SFTP端口。
检查防火墙规则
CentOS默认使用firewalld或iptables管理端口访问,若SSH端口被修改,需确保防火墙允许该端口,对于firewalld,执行:

sudo firewall-cmd --list-ports
查看已开放的端口列表,若未包含目标端口,可通过以下命令添加:
sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload
对于iptables,使用:
sudo iptables -L -n | grep ssh
查看进程监听端口
通过lsof命令可查看进程监听的端口:
sudo lsof -i -P -n | grep sshd
输出中类似LISTEN和端口的列即为SSH/SFTP监听端口。
验证端口连通性
确认端口配置后,可通过telnet或nc测试连通性。
telnet localhost 22
或

nc -zv localhost 22
若显示连接成功,则端口配置正确。
相关问答FAQs
Q1: 如何在CentOS中修改SFTP默认端口?
A1: 修改SFTP端口需编辑SSH配置文件/etc/ssh/sshd_config,找到Port指令并取消注释,设置新端口号(如Port 2222),保存后重启SSH服务:sudo systemctl restart sshd,同时需更新防火墙规则允许新端口访问,避免连接被阻。
Q2: 为什么修改端口后仍无法连接SFTP?
A2: 可能原因包括:防火墙未开放新端口、SELinux策略阻止、SSH服务未重启成功,可通过sudo firewall-cmd --list-ports检查防火墙,sestatus查看SELinux状态,并使用systemctl status sshd确认SSH服务运行状态,必要时调整SELinux策略:sudo setsebool -P ssh_port_t 1。