您好,登录后才能下订单哦!
# Linux下怎么查看服务端口号
## 前言
在Linux系统管理和网络运维中,查看服务端口号是一项基础但至关重要的技能。无论是排查网络连接问题、配置防火墙规则,还是监控服务运行状态,都需要准确掌握系统中各服务对应的端口号。本文将详细介绍Linux环境下多种查看服务端口号的方法,帮助系统管理员和开发人员快速定位所需信息。
## 一、端口号基础概念
### 1.1 什么是端口号
端口号是16位无符号整数(范围0-65535),用于区分同一台主机上的不同网络服务。它就像公寓的门牌号,让外部请求能够准确找到对应的服务程序。
### 1.2 端口号分类
- **知名端口(0-1023)**:分配给系统服务(如HTTP-80、SSH-22)
- **注册端口(1024-49151)**:用户程序可注册使用的端口
- **动态/私有端口(49152-65535)**:临时使用的客户端端口
### 1.3 常见服务默认端口
| 服务名称 | 端口号 | 传输协议 |
|----------|--------|----------|
| SSH | 22 | TCP |
| HTTP | 80 | TCP |
| HTTPS | 443 | TCP |
| FTP | 21 | TCP |
| MySQL | 3306 | TCP |
## 二、使用netstat命令
### 2.1 基本用法
```bash
netstat -tuln
参数说明:
- -t
:显示TCP连接
- -u
:显示UDP连接
- -l
:仅显示监听端口
- -n
:以数字形式显示地址和端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
查看特定服务的端口:
netstat -tulnp | grep sshd
统计各状态连接数:
netstat -ant | awk '{print $6}' | sort | uniq -c
ss -tuln
参数与netstat类似,但执行效率更高。
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 100 127.0.0.1:25 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:*
查看进程关联:
ss -tulnp
显示摘要信息:
ss -s
sudo lsof -i -P -n
参数说明:
- -i
:显示网络连接
- -P
:禁用端口到服务的转换
- -n
:禁用主机名解析
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
nginx 5678 www 6u IPv6 23456 0t0 TCP *:80 (LISTEN)
查看特定端口:
sudo lsof -i :80
查看某用户打开的网络连接:
sudo lsof -i -u www-data
该文件记录了已知服务与端口的映射关系:
ftp-data 20/tcp
ftp 21/tcp
ssh 22/tcp
http 80/tcp
grep '^http' /etc/services
扫描本地开放端口:
sudo nmap -sT -O localhost
-sT
:TCP连接扫描-O
:操作系统检测-p
:指定端口范围快速扫描常用端口:
sudo nmap -F 192.168.1.1
服务版本检测:
sudo nmap -sV 192.168.1.1
systemctl list-unit-files --type=service
systemctl status sshd
输出中的”Active”部分会显示监听信息。
sudo iptables -L -n -v
sudo firewall-cmd --list-all
当服务启动失败提示端口被占用时:
sudo lsof -i :8080
sudo kill -9 <PID>
定期检查非常规监听端口:
ss -tuln | grep -Ev ':((22|80|443)\>)'
修改配置文件后确认监听状态:
sudo systemctl restart nginx && ss -tln | grep 80
nc -zv localhost 22
示例脚本:
#!/bin/bash
PORT=80
if ! nc -z localhost $PORT; then
echo "Port $PORT is not responding!" | mail -s "Service Alert" admin@example.com
fi
掌握Linux下查看服务端口号的方法,是每位系统管理员必备的基础技能。本文介绍的多种工具和技术各有适用场景:
ss
命令lsof
和netstat
nmap
工具建议在日常工作中多实践这些命令,熟悉它们的输出格式和典型应用场景,这样在真正遇到网络或服务问题时能够快速定位原因。
命令 | 功能描述 | 示例 |
---|---|---|
ss -tuln |
查看所有监听端口 | ss -tuln \| grep 443 |
lsof -i :80 |
查看80端口的进程信息 | 需要sudo权限 |
netstat -tulnp |
传统方式查看端口和进程 | 逐渐被ss取代 |
nmap localhost |
扫描本机开放端口 | 适合安全审计 |
systemctl status |
查看服务状态和监听信息 | systemctl status nginx |
注意:部分命令需要root权限才能显示完整信息,建议使用sudo或切换到root用户执行。 “`
本文共计约2200字,详细介绍了Linux环境下查看服务端口号的各种方法和应用场景,采用Markdown格式编写,包含代码块、表格等结构化元素,便于阅读和理解。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。