笔记本电脑往返公司、家里、客户现场,经常需要切换IP。公司使用静态IP,家里DHCP自动获取,客户现场网段又不一样。每次打开网络适配器属性,一步步填写IP、子网掩码、网关、DNS,操作繁琐。Windows自带几种快速切换方案,只是入口比较隐蔽。
批处理脚本通用性很强,借助netsh命令写入多套环境配置,双击运行完成切换。公司网段192.168.1.100,家里自动获取,编写两个bat文件,一个设置静态IP,一个切回DHCP。netsh interface ip set address "以太网" static 192.168.1.100 255.255.255.0 192.168.1.1,后续追加DNS配置。切换右键管理员运行,几秒完成。网卡名称要和系统内名称匹配,中文系统一般叫以太网或者WLAN,不确定执行netsh interface show interface查看。

macOS原生有网络位置功能,新建多套配置,一套公司一套家庭,点击切换。Windows没有同款功能,可以搭配网络配置文件加脚本实现近似效果。想要更简单,可以安装第三方工具。NetSetMan免费,界面直观,保存多套配置,IP、DNS、网关、打印机、驱动器映射一起切换。IPSwitcher是绿色单文件,U盘携带,任意电脑都能打开。工具优势不用记忆命令,一键切换,不同网卡独立配置。缺点是需要安装,部分企业电脑禁止安装软件,只能使用脚本。
Linux切换IP方式灵活。NetworkManager配套nmcli命令修改,nmcli con mod "有线连接" ipv4.addresses 192.168.1.100/24,修改网关DNS,执行nmcli con up "有线连接"生效。也可以预先创建多个连接配置,使用nmcli con up切换。桌面环境图形界面也可以操作。频繁切换网络,编写shell脚本绑定快捷键,一键切换。
笔记本同时接入网线和Wi-Fi,系统默认优先有线网卡。想要不同应用分别走不同网卡,需要路由表或者策略路由,配置复杂,普通场景很少用到。简单场景直接禁用其中一张网卡,设备管理器右键禁用,或者netsh interface set interface "WLAN" disable执行命令。
切换IP之后DNS缓存留存旧记录,网页打不开。Windows执行ipconfig /flushdns清理缓存,Linux使用systemd-resolve --flush-caches或者重启nscd。公司网络存在MAC地址绑定,修改IP依旧无法上网,需要修改MAC地址到允许的值,或者联系网管添加白名单。
频繁切换IP,提前保存多套配置。WindowsIPv4属性页面有备用配置选项,选择用户配置填写静态IP,DHCP获取失败自动启用备用配置。灵活性不如脚本,无需额外软件,应急场景够用。