Linux网络-netstat命令

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注我,我尽量把自己会的都分享给大家,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

Linux服务器作为一个常用的网络服务器,主要的作用就是向客户端提供网络服务,所以我们需要熟练掌握网络相关的命令,用于探测对端网络是否畅通,用于检查本地网络进程是否正常,以及可以通过命令去远端服务器进行下载文件,或者请求对方接口。

主要从以下几个方面来介绍:

1.给Linux服务器配置IP

2.探测对方网络连通性(ping & telnet)

3.下载对方文件(wget)

4.请求对方服务器(curl)

5.检查本地服务状态(netstat)本章节

6.检查本地服务状态(ss)

7.网络小结

NETSTAT

说这个命令之前,需要先说一个问题,就是Linux作为一台网络上最常用的服务器,他如何才能通过网络向其他人提供服务服务?包括我们前面说到的2个命令wget,  curl,都是客户端命令,他们的目的都是为了去请求服务端地址,而他们的服务端,就必须通过监听端口实现服务暴露,比如常见的http对应的80,https对应的443,和ssh连接默认的22端口等。如果我们自己的Linux服务器需要对外提供服务,就需要通过监听端口来实现。而netstat 命令就可以用于查看本地监听的情况。

netstat 是一个非常强大的网络诊断工具,它可以提供丰富的网络相关信息。它的基本语法如下:

netstat [options]

下面是一些常用的 netstat 选项及其作用:

  1. 查看活动连接

    • -a: 显示所有连接和监听端口

    • -n: 以数字形式显示地址和端口

    • -t: 仅显示 TCP 协议的连接

    • -u: 仅显示 UDP 协议的连接

    • -x: 仅显示 UNIX 域套接字连接

  2. 查看监听端口

    • -l: 仅显示正在监听的连接

    • -i: 显示网络接口信息

  3. 查看进程信息

    • -p: 显示与每个连接相关的进程 ID 和进程名称

  4. 查看统计信息

    • -s: 显示各种协议的统计信息

  5. 查看路由表

    • -r: 显示内核路由表

  6. 输出格式控制

    • -e: 显示扩展信息

    • -A <family>: 仅显示指定地址族的连接

    • -o: 显示计时器信息

  7. 其他选项

    • -c: 持续刷新输出

    • -v: 显示版本信息

比如,如果您想查看系统上所有的 TCP 连接,可以使用:

netstat -antp

这将显示所有活动的 TCP 连接,包括远程地址、本地地址、状态和相关进程信息。

如果您想查看某个进程正在使用的网络连接,可以使用:

netstat -antp | grep 12345

这将只显示与进程 ID 为 12345 的进程相关的网络连接。

基础知识

在网络连接里面有一个概念叫五元组或者简化版的四元组(源 IP 地址,源端口号,目标 IP 地址,目标端口号,协议类型),一般除去协议类型就是四元组。

比如:我从linux服务器,请求一个地址123.150.76.218:80 ,那么在网络连接里面就就存在类似下面的一个连接,当然这里还有更多的信息,这里不展开。

[root@localhost ~]# netstat -lnapActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name              tcp        0      0 192.168.179.102:50276   123.150.76.218:80       TIME_WAIT   -            
源IP:192.168.179.102源端口:50276目标IP:123.150.76.218目标端口:80协议:TCP

总结

1.netstat这个命令是我们用于查看本地网络连接情况最常用的命令之一。

2.netstat这个命令在网络连接很多的情况下,是有性能问题的,替代方案就是下一章我们会讲的ss命令。如果只是本地检查端口就算卡也还好,如果用于脚本里面检查服务情况,就可能会出现预期以外的问题。

3.在最小化安装的系统里面是没有这个命令的,需要安装net-tools这个包才会自带这个命令。

4.netstat 最常用的用法,就是使用本机查看网络连接情况。

#xxx可以是端口号,也可以进程号,也可以是进程名字netstat -lnp |grep xxx​​​​​#如果某个进程无法访问网络,可以通过这样来检查网络连接,是否已经建立网络连接。#具体细节涉及到TCP网络协议栈的问题,这里暂时不展开。netstat -lanp |grep xxx

关注微信公众号《运维小路》获取更多内容。

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值