Linux 端口管理

端口基础概念

什么是端口?

端口是计算机与外部交互的出入口,分为两类:

  • 物理端口:USB、HDMI、DP、VGA、RJ45 等硬件接口。
  • 虚拟端口:操作系统与外部交互的逻辑出入口,用于区分不同的网络服务。

端口的分类

Linux 系统支持 0~65535 个端口,分为三类:

端口范围 分类 说明
1~1023 公认端口 用于系统内置或知名程序,如 SSH(22)、HTTP(80)、HTTPS(443)。非特殊需要不要占用。
1024~49151 注册端口 通常可随意使用,用于绑定各种应用程序和服务。
49152~65535 动态端口 一般不固定绑定程序,当程序对外发起网络连接时临时使用。

IP 与端口的关系

  • IP 地址:用于在网络中定位计算机设备。
  • 端口号:用于锁定计算机上具体的应用程序或服务。

IP 只能确定计算机,通过端口才能定位到要交互的具体程序。


端口扫描命令

nmap 命令(网络探测工具)

nmap 是一款开源的网络探测和安全审核工具,用于快速扫描大型网络,检测开放端口和运行服务。

安装:

yum install nmap -y

语法:

nmap [选项] 目标
常用参数
参数 说明
-v 显示扫描过程
-p 指定端口范围(如 -p 1-1000
-A 全面系统检测(启用脚本检测、操作系统识别等)
-sT TCP 全连接扫描(会在目标主机日志留下记录)
-sS TCP 半开扫描(隐蔽性高,需 root 权限)
-sU UDP 扫描
-O 启用远程操作系统检测
-Pn 跳过 ping 检测(适用于防火墙禁止 ping 的场景)
-sP Ping 扫描,检测哪些主机在线
-oN/-oX/-oG 将结果输出为普通/XML/grepable 格式文件
示例:简单扫描(仅扫描常见端口)
nmap 192.168.1.1
image-20230616164006163

netstat 命令(网络状态查看)

netstat 用于显示网络连接、路由表、接口统计等信息,常用于检查本机端口占用情况。

安装:

yum install net-tools -y

语法:

netstat [选项]
image-20230619095542624
常用参数
参数 说明
-a 显示所有连接和监听端口
-l 仅显示监听的端口
-t 显示 TCP 协议端口
-u 显示 UDP 协议端口
-n 以数字形式显示 IP 和端口(不进行域名解析)
-p 显示占用端口的进程 PID 和名称
-c 每隔固定时间持续执行命令
-e 显示扩展信息
-r 显示路由表
常见用法示例
  1. 查看所有连接和监听端口

    netstat -anp
    
    image-20230619095015779
  2. 查看 TCP 监听端口

    netstat -ntpl
    
    image-20230619101003067
  3. 查看 UDP 监听端口

    netstat -nupl
    
    image-20230619100931341
  4. 仅显示所有监听端口

    netstat -l
    
    image-20230619101100724
  5. 仅显示 TCP 监听端口

    netstat -lt
    
    image-20230619101148099
连接状态说明
状态 说明
LISTENING 服务启动后处于监听状态,等待连接
ESTABLISHED 已建立连接,正在通信
CLOSE_WAIT 对方主动关闭连接,等待本地关闭
TIME_WAIT 本地主动关闭连接后,等待足够时间确保远程收到确认
SYN_SENT 正在尝试建立连接

总结

  • 端口范围:0-65535,分为公认端口、注册端口和动态端口。
  • IP + 端口:IP 定位计算机,端口定位具体程序。
  • nmap:用于远程扫描,检测目标主机的开放端口和服务。
  • netstat:用于本地检查,查看本机的端口占用和网络连接状态。

掌握这两个命令,可以有效管理和排查 Linux 系统的网络与端口问题。

posted @ 2023-06-19 11:13  克峰同学  阅读(1093)  评论(0)    收藏  举报