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.deb和net-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