脚下时光博客

常用、分享、学习

AD
【腾讯云】云产品限时秒杀,爆款2核4G云服务器首年74元
文章目录

debian12桌面版设置固定ip失效问题

xiabq 2025-06-17 17:49:31 点滴记忆 0

安装配置了一台开发板环境,系统使用debian12桌面版,使用设置功能配置静态ip后,还是会dhcp自动获取到其他地址。

分析原因为桌面版的NetworkManager和server模式的网络配置在互相干扰,导致ip会被自动替换为自动获取

  1. 统一使用 NetworkManager (推荐用于桌面):

    • 打开系统设置 -> 网络。

    • 选择你的有线连接(通常显示为“有线”或接口名)。

    • 点击齿轮图标或“设置”按钮。

    • 在“IPv4”选项卡下:

    • 关键: 确保勾选了 “对所有用户可用” 和 “自动连接” 选项(通常在连接设置的“常规”选项卡里)。

    • 保存或应用更改。

    • 方法选择 手动(Manual)

    • 在 Addresses 栏,精确输入你想要的静态 IP 地址和子网掩码(例如 192.168.1.100/24 或 192.168.1.100 + 子网掩码 255.255.255.0)。

    • 输入默认网关(例如 192.168.1.1)。

    • 输入 DNS 服务器(例如 8.8.8.8, 8.8.4.4 或你的路由器地址 192.168.1.1)。

    • 停止并禁用服务:

    • sudo systemctl stop systemd-networkdsudo systemctl disable systemd-networkdsudo systemctl mask systemd-networkd  # 可选,更彻底防止启动
    • 移除或重命名 /etc/systemd/network/ 目录下可能存在的针对该网卡的 .network 配置文件(或者确保里面没有 DHCP=yes 的配置)。

    • 编辑 /etc/network/interfaces:

    • sudo nano /etc/network/interfaces
    • 确保只保留 lo (环回接口) 的配置,对于你的物理有线网卡(如 eth0enpXsY),注释掉或删除其配置块。最终看起来应该像:

    • # The loopback network interface
      auto lo
      iface lo inet loopback
      
      # 注释掉或删除 eth0/enpXsY 的配置
      # auto eth0
      # iface eth0 inet dhcp
    • 保存文件。

    • 编辑 /etc/NetworkManager/NetworkManager.conf:

    • sudo nano /etc/NetworkManager/NetworkManager.conf
    • 找到 [ifupdown] 部分(如果不存在就添加),确保设置为:

    • [ifupdown]
      managed=true
    • 保存文件 (Ctrl+OEnterCtrl+X)。

    • 这个设置告诉 NetworkManager 接管 /etc/network/interfaces 中列出的接口的管理权。

    • a. 让 NetworkManager 完全管理接口:

    • b. 简化 /etc/network/interfaces:

    • c. 禁用 systemd-networkd (如果它正在运行且不需要):

    • d. 重启 NetworkManager 并应用配置:

    • sudo systemctl restart NetworkManager
    • e. 在 NetworkManager 图形界面重新配置静态 IP:

    • f. 测试: 拔掉网线再插回去,或者重启系统。使用 ip addr show 或 ifconfig 检查 IP 地址是否保持为你设置的静态地址。

  2. 统一使用 systemd-networkd (可选,通常用于服务器或精简桌面):

    • a. 禁用 NetworkManager:

    • sudo systemctl stop NetworkManagersudo systemctl disable NetworkManagersudo systemctl mask NetworkManager  # 可选
    • b. 启用 systemd-networkd:

    • sudo systemctl unmask systemd-networkd  # 如果之前mask过sudo systemctl enable --now systemd-networkd
    • c. 配置静态 IP: 在 /etc/systemd/network/ 目录下创建一个配置文件,例如 10-eth0-static.network (替换 eth0 为你的接口名):

    • sudo nano /etc/systemd/network/10-eth0-static.network

      内容示例:

    • [Match]
      Name=eth0  # 替换为你的接口名,如 enp3s0
      
      [Network]
      Address=192.168.1.100/24
      Gateway=192.168.1.1
      DNS=8.8.8.8
      DNS=8.8.4.4
    • d. 重启服务:

    • sudo systemctl restart systemd-networkd
    • e. 测试: 同样检查 IP 是否生效且稳定。

  • 分享: