You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单网卡Ubuntu Server 22.04自动切换家庭与办公静态网络配置方案咨询

单网卡Ubuntu Server 22.04自动切换家庭与办公静态网络配置方案咨询

嗨,很高兴能帮到你!针对你的需求,完全可以通过Netplan配合简单的脚本实现自动切换家庭和办公的静态网络配置,不用每次手动修改设置。下面我一步步给你讲具体怎么做:

第一步:配置Netplan多网络Profile

首先,我们为家庭和办公网络分别创建独立的Netplan配置文件,这样可以方便地启用/禁用对应的静态配置。

  1. 先查看你的WiFi接口名称,执行命令:
    ip link
    通常会显示类似wlp2s0或者wlan0的接口名,记下来后面要用。

  2. 创建家庭网络配置文件/etc/netplan/50-home.yaml,执行:
    sudo nano /etc/netplan/50-home.yaml
    粘贴以下内容(记得替换成你自己的信息):

network:
  version: 2
  renderer: NetworkManager
  wifis:
    wlp2s0:  # 替换成你的WiFi接口名
      dhcp4: no
      addresses: [192.168.0.100/24]  # 家庭网络的静态IP
      gateway4: 192.168.0.1         # 家庭网关地址
      nameservers:
        addresses: [192.168.0.1, 8.8.8.8]  # 家庭DNS服务器
      access-points:
        "Home-WiFi-Name":  # 替换成你的家庭WiFi名称
          password: "Home-WiFi-Password"  # 替换成家庭WiFi密码
  1. 创建办公网络配置文件/etc/netplan/50-office.yaml,执行:
    sudo nano /etc/netplan/50-office.yaml
    粘贴以下内容(同样替换成办公网络的信息):
network:
  version: 2
  renderer: NetworkManager
  wifis:
    wlp2s0:  # 同样替换成你的WiFi接口名
      dhcp4: no
      addresses: [192.168.1.100/24]  # 办公网络的静态IP
      gateway4: 192.168.1.1         # 办公网关地址
      nameservers:
        addresses: [192.168.1.1, 8.8.4.4]  # 办公DNS服务器
      access-points:
        "Office-WiFi-Name":  # 替换成你的办公WiFi名称
          password: "Office-WiFi-Password"  # 替换成办公WiFi密码
  1. 生成并应用初始配置:
    sudo netplan generate && sudo netplan apply

第二步:编写自动切换脚本

接下来写一个脚本,用来检测当前连接的WiFi SSID,自动切换对应的Netplan配置。

  1. 创建脚本文件/usr/local/bin/switch-network.sh:
    sudo nano /usr/local/bin/switch-network.sh
    粘贴以下内容(替换SSID名称):
#!/bin/bash

# 获取当前连接的WiFi SSID
current_ssid=$(iwgetid -r)

# 根据SSID切换网络配置
if [ "$current_ssid" = "Home-WiFi-Name" ]; then
    sudo netplan apply --only 50-home
    echo "Successfully switched to home network profile"
elif [ "$current_ssid" = "Office-WiFi-Name" ]; then
    sudo netplan apply --only 50-office
    echo "Successfully switched to office network profile"
else
    echo "Warning: Unknown network SSID - $current_ssid"
fi
  1. 给脚本添加执行权限:
    sudo chmod +x /usr/local/bin/switch-network.sh

  2. 可以先手动测试脚本是否生效:
    sudo /usr/local/bin/switch-network.sh
    切换WiFi后再运行一次,看看是否能正确切换配置。

第三步:让脚本自动触发运行

为了实现WiFi连接状态变化时自动切换,我们可以借助NetworkManager的dispatcher机制:

  1. 先确保安装了NetworkManager(Ubuntu Server默认可能没装):
    sudo apt update && sudo apt install network-manager -y
    然后启用并启动服务:
    sudo systemctl enable --now NetworkManager

  2. 创建dispatcher触发脚本/etc/NetworkManager/dispatcher.d/99-switch-network:
    sudo nano /etc/NetworkManager/dispatcher.d/99-switch-network
    粘贴以下内容:

#!/bin/bash

# 仅当WiFi连接成功(up状态)时执行切换脚本
if [ "$2" = "up" ]; then
    /usr/local/bin/switch-network.sh
fi
  1. 给这个触发脚本添加执行权限:
    sudo chmod +x /etc/NetworkManager/dispatcher.d/99-switch-network

这样以后,每当你的笔记本连接到家庭或办公WiFi时,脚本就会自动触发,切换到对应的静态网络配置,完全不用手动操作啦!

备注:内容来源于stack exchange,提问作者Alasok Arandab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:28:03