netstat-tlnp|grep3306、ss-ltnp|grep3306以及lsof-i:端口号 有什么区别

netstat, ss, 和 lsof 是用于在 Linux 和类 Unix 操作系统中检查网络连接和监听端口的三个常用工具。虽然它们都能用来查看特定的端口(如 3306),但它们有各自的特点和语法。以下是这些命令在使用时的区别和细节:

netstat -tlnp | grep 3306

  • netstat:一个网络实用程序,用于显示网络连接、路由表、接口统计、伪装连接和多播成员资格等信息。
  • -t:显示 TCP 连接。
  • -l:显示监听套接字(服务器套接字)。
  • -n:以数字形式显示地址和端口号(而不是尝试解析主机名)。
  • -p:显示监听套接字的进程 ID 和名称。
  • | grep 3306:通过管道将输出传递给 grep 命令,以过滤出包含 “3306” 的行。

这个命令将显示所有在 TCP 端口 3306 上监听的连接及其相关的进程信息。

ss -ltnp | grep 3306

  • ssssnetstat 的现代替代品,用于显示套接字统计信息。它比 netstat 更快,因为它直接在内核中获取信息而不是通过 net-tools
  • -l:显示监听套接字。
  • -t:显示 TCP 套接字。
  • -n:以数字形式显示地址和端口号。
  • -p:显示监听套接字的进程 ID 和名称(需要 root 权限)。
  • | grep 3306:通过管道将输出传递给 grep 命令,以过滤出包含 “3306” 的行。

这个命令同样显示所有在 TCP 端口 3306 上监听的连接及其相关的进程信息,但 ss 通常比 netstat 更快。

lsof -i :端口号

  • lsoflsof 是 “list open files” 的缩写,但在这个上下文中,它指的是列出所有打开的网络文件(即套接字)。
  • -i:选择网络文件。
  • :端口号:指定要查找的端口号,例如 :3306

由于 lsof 没有直接提供过滤 TCP 或 UDP 的选项(尽管可以通过 -P 禁用端口号到服务名的转换,但这不是过滤),因此它会列出所有在该端口上监听或连接的文件(包括 TCP 和 UDP),以及相关的进程信息。不过,你可以进一步通过 grep 过滤出特定的协议(如 TCP)或特定的进程信息。

总结

  • netstat -tlnp | grep 3306ss -ltnp | grep 3306 都用于显示特定 TCP 端口(如 3306)上的监听连接及其相关进程信息。ss 通常比 netstat 更快。
  • lsof -i :3306 用于列出在该端口上监听或连接的所有网络文件(包括 TCP 和 UDP),并显示相关的进程信息。你可能需要进一步过滤输出以获取特定信息。

在实际使用中,选择哪个工具取决于你的具体需求和对系统性能的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值