linux网络管理-网卡管理

linux的网络篇

一,网卡命令

1,传统网卡命令机制

  • 命令规范:

    以太网:eth[0,1,2] //有线网络
    无线网:Wlan[0,1,2] //无限网络

2,redhat 7网卡命名机制

  • systemd对网络设备的命名方式

    a,如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测,则根据此索引进行命名,例如eno1
    b,如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
    c,如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
    d,如果用户显式启动,也可根据MAC地址进行命名,例如enx2387a1dc56
    e,上述均不可用时,则使用传统命名机制

  • 上述命名机制中,有的需要biosdevname程序的参与。所以必须安装biosdevname程序且启用它。

3,网络接口名称组成格式

  • 基于固件,设备结构,设备类型
  • 有两个字母开头表示固件

    a,以太网网卡以 en 开头
    b,无线网卡以 wl 开头

  • 设备结构

    o:主板上集成的设备的设备索引号
    s:扩展槽的索引号
    x:基于MAC地址的命名
    ps:基于物理位置拓扑的命名。如enp2s1,表示PCI总线上第2个总线的第1个插槽的设备索引号

4,让设备回归传统的命令—便于管理

第一步;修改网卡配置文件

  • [root@localhost ~]# cd /etc/sysconfig/network-scripts/
    [root@localhost network-scripts]# mv ifcfg-ens33 ifcfg-eth0
    //网卡配置文件重命名。第一步
    [root@localhost network-scripts]# vim ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    NAME=eth0 //此处要把ens33改成eht0
    UUID=03be31f5-a3c1-4f8d-88b3-aea6e85c869f
    DEVICE=eth0 //此处要把ens33改成eth0
    ONBOOT=yes

第二步,修改文件,添加内容

  • //编辑/etc/default/grub配置文件,在以GRUB_CMDLINE_LINUX开头的行内rhgb的前面加上net.ifnames=0 biosdevname=0
    [root@localhost ~]# vim /etc/default/grub //第二步,修改文件,添加内容
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR=" ( s e d ′ s , r e l e a s e . ∗ (sed 's, release .* (seds,release.,g’ /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT=“console”
    GRUB_CMDLINE_LINUX=“crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap net.ifnames=0 biosdevname=0 rhgb quiet”
    GRUB_DISABLE_RECOVERY="true"

    在这里插入图片描述

第三步,通过刚修改的配置文件直接写入系统

  • //为grub2生成其配置文件
    [root@localhost ~]# grub2-mkconfig -o /etc/grub2.cfg
    Generating grub configuration file …
    Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
    Found linux image: /boot/vmlinuz-0-rescue-fd0bcf5782d24ba5b903b175c35f328e
    Found initrd image: /boot/initramfs-0-rescue-fd0bcf5782d24ba5b903b175c35f328e.img
    Done

第四步,重启系统

  • [root@localhost ~]# reboot
    再次登陆后通过ip a查看网卡信息就是eth0了

    在这里插入图片描述

二,网络管理命令

1,ifconfig

  • //查看当前处于活动状态的所有网络接口
  • 在这里插入图片描述
  • //仅查看eth0网卡状态
  • 在这里插入图片描述
  • //查看所有网卡状态信息, 包括禁用和启用
  • 在这里插入图片描述
  • //网卡配置信息含义如下:
UP: 网卡处于活动状态
BROADCAST: 支持广播
RUNNING: 网线已接入
MULTICAST: 支持组播
MTU: 最大传输单元(字节),即此接口一次所能传输的最大封包
inet: 显示IPv4地址行
inet6: 显示IPv6地址行
link/enther: 指设备硬件(MAC)地址
txqueuelen: 传输缓存区长度大小
RX packets: 接收的数据包
TX packets: 发送的数据包
errors: 总的收包的错误数量
dropped: 由于各种原因, 导致拷贝在内存过程中被丢弃
collisions: 网络信号冲突情况, 值不为0则可能存在网络故障

2,ip网络管理命令:面向对象管理命令(object)

  • //语法:ip [ OPTIONS ] OBJECT { COMMAND | help }
    OBJECT(对象类型):
    link:网络接口属性
    addr:协议地址
    route:路由

  • 使用方法 ip命令+选项或者对象+操作命令 增删改+dev 设备对象 eth0网卡

  • 1, //查看网络接口所有地址

    • 在这里插入图片描述
  • 2,//显示报文统计信息

    • 在这里插入图片描述
  • 3 //启用或禁用网络接口ip link set DEV {up|down}

    • [root@localhost ~]# ip link set lo down

    • [root@localhost ~]# ip link set lo up

    • //ip addr add ADDRESS dev DEV:添加IP地址

    • 在这里插入图片描述

    • //ip addr del ADDRESS dev DEV:删除IP地址
      [root@localhost ~]# ip addr del 192.168.1.1/24 dev eth0
      [root@localhost ~]# ip addr show eth0
      在这里插入图片描述

    • //ip addr show DEV:查看网络接口的地址
      [root@localhost ~]# ip addr show eth0
      在这里插入图片描述

  • 3 route

  • Linux主机之间是使用IP进行通信, 假设A主机和B主机同在一个网段内且网卡都处于激活状态, 则A具备和B直接通信的能力, 但如果A主机和B主机处于两个不同的网段, 则A必须通过路由器才能和B通信, 路由器属于IT设备的基础设施, 每一个网段都应该至少有一个网关

    • 1,//查看当前路由表
      [root@localhost ~]# route
      Kernel IP routing table
      Destination Gateway Genmask Flags Metric Ref Use Iface
      default gateway 0.0.0.0 UG 100 0 0 ens33
      172.16.12.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

    • 2,//以数字方式显示各主机或端口等相关信息
      [root@localGhost ~]# route -n
      Kernel IP routing table
      Destination Gateway Genmask Flags Metric Ref Use Iface
      0.0.0.0 172.16.12.2 0.0.0.0 UG 100 0 0 ens33
      172.16.12.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

    • 3,//增加路由

      • //语法:route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

      • //增加网段路由
        [root@localhost ~]# route add -net 172.16.12.0/24 gw 172.16.12.2 dev eth1
        [root@localhost ~]# route add -net 0.0.0.0/0 gw 172.16.12.2 dev eth1

      • //增加主机路由
        [root@localhost ~]# route add -host 172.16.12.128 gw 172.16.12.2
        在这里插入图片描述

      • //删除路由
        [root@localhost ~]# route del -net 172.16.12.0/24
        [root@localhost ~]# route del -net 0.0.0.0/0 gw 172.16.12.2
        在这里插入图片描述

  • 4 hostname与hostnamectl

    • 生产环境中必须配置主机名,同时主机名也需要遵循一定的规范, 比如:

    • 公有云: 地区-项目-业务-服务-节点-地址
      wh-shop-register-nginx-node1-192.168.56.13
      wh-med-pay-mysql-master01-192.168.56.11
      wh-med-pay-mysql-slave01-192.168.56.12

      • //hostname查看主机名
        [root@localhost ~]# hostname
        localhost.localdomain

      • //hostname临时修改主机名
        [root@localhost ~]# hostname wangqing
        [root@localhost ~]# cat /etc/hostname
        localhost.localdomain

      • //注意:修改主机名后需要重新登录用户才会显示效果
        //rhel7/8系统建议使用hostnamectl修改和查看主机名

      • //设定永久名称
        [root@localhost ~]# hostnamectl set-hostname seancheng
        [root@localhost ~]# cat /etc/hostname
        seancheng

      • //查看主机信息
        [root@localhost ~]# hostnamectl
        在这里插入图片描述
        在这里插入图片描述

      • 注意:
        在Linux中以命令方式修改网络配置只在当前状态有效,重启后将失效,故若想使修改的配置重启后依然有效,则必须编辑配置文件进行配置的修改

3,网络相关配置文件

1,网络配置文件

  • //网络配置文件:/etc/sysconfig/network
    NETWORKING={yes|no}:设定整个系统是否启用网络功能,若设为no,则不论网卡如何设置都不能使用网络功能。
    HOSTNAME:设置主机名

2,网络接口配置文件

  • 网络接口即网卡,其配置文件的路径是/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME
    在这里插入图片描述

    • [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
      TYPE=Ethernet
      BOOTPROTO=static
      NAME=eth1
      UUID=03be31f5-a3c1-4f8d-88b3-aea6e85c869f
      DEVICE=eth1
      ONBOOT=yes
      IPADDR=172.16.12.130
      NETMASK=255.255.255.0
      GATEWAY=172.16.12.2
      DNS1=172.16.12.2
      在这里插入图片描述
  • //网卡配置说明

//参数 说明
BOOTPROTO=none //引导协议,可选值有{static|none|dhcp|bootp}。如果要使用静态地址,使用static或none都可以
NM_CONTROLLED //NM是NetworkManager的简写,NM是由RHEL研发的在RHEL6中取代network脚本来实现网络管理、配置的服务脚本
//可选值有{ yes | no }
//此项是设定此网卡是否接受NM控制。CentOS6建议设为“no”
TYPE //接口类型。常见的接口类型有:Ethernet,Bridge
UUID //设备的惟一标识(网卡的唯一标识)
HWADDR //硬件地址,要与硬件中的地址保持一致,可省(也就是mac地址Hardware)
IPADDR=172.16.12.130 //固定IP地址
PREFIX=24 //子网掩码
NETMASK=255.255.255.0 //子网掩码
GATEWAY=172.16.12.2 //默认网关
DNS1=172.16.12.2 //第一个DNS服务器指向
DNS2 //第二个DNS服务器指向
DNS3 //第三个DNS服务器指向
DEVICE=eth1 //关联的设备名称,要与文件名的后半部"INTERFACE_NAME"保持一致 dev eth0 操作的设备
NAME=“eth1” //连接名称
ONBOOT=yes //在系统引导时是否自动激活此网络接口,可选值有{ yes | no }
DEFROUTE=yes //将接口设定为默认路由[yes
USERCTL={yes no}
PEERDNS={yes no}
  • control打开控制面板/notepad打开记事本
    在这里插入图片描述

  • 配置dncp模式可以精简配置

      	![在这里插入图片描述](https://img-blog.csdnimg.cn/20201027121354413.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xCSjE5MjI0,size_16,color_FFFFFF,t_70#pic_center)
    
  • 设置静态ip最少需要9行。
    在这里插入图片描述

  • 重启网卡的方法ifdown eth0;ifup eth0 down后面必须跟着分号然后ifup启用网卡。(ifconfig 是net-tool软件工具包中,需要通过dnf安装)
    在这里插入图片描述

3,路由配置文件

  • 路由配置文件的路径是/etc/sysconfig/network-scripts/route-INTERFACE_NAME

    • //添加格式一:DEST via NEXTHOP
      [root@localhost ~]# vi /etc/sysconfig/network-scripts/route-ens33
      172.16.12.0/24 via 172.16.12.2
      在这里插入图片描述
      在这里插入图片描述

    • //添加格式二:
      [rootg@localhost ~]# vi /etc/sysconfig/network-scripts/route-ens33
      ADDRESS0=172.16.12.0
      NETMASK0=255.255.255.0
      GATEWAY0=172.16.12.2在这里插入图片描述
      在这里插入图片描述

4 DNS配置文件

  • DNS配置文件的路径是/etc/resolv.conf
    [root@localhost ~]# vi /etc/resolv.conf
    nameserver DNS_IP_1
    nameserver DNS_IP_2
    nameserver DNS_IP_3

四. NetworkManager管理网络

  • 1,RHEL/CentOS7系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。

  • 2,NetworkManager提供的命令行和图形配置工具对网络进行设定, 设定保存的配置文件在/etc/sysconfig/network-scripts目录下, 工具有 nmcli, nmtui, nm-connection-editor
    在这里插入图片描述
    在这里插入图片描述

  • 3,device物理设备, 例如 ens33,enp2s0,virbr0,team0

  • 4,connection连接设置, 具体网络配置方案

    • 1.不同的网络连接配置可以应用到相同的物理设备,但物理设备同一时间只能应用其中某个网络连接

    • 2.针对物理网络接口, 设定不同的网络连接, 在不同的使用环境中激活相应的网络连接,就可以实现网络配置信息的自动切换了
      使用nmcli命令查看设备以及连接情况

      • //查看设备状态
        [root@localhost ~]# nmcli device
        在这里插入图片描述

      • //查看指定设备的详细状态
        [root@localhost ~]# nmcli device show ens33
        在这里插入图片描述

      • //查看连接状态
        [root@localhost ~]# nmcli connection
        在这里插入图片描述

      • //查看所有活动的连接
        NAME UUID TYPE DEVICE
        ens33 03be31f5-a3c1-4f8d-88b3-aea6e85c869f 802-3-ethernet ens33
        //查看指定设备连接的详细情况在这里插入图片描述

五. 使用原生network管理网络

  • CentOS/RHEL的网络配置文件默认目录为/etc/sysconfig/network-scripts
  • 默认第一块物理网卡配置文件为ifcfg-eth0, 如果有第二块物理网卡, 配置文件则为ifcfg-eth1以此类推。 注意: 如果新增物理网卡没有配置文件,可选择复制系统默认的进行修改。
    • //设置NetworkManger开机不启动, 同时停止NetworkManger服务
      [root@localhost ~]# systemctl disable NetworkManager
      [root@localhost ~]# systemctl stop NetworkManager

    • //添加一块物理网卡, 然后新增网络连接配置文件
      //复制配置eth0配置文件为eth1
      [root@localhost ~]# cp /etc/sysconfig/network-scripts/{ifcfg-eth0,ifcfg-eth1}

    • //编辑网卡配置文件
      在这里插入图片描述

      • //重启network网络服务加载网络并设置开机启动
        [root@localhost ~]# systemctl restart network
        [root@localhost ~]# systemctl enable network

六. 网络检测工具与故障排查

1 ping 测试网络连通性;

  • ping命令的目的在于测试另一台主机是否可达, 如果ping不到某台主机,就说明对方主机已经出现了问题, 但是不排除由于链路中的防火墙、ping被丢弃等原因造成ping不通的情况
    • //ping命令常用选项:

      -c 指定ping的次数
      -I 指定ping包的发送间隔
      -w 如果ping没有回应, 则在指定超时时间后退出

2 host与nslookup(域名解析命令)

  • host/nslookup命令用于查询DNS记录

    • [root@localhost ~]# host www.baidu.com
      www.baidu.com is an alias for www.a.shifen.com.
      www.a.shifen.com has address 119.75.216.20
      www.a.shifen.com has address 119.75.213.61

      • [root@localhost ~]# nslookup www.baidu.com
        Server: 172.16.12.2
        Address: 172.16.12.2#53
        Non-authoritative answer:
        www.baidu.com canonical name = www.a.shifen.com.
        Name: www.a.shifen.com
        Address: 119.75.213.61
        Name: www.a.shifen.com
        Address: 119.75.216.20
      • 正向解析和反向解析(反向解析域名通过host命令无法解析)
        在这里插入图片描述
        在这里插入图片描述

3 netstat

  • netstat用于查看网络状态
    • //显示路由表
      [root@seancheng ~]# netstat -r
      Kernel IP routing table
      Destination Gateway Genmask Flags MSS Window irtt Iface
      default gateway 0.0.0.0 UG 0 0 0 ens33
      172.16.12.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33

    • //以数字方式显示路由表
      [root@seancheng ~]# netstat -rn
      在这里插入图片描述

    • //显示建立的tcp连接
      [root@seancheng ~]# netstat -t
      在这里插入图片描述

    • //显示udp连接
      在这里插入图片描述

    • //显示监听状态的连接
      [root@seancheng ~]# netstat -l
      在这里插入图片描述

    • //显示监听指定的套接字的进程的进程号及进程名
      [root@seancheng ~]# netstat -p
      在这里插入图片描述

    • //显示所有状态的连接
      [root@seancheng ~]# netstat -a
      在这里插入图片描述

    • //常用选项(通常可以连用)
      查看所有的侦听tcp端口以及进程号 -antlp
      [root@seancheng ~]# netstat -antlp
      在这里插入图片描述

4 ss

  • ss是一种网络状态查看工具,取代netstat(选项和netstat几乎一致)

  • //语法:ss [options] [ FILTER ]

    • //常用的options:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x: unix套接字相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及pid
-e: 扩展的信息
-m: 内存用量
-o: 显示计时器信息

//常见的FILTER:
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
如:ss -tan state ESTABLISHED

			文件的状态

LISTEN侦听状态。
ESTABLISHED,启用的状态。
TIME-WAIT;等待的状态。

  • //常见的state:
    //tcp finite state machine:有限状态机
    LISTENING:监听
    ESTABLISHED:已建立的连接

  • //EXPRESSION:
    dport =
    sport =
    示例:’( dport = :ssh or sport = :ssh)’,此处的ssh也即服务名可以使用其对应的端口号代替,等号两边必须有空格

    • 可以通过源目IP提取出自己需要的端口信息。
      在这里插入图片描述
  • //常用组合:

    • [ root@seancheng ~]# ss -tan
      在这里插入图片描述

    • [root@seancheng ~]# ss -tanl

    在这里插入图片描述

    • [root@seancheng ~]# ss -antlp
      ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201027124420736.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xCSjE5MjI0,size_16,color_FFFFFF,t_70#pic_center

    • [root@seancheng ~]# ss -anu
      在这里插入图片描述

//常见端口
http 80/tcp
https 443/tcp
ssh 22/tcp
ftp 20,21/tcp
mysql 3306/tcp
rsync 873/rsync
redis 6379/tcp


小练习

1.如何查看系统中每个ip的连接数
使用who命令查看链接中地址的
2.请列出下列服务使用的端口,http,ftp,ssh,telnet,mysql,dns
http:80 ftp:20,21 ssh :22 telnet :23 mysql :1433 dns udp 53端口
3.如何在虚拟机上新增加一块网卡,并配置IP为172.16.0.10,指定网关为172.16.0.1
在n
4.详细描述dns解析过程,以访问www.baidu.com为例
第一步。pingwww.baidu.com 然后通过指定域名的解析服务器解析地址为61.135.169.121,然后访问这个地址,等待服务回应。
在这里插入图片描述

5.如何查看系统中运行了多少个进程
ps -aux|wc -l
在这里插入图片描述

6.如何查看系统中启动了哪些端口
执行命令ss -antl在这里插入图片描述

7.如何查看是否开启80端口,及查看sshd进程是否存在
ss -antp state ESTABLISHED ‘( sport = :80 or dport = :80 )’

8.列出所有处于监听状态的tcp端口
ss -antl
在这里插入图片描述

9.查看所有的端口信息, 包括 PID 和进程名称
ss -antlp
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LBJ19224/article/details/109307465