Linux命令(四):netstat,ifconfig,ping网络相关命令详解

netstat、ifconfig、ping这三个可以说是查看或配置网络信息最常用的命令。

netstat:打印显示网络连接信息,路由表、接口统计信息。
ifconfig:用于配置网卡的信息,系统重启后配置失效。
ping:发送 ICMP 协议 ECHO_REQUEST 发送到主机测试连通性。

想了解命令及所带参数的含义和使用,使用命令自身的帮助或说明:

netstat

netstat 命令在 Linux 和 Windows 系统都有此命令,作用也是类似,所带的参数略有不同。
netstat 默认显示连接中的Socket列表

想了解命令及所带参数的含义和使用,使用命令自身的帮助或说明:

1
2
netstat --help
man netstat

语法

1
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

示例

  1. 查看端口使用情况

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [root@localhost ~]# netstat -tlnp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 11002/nginx: worker
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1287/sshd
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1699/master
    tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 11002/nginx: worker
    tcp6 0 0 :::5522 :::* LISTEN 11431/java
    tcp6 0 0 :::22 :::* LISTEN 1287/sshd
    tcp6 0 0 :::1111 :::* LISTEN 29059/java
    tcp6 0 0 ::1:25 :::* LISTEN 1699/master
  2. 显示网卡信息

    1
    2
    3
    4
    5
    [root@localhost ~]# netstat -i
    Kernel Interface table
    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
    ens192 1500 624664042 0 253 0 515393712 0 0 0 BMRU
    lo 65536 415440440 0 0 0 415440440 0 0 0 LRU
  3. 显示核心路由信息

    1
    2
    3
    4
    5
    [root@localhost ~]# netstat -rn
    Kernel IP routing table
    Destination Gateway Genmask Flags MSS Window irtt Iface
    0.0.0.0 172.24.79.253 0.0.0.0 UG 0 0 0 eth0
    172.24.64.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
  4. 结合 grep 来过滤输出

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@localhost ~]# netstat -tlnp|grep nginx
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 23829/nginx: worker

    [root@localhost ~]# netstat -ntlp|grep :80
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 23829/nginx: worker
    tcp6 0 0 :::8085 :::* LISTEN 26348/java
    [root@localhost ~]# netstat -tlnp|grep ':80'
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 23829/nginx: worker
    tcp6 0 0 :::8085 :::* LISTEN 26348/java
  5. 列出监听中的 Sockets

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [root@localhost ~]# netstat -l
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State
    tcp 0 0 0.0.0.0:redis 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
    tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
    tcp6 0 0 [::]:mysql [::]:* LISTEN
    tcp6 0 0 [::]:redis [::]:* LISTEN
    tcp6 0 0 [::]:hostmon [::]:* LISTEN
    tcp6 0 0 [::]:8085 [::]:* LISTEN
    tcp6 0 0 [::]:pcsync-https [::]:* LISTEN
    udp 0 0 127.0.0.53:domain 0.0.0.0:*
    udp 0 0 iZf8z5ura2kb73ra:bootpc 0.0.0.0:*
    udp 0 0 0.0.0.0:hostmon 0.0.0.0:*
    udp 0 0 localhost:323 0.0.0.0:*
    udp6 0 0 [::]:hostmon [::]:*
    udp6 0 0 localhost:323 [::]:*
  6. 配合 grep 和 awk,只输出指定的列,下面示例只输出进程号

    1
    2
    3
    [root@localhost ~]# netstat -nlp | grep 80| awk '{print $7}' | awk -F "/" '{ print $1}'
    23829
    26348

常用参数

  • -a,–all:显示监听听和非监听(对于TCP,这意味着已建立连接)的 Socket

  • -c,–continuous:每秒连续打印所选信息

  • -C:打印路由缓存中的路由信息

  • -e,–extend:显示更多扩展信息

  • -F:打印 FIB 的路由信息

  • -g,–group:显示多重广播功能群组组员列表

  • -i,–interfaces:显示网卡列表

  • -l,–listening:显示监听中的Socket

  • -r,–route:显示路由表

  • -s,–statistics:显示网络统计

  • -t,–tcp:显示 tcp 连接,-4 显示 ipv4 信息,-6 显示 ipv6 信息

  • -u,–udp:显示 udp 连接

ping

ping命令主要用于测试两台主机之前的网络连通性, Linux 和 Windows 系统都有此命令,作用相同。
此命令有好几个参数,但很少用到,下面只列常用到的参数。

语法

1
ping [-cfrRst] ip_address

参数

  • -c <完成次数>:设置完成要求回应的次数。
  • -R:记录路由过程。
  • -s <数据包大小>:设置数据包大小。
  • -t <存活数值>:设置存数值TTL的大小。

示例

1
2
3
4
5
6
7
8
//ping执行响应100次结束
ping -c100 www.qq.com

//记录ping的路由过程
ping -R www.qq.com

//发送1500byte的数据包
ping -s1500 www.qq.com

ifconfig

ifconfig用于显示或设置网卡参数,但网卡或机器重启后失效,所以也很少用于设置参数,需要设置的可以去修改网卡的配置文件。现在大多用于查看网卡的参数。

语法

1
ifconfig [参数]

参数

  • up:启用指定网卡。

  • down:关闭指定网卡。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//启动eth0网卡
ifconfig eth0 up

//关闭eth0网卡
ifconfig eth0 down

//修改MAC地址
ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE

//设置能通过的最大数据包大小为 1500 bytes
ifconfig eth0 mtu 1500**

// 配置IP地址
[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

Linux命令(四):netstat,ifconfig,ping网络相关命令详解

http://blog.gxitsky.com/2018/05/16/Linux-Command-4-netstat-ping-ifconfig/

作者

光星

发布于

2018-05-16

更新于

2022-06-17

许可协议

评论