网络基础

一、修改IP地址信息命令

1.1 ip 命令

ip 命令可以临时修改网络环境,主要用法有:查看IP地址、禁用启用网卡、添加IP地址、修改路由表等功能。但是所有的修改操作都是临时生效,若是重启主机,所有的修改将会失效,若是想永久生效ip命令的修改配置,可以把命令写入rc.local文件内,在rc.local文件权限足够的情况下,实现开机自动加载该命令。

[root@rocky8 ~]#find / -name  rc.local
/etc/rc.local
/etc/rc.d/rc.local

ip命令详细用法参考man文档

[root@rocky8 ~]#man ip
......
EXAMPLES
       ip addr
           Shows addresses assigned to all network interfaces.

       ip neigh
           Shows the current neighbour table in kernel.

       ip link set x up
           Bring up interface x.

       ip link set x down
           Bring down interface x.

       ip route
           Show table routes.
......

1.1.1 ip 命令常用用法

1.查看ip地址信息
[root@rocky8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:21:19:21 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.210/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe21:1921/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:21:19:2b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.210/24 brd 192.168.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe21:192b/64 scope link 
       valid_lft forever preferred_lft forever

2.临时关闭或启用网卡
#关闭网卡
[root@rocky8 ~]#ip link set eth1 down
[root@rocky8 ~]#ip link show|grep eth1
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
#启用网卡
[root@rocky8 ~]#ip link set eth1 up
[root@rocky8 ~]#ip link show |grep eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000

3.添加ip地址
#给eth1网卡添加ip地址:192.168.1.100
[root@rocky8 ~]#ip addr add 192.168.1.100/24 dev eth1
[root@rocky8 ~]#ip a |grep eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.1.210/24 brd 192.168.1.255 scope global noprefixroute eth1
    inet 192.168.1.100/24 scope global secondary eth1

4.删除添加的ip地址
[root@rocky8 ~]#ip addr del 192.168.1.100/24 dev eth1
[root@rocky8 ~]#ip a |grep eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.1.210/24 brd 192.168.1.255 scope global noprefixroute eth1

5.设置网关
ip route add default via 192.168.1.1

6.查看和添加路由规则
#查看路由规则
[root@rocky8 ~]#ip route show
#添加规则
[root@rocky8 ~]#ip route add 规则

1.2 nmcli 命令

nmcli(NetworkManager Command Line Interface)是一个命令行工具,用于控制和管理 NetworkManager,后者是 Linux 系统中用于管理网络连接的一个守护进程。nmcli 提供了一个方便的方式来查询、配置和管理网络连接,而无需使用图形界面。和ip命令不同的是nmcli的修改结果是永久生效的。

nmcli命令常用用法:

  1. 列出网络连接:查看系统中存在的网络连接。
  2. 创建新的网络连接:手动配置网络接口。
  3. 修改现有网络连接:更改网络接口的配置。
  4. 删除网络连接:移除不再需要的网络连接。
  5. 启动或停止网络连接:激活或去激活网络连接。
  6. 查询网络状态:获取有关网络连接的信息。
[root@rocky8 ~]#man nmcli
.....
EXAMPLES
       This section presents various examples of nmcli usage. If you want even more, please refer to nmcli-examples(7) manual page.

       nmcli -t -f RUNNING general
           tells you whether NetworkManager is running or not.

       nmcli -t -f STATE general
           shows the overall status of NetworkManager.

       nmcli radio wifi off
           switches Wi-Fi off.

       nmcli connection show
           lists all connections NetworkManager has.

       nmcli -p -m multiline -f all con show
           shows all configured connections in multi-line mode.

       nmcli connection show --active
           lists all currently active connections.

       nmcli -f name,autoconnect c s
           shows all connection profile names and their auto-connect property.
......

1.2.1 nmcli 命令常用用法

1.查看网络连接 网卡和网络配置文件的对应关系
[root@rocky8 ~]#nmcli con show
NAME      UUID                                  TYPE      DEVICE 
con-eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
con-eth1  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  ethernet  eth1

2.修改现有的网络连接信息
#修改网卡eth1的地址为:192.168.1.100/24 网关:192.168.1.1 dns:8.8.8.8 con-eth1为eth1所对应的网卡信息文件
[root@rocky8 ~]#nmcli con modify con-eth1 ipv4.addresses 192.168.1.100/24 ipv4.dns 8.8.8.8 ipv4.gateway 192.168.1.1  
#更新配置信息
[root@rocky8 ~]#nmcli con up con-eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
#查看eth1的ip信息
[root@rocky8 ~]#ip a |grep eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute eth1

3. 给网卡eth1 添加ip地址
#con-name 表示配置信息文件名 ifname后面接应用的网卡名 ipv4.method manual表示为手动配置的ip地址
[root@rocky8 ~]#nmcli con add con-name static ifname eth1 ipv4.addresses 192.168.1.101/24 ipv4.dns 8.8.8.8 ipv4.gateway 192.168.1.1 ipv4.method manual
#激活配置
[root@rocky8 ~]#nmcli con up static

1.3 修改网络配置文件

使用vim修改网络配置文件的形式配置主机的ip的地址对于不同发行版的Linux系统略微有所不同,Debian系列使用的是yaml格式的文件作为网络配置文件,Redhat系列的则不是该文件类型,而且二者的文件路径也有所不同。

1.3.1 Redhat系列

以rocky8为例

#网络配置文件所在路径,该目录下每一个文件对应一个网卡的配置信息
[root@rocky8 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth
ifcfg-eth0  ifcfg-eth1
[root@rocky8 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=con-eth0 #配置文件名字
DEVICE=eth0 #网卡名字
BOOTPROTO=static #获取ip地址的方式,自动获取则改为DHCP模式,手动配置则为static
IPADDR=10.0.0.210 #IP地址
PREFIX=24 #掩码
GATEWAY=10.0.0.2 #网关地址
DNS1=10.0.0.2 #DNS服务器地址,可以配置多个
DNS2=8.8.8.8
DNS3=180.76.76.76
ONBOOT=yes #是否开机启动该网卡
:wq
#保存信息退出vim
#重新载入网络配置信息
[root@rocky8 ~]#nmcli connection reload 
#启用配置信息 留意反馈的信息是否应用成功
[root@rocky8 ~]#nmcli connection up con-eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

以上的配置项是基础网络配置选项,只要配置正确且符合当前局域网网络要求则可实现主机访问外网,除了以上选项之外还可配置其他的选项以实现对网络的更精细化配置,其他选项如下:

设置说明
TYPE接口类型;常见有的Ethernet, Bridge
NAME此配置文件应用到的设备
DEVICE设备名
HWADDR对应的设备的MAC地址
UUID设备的惟一标识
BOOTPROTO激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
IPADDR指明IP地址
NETMASK子网掩码,如:255.255.255.0
PREFIX网络ID的位数, 如:24
GATEWAY默认网关
DNS1第一个DNS服务器地址
DNS2第二个DNS服务器地址
DOMAIN主机不完整时,自动搜索的域名后缀
ONBOOT在系统引导时是否激活此设备
USERCTL普通用户是否可控制此设备
PEERDNS如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务
器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
NM_CONTROLLEDNM是NetworkManager的简写,此网卡是否接受NM控制

1.3.2 Debin系列

以ubuntu2004为例说明

#文件地址在/etc/netplan/00-installer-config.yaml 可在一个文件内配置多个网卡地址信息,该文件使用yaml格式文件,需要严格注意缩进
[root@ubuntu2004 ~]#cat /etc/netplan/00-installer-config.yaml 
# This is the network config written by 'subiquity'
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no #不使用DHCP方式获取IPv4格式地址下同
      dhcp6: no
      addresses: [10.0.0.153/24] #eth0的网卡ip地址和掩码
      gateway4: 10.0.0.2 #eth0的网关
      nameservers: #eth0的DNS服务器可配置多个
        addresses: [8.8.8.8]
#以下是eth1网卡的配置信息,配置格式同上
    eth1:
      dhcp4: no
      dhcp6: no
 #     addresses: [192.168.1.153/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8]
:wq
#修改完成保存退出vim

#使配置生效
[root@ubuntu2004 ~]#netplan apply

1.4 确认连通外网

安装在VMware中的虚拟机若想要实现连接互联网,配置ip地址信息之后还要确保配置的IP地址信息符合VMware中的虚拟网卡的要求。如该处定义的vmnet8配置的DHCP网段是10.0.0.x/24虚拟机内配的网段要符合这里的要求。

在VMware中打开网络编辑器

确定该界面的设置和自己配置的网络信息一致,若是不一致可以点击“更改设置”

确定虚拟机配置的虚拟网卡是该网卡

检查网络连通性

[root@ubuntu2004 ~]#ping www.baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=128 time=62.2 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=128 time=61.6 ms
......
[root@rocky8 ~]#ping www.baidu.com
PING www.a.shifen.com (183.240.98.198) 56(84) bytes of data.
64 bytes from 183.240.98.198 (183.240.98.198): icmp_seq=1 ttl=128 time=14.4 ms
64 bytes from 183.240.98.198 (183.240.98.198): icmp_seq=2 ttl=128 time=13.10 ms
......

二、bond0配置

以rocky8为例,现有网卡eth0和eth1,创建bond0其ip地址为10.0.0.210/24

编辑bond0配置文件

[root@rocky8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
DEVICE=bond0
BOOTPROTO=static
IPADDR=10.0.0.210
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNS2=8.8.8.8
DNS3=180.76.76.76
ONBOOT=yes
TYPE=Bond
BONDING_OPTS="mode=active-backup miimon=100"
#配置信息解释
NAME=bond0:指定 Bonding 接口的名称。
DEVICE=bond0:指定设备名称。
BOOTPROTO=static:使用静态 IP 配置。
IPADDR=10.0.0.210:指定静态 IP 地址。
PREFIX=24:指定子网掩码。
GATEWAY=10.0.0.2:指定默认网关。
DNS1=10.0.0.2:指定首选 DNS 服务器。
DNS2=8.8.8.8:指定备用 DNS 服务器。
DNS3=180.76.76.76:指定第三个 DNS 服务器。
ONBOOT=yes:在启动时激活接口。
TYPE=Bond:指定设备类型为 Bonding。
BONDING_OPTS="mode=active-backup miimon=100":指定 Bonding 模式为主备模式,并设置链路检测间隔为 100 毫秒。

编辑网卡eth0

[root@rocky8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=con-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

编辑网卡eth1

[root@rocky8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth1
NAME=con-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

重新载入配置

[root@rocky8 ~]#nmcli con reload      
[root@rocky8 ~]#nmcli con up bond0 
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

查看bond0网卡信息

[root@rocky8 ~]#ip a |grep bond0
4: bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    inet 10.0.0.210/24 brd 10.0.0.255 scope global noprefixroute bond0

在同局域网另外一个主机ping 测试一下网络连通性

[root@ubuntu2004 ~]#ping 10.0.0.210
PING 10.0.0.210 (10.0.0.210) 56(84) bytes of data.
64 bytes from 10.0.0.210: icmp_seq=1 ttl=64 time=0.383 ms
64 bytes from 10.0.0.210: icmp_seq=2 ttl=64 time=0.432 ms
......

此条目发表在第四周作业分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注