Linux网络配置脚本:编写自动化配置多网卡与 IP 的 Shell 脚本

胖芳小哥_1229

胖芳小哥_1229

2026-09-04

880人浏览

原创

linux多网卡配置自动化需动态识别网卡、按发行版写入对应配置文件、分步应用避免断连,并支持双网段/主备/策略路由等场景,全程强调安全与可回滚。

linux网络配置脚本:编写自动化配置多网卡与 ip 的 shell 脚本

Linux 多网卡网络配置可通过 Shell 脚本自动化完成,核心是准确识别网卡、安全修改配置文件、按需启用/禁用接口,并避免重启网络服务导致连接中断。关键不在于写得复杂,而在于稳——尤其在远程操作时,必须保留至少一条可用路径。

识别并确认目标网卡名称

不同发行版网卡命名可能为 eth0ens33enp0s3eno1,不能硬编码。建议脚本开头用 ip -br linkls /sys/class/net/ 动态获取,过滤掉 lodocker0 等非物理接口:

  • ip -br link | awk '$1 !~ /^lo|docker|^br/ && $2 == "UP" {print $1; exit}' 获取首个已启用的物理网卡
  • 若需多网卡,可用 ip -br link | awk '$2 == "UP" && $1 !~ /^lo|docker|^veth|^br/ {print $1}' 列出全部
  • 对虚拟机或云环境,可结合 lspci | grep -i ethernet 辅助验证

区分发行版写入对应配置文件

CentOS/RHEL 使用 /etc/sysconfig/network-scripts/ifcfg-xxx,Ubuntu/Debian 使用 /etc/netplan/*.yaml,混用会失效。脚本应先判断系统类型再生成配置:

onewo-rtlinux
onewo-rtlinux

Linux 实时编程助手。生成、审查并修改用于周期性控制任务和中断驱动程序的 C 代码。强制实施实时调度策略。

下载
  • grep -q "ubuntu\|debian" /etc/os-releasegrep -q "centos\|rhel" /etc/os-release 分支处理
  • CentOS 示例:写入 ifcfg-ens33 包含 BOOTPROTO=staticIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1
  • Ubuntu 示例:生成 /etc/netplan/01-multi-nic.yaml,用 YAML 格式定义多个 ethernets 条目,注意缩进与冒号后空格

安全应用配置,避免失连

远程执行时,直接 systemctl restart networknetplan apply 可能断开 SSH。推荐分步+超时回滚:

  • 先用 ip addr add 临时添加 IP(如 ip addr add 192.168.2.10/24 dev ens37),验证连通性
  • 再写入持久配置,最后用 ip link set dev ens37 up 启用新接口(若未启用)
  • 对 Netplan,运行 netplan try(有 120 秒倒计时,无响应则自动回退)
  • 关键步骤前加 sleep 2 && ping -c 2 -W 1 192.168.1.1 &>/dev/null || { echo "网关不可达,终止"; exit 1; }

支持常见多网卡场景

脚本可预设几种典型模式,通过参数调用,例如:./netconf.sh --dual --primary ens33 --secondary ens37 --ip1 192.168.1.10 --ip2 10.0.0.10

  • 双网卡双网段:各自独立子网,不设默认路由,仅用于业务隔离
  • 主备模式:主卡配默认网关,备卡仅配 IP 不设 gateway,用 ip route replace default via ... dev ens37 onlink 手动切换
  • 策略路由:为某网卡添加独立路由表(如 echo "200 table2" >> /etc/iproute2/rt_tables),配合 ip rule 实现源地址选路

不复杂但容易忽略:每次改完务必检查 ip route showip rule show,确认路由无冲突;备份原配置(cp /etc/netplan/*.yaml /etc/netplan/backup_$(date +%s).yaml)是必选项。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3570

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3113

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2153

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5130

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4822

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2913

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2405

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2619

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习