服务器测评网
我们一直在努力

linux 查看ssh端口命令是什么?如何确认端口号?

在Linux系统中,SSH(Secure Shell)是一种广泛使用的远程管理协议,默认情况下通过22端口进行通信,出于安全考虑或网络环境需求,管理员常会修改默认端口,掌握查看SSH端口的方法是系统管理的基础技能,本文将详细介绍通过多种方式查看SSH端口配置,涵盖默认端口、修改后的端口、监听状态及连接验证等场景,帮助用户全面掌握端口查看技巧。

linux 查看ssh端口命令是什么?如何确认端口号?

通过SSH配置文件查看端口设置

SSH服务的端口配置主要存储在SSH服务的主配置文件中,不同Linux发行版的配置文件路径可能略有差异,但核心内容一致。

查看默认配置文件

对于基于Debian/Ubuntu的系统,SSH服务配置文件通常位于/etc/ssh/sshd_config;基于CentOS/RHEL的系统则位于/etc/ssh/sshd_config,使用catlessvim等命令可查看文件内容,

cat /etc/ssh/sshd_config | grep Port

若文件中未明确指定Port指令,则SSH服务会使用默认端口22,若存在Port指令(如Port 2222),则该值即为当前SSH服务的监听端口。

检查配置文件中的注释与默认值

SSH配置文件中可能包含#Port 22这样的注释行,需注意只有去掉且未被注释的Port指令才会生效,若配置文件中存在多个Port指令,最后一个有效指令将覆盖前面的配置,因此需仔细检查文件末尾的端口设置。

使用系统命令实时查看SSH端口监听状态

确认SSH服务是否正在监听指定端口,可通过系统命令查看网络连接状态,这是验证端口实际运行情况的最直接方法。

使用netstat命令查看

netstat是传统的网络工具,可通过-tuln参数显示所有TCP/UDP监听端口,结合grep可筛选SSH相关端口:

netstat -tuln | grep ssh

或直接指定协议类型(SSH默认使用TCP协议):

netstat -tuln | grep :22

若SSH端口被修改为2222,则命令需调整为:

netstat -tuln | grep :2222

命令输出中,Active Internet connections部分会显示监听地址(如0.0.0:220.0.1:22)和状态(LISTEN),其中0.0.0表示监听所有网络接口,0.0.1仅本地监听。

使用ss命令查看(推荐)

ssnetstat的替代工具,在性能上更优,尤其在高并发场景下表现更佳,基本用法与netstat类似:

ss -tuln | grep ssh
ss -tuln | grep :22

ss命令的输出格式更简洁,且支持更多高级过滤条件,例如通过-p参数查看占用端口的进程ID(PID):

ss -tulpn | grep :22

输出中会显示ssh进程的PID及完整路径,便于进一步排查问题。

linux 查看ssh端口命令是什么?如何确认端口号?

通过进程信息验证SSH服务与端口关联

SSH服务的端口监听由sshd进程负责,通过查看进程的详细信息,可确认其是否正确绑定到目标端口。

使用ps命令查看进程

ps -ef | grep sshd

命令会列出所有sshd相关进程,包括主进程和可能的子进程,若SSH服务正在运行,至少会存在一个sshd进程,其启动参数可能包含端口信息(如-p 2222),但更可靠的方式是通过lsofss命令进一步确认。

使用lsof命令查看进程端口占用

lsof(list open files)可显示进程打开的文件,包括网络端口,通过以下命令可查看sshd进程占用的端口:

lsof -i -P -n | grep sshd

参数说明:-i仅显示网络相关文件,-P不解析端口号(显示数字形式),-n不解析主机名(显示IP地址),输出结果中会明确显示sshd进程监听的IP和端口,如*:2222 (LISTEN)

验证SSH端口连通性与远程连接

确认端口配置和监听状态后,还需验证端口是否可被远程客户端访问,避免因防火墙或网络策略导致连接失败。

使用telnet测试端口连通性

telnet <服务器IP> <端口号>

例如测试服务器的22端口:

telnet 192.168.1.100 22

若连接成功,会显示Connected to 192.168.1.100,并返回SSH协议的 banners 信息;若失败,则提示Connection refused(端口未开放)或No route to host(网络不可达)。

使用nc(netcat)测试

nc是更灵活的网络工具,可替代telnet进行端口测试:

nc -zv <服务器IP> <端口号>

参数-z表示扫描模式,-v显示详细信息。

nc -zv 192.168.1.100 2222

成功时会输出Connection to 192.168.1.100 port 2222 [tcp/*] succeeded!

使用nmap进行端口扫描

nmap是专业的端口扫描工具,可提供更详细的端口状态信息:

nmap <服务器IP> -p <端口号>

例如扫描22端口:

linux 查看ssh端口命令是什么?如何确认端口号?

nmap 192.168.1.100 -p 22

输出会显示端口状态(open表示开放)、服务名称(ssh)及版本信息。

常见问题排查

若通过上述方法发现SSH端口异常,可从以下方面排查:

检查SSH服务状态

确保sshd服务正在运行:

systemctl status sshd  # CentOS/RHEL
service ssh status      # Debian/Ubuntu

若未运行,可通过systemctl start sshdservice ssh start启动。

检查防火墙规则

Linux系统防火墙(如iptables、firewalld)可能阻止SSH端口访问,检查iptables规则:

iptables -L -n | grep <端口号>

若未允许,需添加规则并保存,如:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

检查SELinux状态

在CentOS/RHEL系统中,SELinux可能阻止SSH连接,可通过以下命令临时关闭(测试用):

setenforce 0

若关闭后可正常连接,则需调整SELinux策略(如semanage port -a -t ssh_port_t -p tcp 2222)。

查看Linux系统SSH端口的方法多样,从配置文件检查到实时网络状态监控,再到连通性测试,形成了完整的排查链条,管理员需根据实际场景选择合适工具:sshd_config用于确认配置,netstat/ss用于查看监听状态,telnet/nmap用于验证远程访问,掌握这些方法不仅能快速定位端口问题,还能提升SSH服务的安全性和稳定性,为远程管理提供可靠保障。

赞(0)
未经允许不得转载:好主机测评网 » linux 查看ssh端口命令是什么?如何确认端口号?