Linux基本操作——端口占用查看和进程查询

7.端口占用查看和进程查询

(1)端口

a. 基本概念
  • 概念:端口是设备与外界通讯交流的出入口,可以分为物理端口和虚拟端口
    • 物理端口:又称接口,是可见的硬件端口,如USB接口、RJ45网口、HDMI端口等
    • 虚拟端口:计算机内部不可见的逻辑端口,用于操作系统与外部交互,如SSH服务的22端口
  • 功能类比:IP地址相当于小区地址,端口相当于门牌号,通过端口可以锁定计算机上的具体程序
  • 通信原理:计算机A通过IP地址找到计算机B后,需要通过端口号(如微信使用5678端口)才能与特定程序建立通信连接。
  • 必要性:仅通过IP地址只能定位到计算机,无法区分计算机上运行的不同程序和服务。
b. 端口的划分

Linux系统可以支持65535个端口,可以分为三类使用

  • 公认端口(1-1023):预留给系统内置或知名服务使用,如22(SSH)、443(HTTPS),非特殊需要,不要占用这个范围的端口
  • 注册端口(1024-49151):通常可以随意使用,用于松散的绑定一些程序和服务
  • 动态端口(49152-65535):通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用

注意:开发时,应避免占用公认端口,通常使用注册端口范围

c. 查看端口占用情况
①nmap命令

如果有些服务无法使用,可能就是端口被占用,则我们可以通过Linux命令去查看端口的占用情况

使用nmap命令,安装nmap:yum -y install nmap嘿嘿嘿嘿无法安装

  • 语法:nmap 被查看的IP地址

  • 典型输出:显示开放端口及对应服务,如22(SSH)、3306(MySQL)

  • 扫描原理:检测指定IP对外暴露的端口状态

②netstat命令

安装netstat:yum -y install net-tools

  • 功能:查看指定端口的占用情况

  • 语法:netstat -anp | grep 端口号

    • 参数
      • -a:显示所有连接
      • -n:以数字形式显示地址
      • -p:显示进程信息
  • 示例:0.0.0.0:6000(表示6000端口绑定在0.0.0.0这个IP地址上)表示允许外部访问,包含PID(进程号)和程序名信息,比如 1433 / m y s q l d 1433/mysqld 1433/mysqld,其中1433代表进程号, m y s q l d mysqld mysqld代表程序名

(2)进程查询

a. 进程

程序运行在操作系统中,是被操作系统所管理的。为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个进程,并会为每一个进程都分配一个独有的进程ID(进程号)

b. ps命令——查看Linux系统中的进程信息
  • 语法:ps [-ef]

    • -e:显示全部进程
    • -f:完全格式化展示信息
  • 固定用法:ps -ef列出全部进程完整信息

  • 注意:要实现上下翻页,可以输入命令ps -ef | lessPgUp向上翻页,PgDn向下翻页

  • 信息字段:

    • UID:进程所属用户ID
    • PID:进程编号(如1447)
    • PPID:父进程ID(启动该进程的其他进程)
    • C:CPU占用百分比
    • STIME:进程启动时间
    • TTY:启动终端(显示?表示非终端启动)嘿嘿嘿嘿我并没有连接中断,为什么有文件显示在tyy1终端启动
    • TIME:占用CPU时间
    • CMD:进程名称/启动路径/启动命令
c. 查看指定进程

可以使用管道符配合grep来进行过滤,比如:ps -ef | grep tail可以准确找到tail命令的信息

  • 名称,进程号,用户ID都是可以被过滤的
d. 关闭进程

嘿嘿嘿:为什么输入ps -ef | grep tail之后显示有tail,但是kill [-9] 进程号,把他删不掉,最终显示 Kill:(2871) - No such process

  • 语法:kill [-9] 进程号
    • -9:强制关闭
    • 无选项:发送关闭信号,进程可能不响应

你可能感兴趣的:(Linux,linux,运维,服务器)