linux基础配置

1、配置网络

图像配置网络

nmtui

debian没有nmtui,需要安装

# 安装 NetworkManager + nmtui
apt install network-manager -y
# 重启服务
systemctl restart NetworkManager
# 开机自启
systemctl enable NetworkManager
#Debian 用 nmcli 时彻底禁用 ifupdown(防止网络冲突)
#停止并禁用 ifupdown 核心服务
# 停止传统网络服务
systemctl stop networking
# 禁止开机自启
systemctl disable networking
# 屏蔽服务,防止被其他依赖拉起
systemctl mask networking
#修改 /etc/network/interfaces (关键)
vim /etc/network/interfaces
#改成只保留:
#只保留回环,其余全部注释
auto lo
iface lo inet loopback
# 所有 eth0/ens33/ens34 等全部注释或删掉
# auto ens33
# iface ens33 inet dhcp
#卸载 / 屏蔽 ifupdown 工具
apt remove -y ifupdown

nmcli配置

centos9/rocky

# 查看连接名
nmcli connection show
#查看明细
nmcli device status
nmcli device show ens33
nmcli connection show ens33
# 配置静态 IP
nmcli connection modify ens33 \
  ipv4.method manual \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8,8.8.4.4" \
  connection.autoconnect yes

# 激活
nmcli connection up ens33

#以下简写
nmcli c s
nmcli d sh eth0
nmcli c m eth0 ipv4.met man ipv4.addr 192.168.1.100/24 ipv4.gatew 192.168.1.254 ipv4.dns "8.8.8.8,8.8.4.4"
#配置自动(手动manual\自动auto)
nmcli c m eth0 ipv4.met auto 
#配置手动必须要配上ip地址
nmcli c m eth0 ipv4.met man ipv4.add 192.168.1.100/24
#修改ip
nmcli c m eth0 ipv4.add 192.168.1.100/24
#修改网关
nmcli c m eth0 ipv4.g 192.168.1.254
#修改DNS
nmcli c m eth0 ipv4.dns 8.8.8.8,8.8.4.4
#删除一条DNS
nmcli c m eth0 -ipv4.dns 8.8.4.4
#再增加一条DNS
nmcli c m eth0 +ipv4.dns 114.114.114.114
#自动连接
nmcli c m eth0 c.autoconnect yes

#启动网络
nmcli c up eth0
#关闭网络
nmcli c down eth0
#重新激活
nmcli c reload
#删除网络
nmcli c del eth0

如果网卡被删,需要新建配置

#新建连接,名字叫 ens33,绑定设备 ens33,开机自启,DHCP
nmcli connection add type ethernet con-name ens33 ifname ens33 autoconnect yes ipv4.method auto

#简写
nmcli c a type eth con-name ens33 ifname ens33 autoconnect yes ipv4.met auto

创建链路聚合bond0

nmcli c add type bond con-name bond0 ifname bond0 mode 4 miimon 100
# mode模式可选:
# active-backup(1) 主备(推荐)
# balance-rr(0)    轮询模式(必须在交换机上配置静态链路聚合(静态 trunk/port-channel))
# 802.3ad(4)       LACP(需要交换机支持)
# balance-alb(6)   负载均衡(无需交换机)
# con-name         连接起个名字:bond0
# ifname           虚拟网卡的真实名字:bond0
# miimon 100       每 100毫秒检查一次网卡链路状态,断了立刻切换

桥接配置

#多网卡绑定bond0
nmcli c add type bond-slave con-name bond0-em1 ifname em1 master bond0
nmcli c add type bond-slave con-name bond0-em2 ifname em2 master bond0
nmcli c add type bond-slave con-name bond0-em3 ifname em3 master bond0
nmcli c add type bond-slave con-name bond0-em4 ifname em4 master bond0
#配置bond0静态 IP
nmcli c m bond0 ipv4.met man ipv4.add "192.168.1.100/24" ipv4.g "192.168.1.1" ipv4.dns "223.5.5.5 223.6.6.6" c.autoconnect yes
#启动上线
nmcli c up bond0

注意:多个聚合只要配置一个网关,另外不要配置网关

nmcli type

nmcli 的 type有哪些:

一、常用生产类型(必记)

  • ethernet(别名 eth):普通有线网卡(ens33/eth0)
  • bond:网卡绑定(mode 0/1/4 等)
  • bond-slave:bond 的从网卡(master 指向 bond0)
  • bridge:网桥(KVM/Xen 虚拟化常用)
  • bridge-slave:网桥的从网卡(物理口加入桥)
  • vlan:VLAN 子接口(id + 父接口)
  • team:团队网卡(替代 bond,更灵活)
  • dummy:虚拟空网卡(测试 / 占位)

二、无线 / 移动类

  • wifi(802-11-wireless):无线网卡
  • wifi-p2p:Wi-Fi 点对点
  • bluetooth:蓝牙网络
  • gsm/cdma:4G/5G 移动网卡
  • wimax:WiMAX 无线宽带

三、隧道 / 虚拟网络(云 / 容器)

  • vpn:VPN 连接(OpenVPN/IPsec)
  • vxlan:VXLAN 虚拟隧道(容器网络)
  • ip-tunnel:IPIP/GRE 隧道
  • tun:TUN 虚拟网卡(VPN / 路由)
  • macvlan:MACVLAN 虚拟网卡(容器直连物理网)
  • vrf:虚拟路由转发(多路由表)
  • wireguard:WireGuard 轻量 VPN

四、OpenvSwitch 专属(虚拟化)

  • ovs-bridge:OVS 网桥
  • ovs-port:OVS 端口
  • ovs-interface:OVS 接口

五、少见 / 硬件特殊类型

  • adsl:ADSL 拨号
  • infiniband:IB 高速网络(服务器集群)
  • loopback:回环口(lo)
  • pppoe:PPPoE 拨号
  • veth:虚拟以太网对(容器内部)

六、最简记忆版(日常 99% 场景)

ethernet | bond | bridge | vlan | team | dummy

debian网络配置

编辑网络配置

vim /etc/network/interfaces

静态 IP 配置(常用)

# 本地回环(默认保留)
auto lo
iface lo inet loopback

# 有线网卡eth0静态IP
auto eth0
#DHCP自动获取/static静态配置
#iface eth0 inet dhcp
iface eth0 inet static
    address 192.168.1.100/24  # IP/子网前缀
    netmask 255.255.255.0     # 子网掩码(可选,与前缀二选一)
    gateway 192.168.1.1        # 默认网关
    dns-nameservers 223.5.5.5 223.6.6.6  # DNS

1、链路聚合(Bonding)

找一台联网的debian机器执行下载deb安装包

#下载主包 + 所有依赖包
apt --download-only install ifenslave

会在/var/cache/apt/archives/目录下生成deb安装包

ifenslave_2.13_all.debnet-tools_2.10-0.1+deb12u2_amd64.deb拷贝出来

或者直接当前目录下载:

#只下载主包到当前目录
apt download ifenslave

Debian 12默认支持FAT32,无需额外驱动,将两个.deb文件复制到U盘根目录

挂载U盘离线安装

#插入U盘,查看U盘设备名
fdisk -l
# 创建目录
mkdir -p /data/usb  
# 挂载U盘(替换sdb4为实际设备)
mount /dev/sdb4 /data/usb
#进入挂载目录
cd /data/usb  
#安装离线包
dpkg -i ifenslave_2.13_all.deb net-tools_2.10-0.1+deb12u2_amd64.deb
#卸载U盘
umount /data/usb 
#检查是否安装
dpkg -l | grep ifenslave
# 检查net-tools(需重启终端)
ifconfig -V       

配置文件(/etc/network/interfaces)

vim /etc/network/interfaces

写入

# 环回口
auto lo
iface lo inet loopback

# 物理网卡设为手动
iface eth0 inet manual
iface eth1 inet manual

# 链路聚合 bond0
auto bond0
iface bond0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8
    bond-slaves eth0 eth1
    bond-mode 4
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    bond-lacp-rate 1
    bond-xmit-hash-policy layer2+3
    dns-nameservers 114.114.114.114 8.8.8.8

Bonding 模式

  • mode=1:主备(无需交换机配置)
  • mode=4:LACP 聚合(交换机需配置 LACP)

重启网络并验证

systemctl restart networking
cat /proc/net/bonding/bond0
ip addr show bond0

2、桥接(Bridge)

配置网络桥接模式,安装的依赖模块bridge-utils

apt install bridge-utils  

配置文件(/etc/network/interfaces)

vim /etc/network/interfaces

写入

# 环回口
auto lo
iface lo inet loopback

# 物理网卡设为手动
iface eth0 inet manual

# 网桥 br0
auto br0
iface br0 inet static
    address 192.168.1.101
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0
    dns-nameservers 114.114.114.114 8.8.8.8

重启网络并验证

systemctl restart networking
brctl show
ip addr show br0

3、组合场景:Bonding + Bridge(常用)

先做 bond,再把 bond0 加入网桥 br0(适合多网卡聚合后给虚拟机用)。

auto lo
iface lo inet loopback

# 物理网卡
iface eth0 inet manual
iface eth1 inet manual

# 聚合 bond0
auto bond0
iface bond0 inet manual
    bond-slaves eth0 eth1
    bond-mode 4
    bond-miimon 100

# 网桥 br0
auto br0
iface br0 inet static
    address 192.168.1.102
    netmask 255.255.255.0
    gateway 192.168.1.1
    bridge_ports bond0
    bridge_stp off
    dns-nameservers 114.114.114.114 8.8.8.8

双链路聚合+桥接配置

source /etc/network/interfaces.d/*

# 只要 bond-slaves 里包含了它们,系统会自动接管,不需要单独声明 manual。
auto lo
iface lo inet loopback

#auto eno1
#iface eno1 inet manual 
#auto eno2
#iface eno2 inet manual
#auto eno3
#iface eno3 inet manual
#auto eno4
#iface eno4 inet manual
#auto ens3f0
#iface ens3f0 inet manual 
#auto ens3f1
#iface ens3f1 inet manual 

auto bond0
iface bond0 inet manual
    bond-slaves eno1 eno2 eno3 eno4
    bond-miimon 100
    bond-mode 4
    bond-xmit-hash-policy layer2+3

auto br0
iface br0 inet static
    address 10.21.16.16/24
    #gateway 10.21.16.254
    bridge-ports bond0
    bridge-stp off
    bridge-fd 0
    dns-nameservers 114.114.114.114 8.8.8.8
    up ip route add default via 10.21.16.254 dev br0 metric 100
    
auto bond1
iface bond1 inet manual
    bond-slaves ens3f0 ens3f1
    bond-miimon 100
    bond-mode 4
    bond-xmit-hash-policy layer2+3

auto br1
iface br1 inet static
    address 10.1.6.6/24
    #gateway 10.1.6.254
    bridge-ports bond1
    bridge-stp off
    bridge-fd 0
    dns-nameservers 114.114.114.114 8.8.8.8
    up ip route add default via 10.1.6.254 dev br1 metric 200
    up ip route add 10.10.20.9 via 10.1.6.254 dev br1

metric 双默认路由(推荐冗余),路由数值越小优先级越高:

metric 100 优先级 > metric 200

#把所有gateway注释掉
#正常情况下系统只走 br0 网关
#只有 br0 链路断了,才会切到 br1 当备用出口
up ip route add default via 10.21.16.254 dev br0 metric 100
up ip route add default via 10.1.6.254 dev br1 metric 200

注意:也可以只单网关,不用双默认路由双线路冗余,只留一个 gateway删掉两条 up 默认路由,br1 只做内网静态路由即可。

4、手动添加静态路由

临时生效,重启后就失效

#添加网段
ip route add 172.20.0.0/24 via 192.168.20.1 dev br1
#添加单个IP
ip route add 172.20.0.2 via 192.168.20.1 dev br1
# 删除172.20.0.0/24的静态路由
ip route del 172.20.0.0/24 via 192.168.20.1 dev br1
# 简化版(只要网段正确即可)
ip route del 172.20.0.0/24
# 查看路由表
ip route show

#via 192.168.20.1:指定下一跳网关(br1 的网关)
#dev br1:指定走 br1 网口(强制绑定网口)

想让路由 重启不消失,必须这样写

#把这条写在interfaces **br1** 配置里:
up ip route add 172.20.0.0/24 via 192.168.20.1 dev br1

重启网络

systemctl restart networking