Linux 下如何优雅地切换多个网络配置文件

2025.7.7 杂七杂八 975
33BLOG智能摘要
本文探讨了在Linux系统中优雅地切换多个网络配置文件的方法。作者首先通过使用NetworkManager的`nmcli`工具实现connection管理,展示如何创建和切换不同网络配置。其次是传统的`ifcfg`文件轮换法,适用于CentOS等老系统,但需注意SELinux的问题。第三推荐了Ubuntu 18.04+使用的`netplan`配置方式,并提供配置示例。最后作者还分享了一些实用技巧,如使用别名加快捷操作及优化配置命名等。
— 此摘要由33BLOG基于AI分析文章内容生成,仅供参考。

Linux 网络配置切换术:告别 ifconfig 手忙脚乱的日子

Linux 下如何优雅地切换多个网络配置文件

大家好,我是33blog的运维老司机。今天想和大家聊聊一个看似简单却经常让人抓狂的问题——如何在Linux下优雅地切换多个网络配置文件。上周我在给客户部署服务器时,就因为频繁切换办公网/生产网配置,差点把ifconfig敲出火星子…

为什么我们需要网络配置切换?

相信很多运维同行都遇到过这样的场景:笔记本连公司WiFi要用静态IP,回家连路由器要改DHCP;服务器在测试环境用10网段,上线要切到192网段。每次都要重新配置IP、网关、DNS,不仅麻烦还容易出错。

我最早的做法是写个network_config.sh脚本,后来发现每次改参数都要vim编辑,实在太原始了。直到有天看到同事用nmcli行云流水地切换配置,才打开了新世界的大门。

方案一:NetworkManager 的 connection 管理

现代Linux发行版基本都使用NetworkManager服务,它自带的nmcli命令行工具其实超级强大:

# 查看现有连接配置
nmcli connection show

# 创建办公网络配置
nmcli connection add type ethernet 
    con-name "office" ifname eth0 
    ip4 192.168.1.100/24 gw4 192.168.1.1
nmcli connection modify office ipv4.dns "8.8.8.8"

# 切换到家网络配置
nmcli connection up home

我特别喜欢它的connection概念——把整套网络参数打包命名,切换时就像换电视频道一样简单。而且配置会自动持久化,重启也不怕。

方案二:ifcfg 文件轮换大法

有些老派管理员(比如我师父)更喜欢传统的/etc/sysconfig/network-scripts/配置方式。我们可以这样玩:

# 备份当前配置
cp ifcfg-eth0 ifcfg-eth0.bak

# 创建不同场景配置
echo "office配置" > ifcfg-eth0.office
echo "home配置" > ifcfg-eth0.home

# 快速切换函数
function net-switch() {
    cp ifcfg-eth0.$1 ifcfg-eth0
    systemctl restart network
}

这个方案特别适合CentOS老系统,不过要注意SELinux上下文问题(别问我怎么知道的)。

方案三:netplan 的优雅之道

Ubuntu 18.04+用户可以使用netplan,这是我最近发现的神器:

# /etc/netplan/01-office.yaml
network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1

# 应用配置
netplan apply

配合ln -sf创建配置文件的符号链接,切换时只需修改链接指向,既干净又避免配置文件冲突。

我的私房小技巧

最后分享几个实战中总结的经验:

  • nmcli connection edit进入交互模式比直接敲命令更友好
  • 给配置名加前缀比如zz-auto-home可以控制排序
  • 记得用nmcli device status检查网卡状态
  • 网卡命名不稳定时,改用MAC地址指定接口更可靠

现在我的终端里常驻着alias net-office='nmcli con up office'这样的快捷命令,切换网络比切换输入法还快。大家如果有更好的方案,欢迎在评论区交流~

评论

  • 用nmcli的小伙伴注意了,connection name记得不要带空格,别问我怎么知道的 😅

  • nmcli确实比ifconfig好用多了,现在切换网络配置再也不用手忙脚乱了

  • 老哥你那个ifcfg方案还不错,正好我们公司还在用CentOS6,改天试试 🤔

  • 每次用ifconfig手动改IP都有点慌,生怕把生产网搞挂了

  • 求问Ubuntu20.04用netplan管理无线网络怎么搞?卡在wifi配置这里了

  • 原来nmcli还能interactive模式!学到了,感谢分享 👍

  • 之前网络切换经常掉DNS,现在用楼主方法总算稳定了

  • 建议配个按键精灵,一键切换办公室和家里网络,美滋滋

  • 收藏了!正好最近被频繁改IP搞得头大

  • 老司机带带我!能不能再详细说说SELinux配置那部分 😊