Linux下怎么查看服务端口号

发布时间:2022-01-26 09:46:41 作者:小新
来源:亿速云 阅读:196
# 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:以数字形式显示地址和端口

2.2 输出示例

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:*                          

2.3 高级用法

查看特定服务的端口:

netstat -tulnp | grep sshd

统计各状态连接数:

netstat -ant | awk '{print $6}' | sort | uniq -c

三、使用ss命令(推荐)

3.1 基本用法

ss -tuln

参数与netstat类似,但执行效率更高。

3.2 输出示例

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:*          

3.3 高级用法

查看进程关联:

ss -tulnp

显示摘要信息:

ss -s

四、使用lsof命令

4.1 基本用法

sudo lsof -i -P -n

参数说明: - -i:显示网络连接 - -P:禁用端口到服务的转换 - -n:禁用主机名解析

4.2 输出示例

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)

4.3 高级用法

查看特定端口:

sudo lsof -i :80

查看某用户打开的网络连接:

sudo lsof -i -u www-data

五、查看/etc/services文件

5.1 文件结构

该文件记录了已知服务与端口的映射关系:

ftp-data    20/tcp
ftp         21/tcp
ssh         22/tcp
http        80/tcp

5.2 查询方法

grep '^http' /etc/services

5.3 注意事项

六、使用nmap工具

6.1 基本扫描

扫描本地开放端口:

sudo nmap -sT -O localhost

6.2 参数说明

6.3 高级用法

快速扫描常用端口:

sudo nmap -F 192.168.1.1

服务版本检测:

sudo nmap -sV 192.168.1.1

七、systemd系统服务查询

7.1 查看所有服务

systemctl list-unit-files --type=service

7.2 查看服务详情

systemctl status sshd

输出中的”Active”部分会显示监听信息。

八、防火墙相关命令

8.1 iptables查看

sudo iptables -L -n -v

8.2 firewalld查看

sudo firewall-cmd --list-all

九、实际应用场景

9.1 端口冲突排查

当服务启动失败提示端口被占用时:

sudo lsof -i :8080
sudo kill -9 <PID>

9.2 安全审计

定期检查非常规监听端口:

ss -tuln | grep -Ev ':((22|80|443)\>)'

9.3 服务配置验证

修改配置文件后确认监听状态:

sudo systemctl restart nginx && ss -tln | grep 80

十、自动化监控方案

10.1 使用netcat测试

nc -zv localhost 22

10.2 编写监控脚本

示例脚本:

#!/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下查看服务端口号的方法,是每位系统管理员必备的基础技能。本文介绍的多种工具和技术各有适用场景:

  1. 快速检查:优先使用ss命令
  2. 详细分析:结合lsofnetstat
  3. 网络扫描:使用nmap工具
  4. 长期监控:建立自动化脚本

建议在日常工作中多实践这些命令,熟悉它们的输出格式和典型应用场景,这样在真正遇到网络或服务问题时能够快速定位原因。

附录:常用命令速查表

命令 功能描述 示例
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格式编写,包含代码块、表格等结构化元素,便于阅读和理解。

推荐阅读:
  1. linux怎么查看本机ip和端口号
  2. linux下mysql如何修改端口号

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:Linux系统关闭SElinux具体方法是什么

下一篇:@Transactional注解怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》