C03S01-Linux网络基本设置

一、查看网络基本信息

1. ip命令 -- 显示与配置网卡信息

ip命令的功能是显示与配置网卡信息。

bash 复制代码
ip [选项] 对象 [动作]

常见的对象:

对象 功能
address IP地址信息
route 路由表信息

2. ifconfig命令 -- 显示或设置网络设备参数信息

ifconfig命令来自英文词组network interfaces configuring的缩写,功能是显示或设置网络设备参数信息。

bash 复制代码
ifconfig [选项] [网卡] [IP地址] [动作]

常见的选项:

选项 功能
-a 显示全部网卡

常见的动作:

动作 功能
add 设置网络地址
del 删除网络地址
down 关闭网络设备
up 启动网络设备

ifconfig显示的内容:

bash 复制代码
ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.128  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe9a:2e0e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9a:2e:0e  txqueuelen 1000  (以太网)
        RX packets 102725  bytes 148357711 (148.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 64957  bytes 3947529 (3.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 172  bytes 16011 (16.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 172  bytes 16011 (16.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • flags=4163<UP,BROADCAST,RUNNING,MULTICAST>:表示网络接口的状态,UP表示接口已激活,BROADCAST表示支持广播,RUNNING表示接口正在运行,MULTICAST表示支持多播。
  • mtu 1500:最大传输单元(Maximum Transmission Unit),即网络接口能够传输的最大数据包大小,这里是1500字节。
  • inet 192.168.1.128:IPv4地址。
  • netmask 255.255.255.0:子网掩码。
  • broadcast 192.168.1.255:广播地址。
  • inet6 fe80::20c:29ff:fe9a:2e0e:IPv6地址。
  • prefixlen 64:IPv6地址的前缀长度。
  • scopeid 0x20<link>:表示这是一个链路本地地址。
  • ether 00:0c:29:9a:2e:0e:MAC地址,也就是网卡的物理地址。
  • txqueuelen 1000:发送队列的长度。
  • RX packets、TX packets:分别表示接收和发送的数据包数量。
  • bytes:接收和发送的总字节数。
  • RX errors、TX errors:接收和发送时的错误数。
  • dropped:由于缓冲区满等原因而丢弃的数据包数。
  • overruns:由于缓冲区溢出而丢失的数据包数。
  • frame:由于帧同步错误而丢失的数据包数。
  • carrier:表示物理层的载波检测状态。
  • collisions:在发送数据时发生的冲突数。

设置网络设备的虚拟网卡:

bash 复制代码
ifconfig ens33:1 192.168.1.100/24
  • ens33:1:虚拟网卡名称。ens33是物理网卡名称,:1表示这是一个虚拟接口。
  • 192.168.1.100/24:分配给虚拟网卡的IP地址和子网掩码。
  • 注意:物理网卡要能够正常工作,接口名称可以是数字或者是字母,名称不能够重复;当系统重启或者虚拟网卡停止使用后,就会消失。

3. ifup命令 -- 激活网络接口

ifup命令来自英文词组"interface up"的缩写,功能是用于启用网卡。

bash 复制代码
ifup 网卡名称

4. ifdown命令 -- 禁用网络接口

ifdown命令来自英文词组"interface down"的缩写,功能是用于禁用网络接口。

bash 复制代码
ifdown 网卡名称

5. route命令 -- 显示与设置路由信息

route命令的功能是显示与设置路由信息,是Linux系统中常用的静态路由配置工具。

bash 复制代码
route [选项] [动作]

常见的选项:

选项 功能
-n 以数字形式显示IP地址

6. netstat命令 -- 显示网络状态

netstat命令来自英文词组network statistics的缩写,功能是显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等。

bash 复制代码
netstat [选项]

常见的选项:

选项 功能
-a 显示所有活动的网络连接信息
-n 以数字形式显示IP、端口等
-p 显示活动接口的PID和程序名称(进程信息)
-r 显示路由表信息
-t 显示TCP协议连接的信息
-u 显示UDP协议连接的信息

netstat查看的网络状态的连接信息主要内容:

bash 复制代码
netstat -antp


Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      843/cupsd
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      511/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      831/sshd: /usr/sbin
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      1791/sshd: root@pts
tcp        0      0 192.168.1.128:22        192.168.1.1:3880        ESTABLISHED 1793/sshd: root@not
tcp        0      0 192.168.1.100:22        192.168.1.1:5078        ESTABLISHED 2716/sshd: root@pts
tcp        0     48 192.168.1.128:22        192.168.1.1:3878        ESTABLISHED 1791/sshd: root@pts
  • Proto:协议类型。
  • Recv-Q:接收队列的大小,表示等待被应用程序读取的数据量。0表示没有数据在队列中。
  • Send-Q:发送队列的大小,表示等待被发送的数据量。0表示没有数据在队列中。
  • Local Address:本地地址和端口,格式为IP地址:端口号。
  • Foreign Address:远程地址和端口,格式为IP地址:端口号。0.0.0.0:*或:::*表示接受任意IP地址的连接。
  • State:连接的状态,如LISTEN表示监听状态,等待连接;ESTABLISHED表示连接已建立,0.0.0.0:*表示任意IP地址都可以连接。
  • PID/Program name:与本地地址关联的进程ID和程序名称。

7. ss命令 -- 显示活动套接字信息

ss命令来自英文词组"Socket Statistics"的缩写,和netstat命令类似,功能是用于显示活动套接字信息。

bash 复制代码
ss [选项]

常见的选项:

选项 功能
-a 显示所有套接字信息
-n 以数字形式显示IP、端口等
-p 显示套接字的进程信息
-t 显示TCP协议的套接字信息
-u 显示UDP协议的套接字信息

ss查看的套接字信息主要内容:

bash 复制代码
ss -antp

State    Recv-Q   Send-Q     Local Address:Port      Peer Address:Port   Process
LISTEN   0        128            127.0.0.1:631            0.0.0.0:*       users:(("cupsd",pid=843,fd=7))
LISTEN   0        4096       127.0.0.53%lo:53             0.0.0.0:*       users:(("systemd-resolve",pid=511,fd=14))
LISTEN   0        128              0.0.0.0:22             0.0.0.0:*       users:(("sshd",pid=831,fd=3))
  • State:连接的状态。
  • Recv-Q:接收队列的大小,表示等待被应用程序读取的数据量。0表示没有数据在队列中。
  • Send-Q:发送队列的大小,表示等待被发送的数据量。这里128和4096表示有数据在队列中等待发送。
  • Local Address:Port:本地地址和端口,格式为IP地址:端口号。%lo表示这是一个回环接口(loopback interface),仅在本地机器上可访问。
  • Peer Address:Port:远程地址和端口,格式为IP地址:端口号。0.0.0.0:*表示接受任意IP地址的连接。
  • Process:与本地地址关联的进程信息,包括进程名称、进程ID(pid)和文件描述符(fd)。

8. lsof命令 -- 查看文件的进程信息

lsof命令来自英文词组list opened files的缩写,功能是查看文件的进程信息。

bash 复制代码
lsof [选项]

常见的选项:

选项 功能
-i 显示符合条件的进程信息
-p 显示指定UID的进程信息

二、测试网络连接性

1. ping命令 -- 测试主机间网络连通性

ping命令的功能是测试主机间网络的连通性,它发送出基于ICMP传输协议的数据包,要求对方主机予以回复。

bash 复制代码
ping [选项] IP地址或域名

常见的选项:

选项 功能
-c 设置发送数据包的次数
-i 设置发送数据包的时间间隔
-w 设置程序结束前的等待时间
-W 设置响应的等待时间

2. traceroute命令 -- 追踪网络数据包传输路径

traceroute命令来自英文词组"Trace router"的拼写,其功能是用于追踪网络数据包传输路径。

bash 复制代码
traceroute [选项] IP地址或域名

三、查看网络域名信息

1. nslookup命令 -- 查询域名服务器信息

nslookup命令来自英文词组"Nameserver lookup"的缩写,功能是用于查询域名服务器信息。

bash 复制代码
nslookup [选项] IP地址或域名
  • 可以在/etc/hosts文件里配置本地的域名与IP映射。
  • 本地的DNS域名解析配置文件是/etc/resolv.conf。

四、配置网络信息

1. 配置静态网络

1.1 CentOS系统

  1. 编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33。

  2. 将BOOTPROTO属性的属性值修改为static,ONBOOT属性的属性值修改成yes。

  3. 在文件中新增以下内容,设置虚拟机的静态IP、子网掩码、网关、DNS。

    shell 复制代码
    IPADDR=192.168.1.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.254
    DNS1=114.114.114.114
    DNS2=8.8.8.8
  4. 保存文件后,重启网络服务。

    bash 复制代码
    systemctl restart network

1.2 Ubuntu系统

  1. 编辑网卡配置文件/etc/netplan/01-network-manager-all.yaml。

  2. 在文件中写入以下内容,设置虚拟机的静态IP、子网掩码、网关、DNS。

    yaml 复制代码
    network:
      ethernets:
        ens33:
          dhcp4: no
          addresses: [192.168.1.128/24]
          gateway4: 192.168.1.254
          nameservers:
            addresses: [218.2.135.1]
  3. 保存文件后,重启网络服务。

    bash 复制代码
    netplan apply

2. 配置多网卡

2.1 CentOS系统

  1. 添加新网卡。在VMware中给虚拟机新增一个网络适配器。

  2. 使用ip或ifconfig命令查看新网卡的名称。

  3. 复制原有网卡的配置文件,并改为新网卡名。

    bash 复制代码
    cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
  4. 编辑ens36的配置文件,修改文件里的网卡名、IP地址,注释UUID。

    shell 复制代码
    NAME=ens36
    #UUID=1b92a67a-e9b6-48cc-8283-f8158b738064
    DEVICE=ens36
    
    IPADDR=192.168.1.3
    • 或是使用uuidgen随机生成一个UUID,再将文件里的原UUID修改为新生成的UUID。

    • 也可以直接覆盖原配置内容。

      shell 复制代码
      TYPE=Ethernet
      BOOTPROTO=static
      NAME=ens36
      DEVICE=ens36
      ONBOOT=yes
      IPADDR=192.168.1.3
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.254
      DNS1=114.114.114.114
      DNS2=8.8.8.8
  5. 保存文件后,重启网络服务。

    bash 复制代码
    systemctl restart network

2.2 Ubuntu系统

  1. 添加新网卡。在VMware中给虚拟机新增一个网络适配器。

  2. 使用ip或ifconfig命令查看新网卡的名称。

  3. 编辑网卡配置文件,在文件中按照原有网卡配置的格式来新增新网卡的配置,具体内容如下所示。

    yaml 复制代码
    network:
      ethernets:
        ens33:
          dhcp4: no
          addresses: [192.168.1.128/24]
          gateway4: 192.168.1.254
          nameservers:
            addresses: [218.2.135.1]
        # 新增网卡
        ens37:
          dhcp4: no
          addresses: [192.168.1.130/24]
          gateway4: 192.168.1.254
          nameservers:
            addresses: [218.2.135.1]
  4. 保存文件后,重启网络服务。

    bash 复制代码
    netplan apply

3. 配置Bond网卡

3.1 Bond网卡概述

Bond网卡,也称为网卡绑定或网卡捆绑,是一种将两个或更多的物理网卡绑定成一个虚拟网卡的技术。这样做的目的是为了实现本地网卡的冗余、带宽扩容和负载均衡,如果其中一个网卡故障,不会影响系统的网卡正常工作。

Bond网卡支持七种不同的工作模式,下面是七种工作模式的介绍。

  1. Mode 0 :轮询模式。两个网卡都会使用,数据包按照轮询的方式依次发送到每个网卡,实现负载均衡。这种模式不提供冗余性。
  2. Mode 1:主备模式。具有冗余功能,只有一个工作,另一个备用。
  3. Mode 2 :均衡模式。使用源和目的MAC地址以及传输层协议和端口号来选择要发送的网卡。提供负载均衡和冗余。
  4. Mode 3:广播模式。将所有数据包发送到所有网卡。实现广播传输,但不提供负载均衡或冗余性。
  5. Mode 4 (802.3ad):LACP模式(动态链接聚合)。使用LACP协议动态协商绑定接口的工作方式,提供负载均衡和冗余性。
  6. Mode 5 (balance-tlb):负载均衡模式,以太网设备能够获取每个网卡的速率。
  7. Mode 6 (balance-alb):自适应负载均衡模式,针对数据流量实现负载均衡,不需要特殊的交换机支持。

3.2 Bond 0模式配置

  1. 配置逻辑网卡bond0。

    bash 复制代码
    vi /etc/sysconfig/network-scripts/ifcfg-bond0
    
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=bond0
    DEVICE=bond0
    ONBOOT=yes
    IPADDR=192.168.1.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.254
    DNS1=114.114.114.114
    DNS2=8.8.8.8
    BONDING_OPTS="miimon=100 mode=0 fail_over_mac=1"
  2. 配置物理网卡ens33和ens36。

    bash 复制代码
    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
    TYPE=Ethernet
    BOOTPROTO=none
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    USERCTL=no
    bash 复制代码
    vi /etc/sysconfig/network-scripts/ifcfg-ens36
    
    TYPE=Ethernet
    BOOTPROTO=none
    NAME=ens36
    DEVICE=ens36
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes
    USERCTL=no
  3. 加载bonding模块。

    bash 复制代码
    modprobe bonding
  4. 重启网络服务。

    bash 复制代码
    systemctl restart network
相关推荐
速盾cdn1 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211231 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin1 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
PersistJiao3 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
黑客Ash5 小时前
【D01】网络安全概论
网络·安全·web安全·php
->yjy5 小时前
计算机网络(第一章)
网络·计算机网络·php
朝九晚五ฺ6 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream6 小时前
Linux的桌面
linux
xiaozhiwise6 小时前
Makefile 之 自动化变量
linux
摘星星ʕ•̫͡•ʔ6 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络