V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Koril
V2EX  ›  Linux

Debian12 的网络用什么配置?

  •  
  •   Koril · 3 天前 · 2194 次点击

    背景

    我下载了 Debian12 的 iso 镜像(版本:debian-12.7.0-amd64-DVD-1.iso ,无桌面),在 virtualbox7 中安装好后,我发现默认使用的网络配置服务是 networing.service

    然后,我阅读了这个官方的文档: https://www.debian.org/doc/manuals/debian-reference/ch05.zh-cn.html

    在 5.3 小结中,文档给出了如何配置静态 IP 的方案,使用的是 systemd-networkd 。

    我在 virtualbox 给这个 debian 系统网络设置了桥接模式,然后根据文档配置了静态地址:

    sudo vim /etc/systemd/network/static.network 
    
    [Match]
    Name=en*
    
    [Network]
    DHCP=no
    Address=192.168.0.201/24
    Gateway=192.168.0.1
    DNS=192.168.0.1
    
    

    我的疑问

    我把 networking.service 直接关掉了,开启了 systemd-networkd.service ,执行的是以下命令:

    # 关闭 networking.service
    sudo systemctl disable networking.service
    sudo systemctl stop networking.service
    
    # 开启 systemd-networkd.service
    sudo systemctl enable systemd-networkd
    sudo systemctl start systemd-networkd
    
    

    第一个问题

    平稳运行了一段时间后,我发现重启服务器或者重启路由器,服务器的 ip 又会变成一个不是我指定的地址,我在配置文件指定的是 192.168.0.201 ,但是它会变成 192.168.0.106 之类的,我猜测和 DHCP 有关,请问这是为什么?

    第二个问题

    在安装了 Debian12 系统的服务器中,我该使用哪一个配置网络,networking.service 还是 systemd-networkd.service ?

    我在阿里云上买的云服务装的也是 debian12 ,它默认用的是 systemd-networkd.service 。

    而我本地虚拟机安装 debian12 ,默认用的是 networking.service 。

    24 条回复    2025-02-14 11:15:15 +08:00
    huangmingyou
        1
    huangmingyou  
       3 天前
    我已经用/etc/rc.local 写 ip a 命令来管理网络了。受不了 netplan,systemd 乱搞
    wjl1019547485
        2
    wjl1019547485  
       2 天前
    我是编辑 /etc/network/interfaces ,然后用 systemctl restart networking.service 重启网络
    配置如下:
    auto enp0s3
    iface enp0s3 inet static
    address 192.168.1.240/24
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1 180.76.76.76
    tianguozhong1
        3
    tianguozhong1  
       2 天前
    debian 网络配置是有点蠢,第一次用研究半天
    jasonyang9
        4
    jasonyang9  
       2 天前 via Android
    和你是否装了 de 有关
    EVANGELIONAir
        5
    EVANGELIONAir  
       2 天前
    这是我给课题组配 Debian 服务器的时候写的交接文档

    无 GUI 界面 Debian 服务器,没有使用 NetworkManager ,通过编辑以下文件实现网络配置

    # 网络配置文件
    sudo vim /etc/network/interfaces

    # 本地回环部分
    # The loopback network interface
    auto lo
    iface lo inet loopback

    # 外网访问部分
    # 这里例举了 IPv4 固定 IP 地址,IPv6 通过 SLAAC 自动分配 IP 地址
    # 可用 ls /sys/class/net 找到接口名称,如 enp5s0
    # The primary network interface
    auto enp5s0
    iface enp5s0 inet static
    address X.X.X.X
    netmask X.X.X.X
    gateway X.X.X.X

    iface enp5s0 inet6 auto

    # DNS 设置 (在 Linux 系统上,通常最多使用前三个 DNS 服务器)
    sudo vim /etc/resolv.conf

    nameserver 119.29.29.29
    nameserver 223.5.5.5
    nameserver 2402:4e00::
    nameserver 2400:3200::1

    #重启网络服务
    sudo systemctl restart networking
    busier
        6
    busier  
       2 天前 via iPhone   ❤️ 8
    其实非常简单 记住一个原则就好了

    默认 /etc/network/interfaces 配置,且具有最高优先级。
    如果配置了,其他网络管理器程序不能接管网卡。

    但这个方式太古老,也不够灵活好用。

    所以,安装 NetworkManager 后,需要清空 /etc/network/interface 才能被 NetworkManager 接管。
    接管后就可以用 NetworkManager 的管理工具 nmcli nmtui 配置。

    安装 DE 默认就会安装 NetworkManager 。
    danbai
        7
    danbai  
       2 天前
    我也用 systemd-networkd
    SenLief
        8
    SenLief  
       2 天前
    虚拟机可能有干扰了 dhcp ,networking.service 是遗留问题,systemd 以前是利用它来管理的,读取 interface 文件来启动和关闭,networkd 就是 systemd 的网络配套服务。

    不过 debian 12 一般配置网络会采用 netplan 来配置网络。配置文件在/etc/netplan 下面
    zouqiang
        9
    zouqiang  
       2 天前
    netplan 吧
    5xX4U5sUwdELgdQ3
        10
    5xX4U5sUwdELgdQ3  
       2 天前   ❤️ 4
    Debian 12 的网络配置工具是有点混乱, 稍不留神就会冲突.

    简单来说, 现在有三种网络配置工具,

    1. networking.service
    在 ifupdown 包中, 包含了 ifupdown 命令和 networking.service, 配置文件为/etc/network/interfaces, 通常会配合上 net-tools 包中的 ifconfig 等命令来配置, 已经不推荐使用了.

    2. systemd-networkd.service
    配置文件在/etc/systemd/network/, 主要用于 headless 的服务器, 虽然也有个前端命令 networkctl, 不过主要还是直接修改文件来配置

    3. NetworkManager
    配置文件在/etc/NetworkManager/system-connections, 一般不直接修改文件, 而是通过 nmcli 和 nmtui 命令以及各个桌面环境的 GUI 程序来配置. 主要用于桌面环境. 缺点是资源占用多.

    第二个问题: Debian 12, 默认依然使用第一种网络管理方式. 阿里云上的 Debian 应该是修改过的.

    至于第一个问题: 需要查看是否有冲突的服务.

    个人使用经验, 我现在不管什么发行版都会统一使用 NetworkManager 来管理, nmtui 很方便, 不用去记忆配置文件语法.
    jasonyang9
        11
    jasonyang9  
       2 天前 via Android
    如果你装了 de ,它就假设你在用台式机工作站或笔记本,那么 networkmanager 会接管,如果主机从一个网络环境移动到另一个,nm 会自动处理。。。
    RobinHuuu
        12
    RobinHuuu  
       2 天前 via iPhone
    nm 好用,实在不行,装个 desktop ,用 gui 设置后关掉 desktop
    cdlnls
        13
    cdlnls  
       2 天前 via Android
    @5xX4U5sUwdELgdQ3 op 贴出来的文档是没错的,一般云上都是用的云镜像 cloud-init 初始化的系统,云镜像 debian 是用的 netplan 。
    cdlnls
        14
    cdlnls  
       2 天前 via Android
    一般云上 debian 系的都是 netplan 配置,桌面的大多都是 NetworkManager 来配置(可能是因为 NetworkManager 有 gui 前端吧)
    hwdq0012
        15
    hwdq0012  
       2 天前
    sudo nmcli con mod "Ethernet connection 1" ipv4.method manual ipv4.addr 192.168.1.10/24
    sudo nmcli con mod "Ethernet connection 1" ipv4.gateway 192.168.1.1 ipv4.dns 114.114.114.114
    sudo nmcli device reapply eth0
    yinmin
        16
    yinmin  
       2 天前
    用指令 nmtui 会出现一个界面直接修改 ip 地址
    fox0001
        17
    fox0001  
       2 天前 via Android   ❤️ 4
    /etc/network/interfaces ,古老但好用
    flyqie
        18
    flyqie  
       2 天前 via Android   ❤️ 1
    @fox0001 #17

    是的,/etc/network/interfaces 这种古老的方式相比于 netplan 和 systemd 来说是最通用且最可简单可控的了。
    BeforeTooLate
        19
    BeforeTooLate  
       2 天前
    如果 op 想要固定 ip ,其实搭配 vagrant 使用最简单。
    adoal
        20
    adoal  
       2 天前
    手装的系统是 ifupdown ,官方 cloud image 是 netplan
    easy88866
        21
    easy88866  
       2 天前
    @5xX4U5sUwdELgdQ3 感谢你的整理,非常实用。

    这里再 append 一些内容。

    根据 Debian 文档 [4 ways to configure the network]( https://wiki.debian.org/NetworkConfiguration#A4_ways_to_configure_the_network) 目前 Debian 支持 4 种方式配置网络。

    > - The interfaces configuration file at /etc/network/interfaces (this page): for basic or simple configurations (e.g. workstation)
    > - [NetworkManager]( https://wiki.debian.org/NetworkManager): This is the default for Laptop configuration
    > - Systemd: [Debian reference Doc Chapter 5]( https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_modern_network_configuration_without_gui)
    > - [Netplan]( https://wiki.debian.org/Netplan): [Debian reference Doc Chapter 5]( https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_modern_network_configuration_for_cloud)



    之前站内有讨论过不同工具间关系,可以参考 [Linux 下的网络管理服务太乱了,我现在都没搞明白之间的关系]( https://v2ex.com/t/834317)



    我个人偏好 systemd , 一般会在配置网络前,把不同工具的配置文件清理一遍,防止互相影响。具体路径如下

    - /etc/network/interfaces
    - /etc/network/interfaces.d
    - /etc/systemd/network
    - /etc/netplan

    NetworkManager 的配置文件在 /etc/NetworkManager ,我没动过好像也没影响。
    julyclyde
        22
    julyclyde  
       1 天前
    @jasonyang9 networking 为什么和 desktop environment 相关呢?
    julyclyde
        23
    julyclyde  
       1 天前
    @flyqie netplay try 功能我觉得比 ifupdown 安全一些,万一改坏了似乎还有诈尸的可能性
    julyclyde
        24
    julyclyde  
       1 天前
    @easy88866 关系,就是阿猫阿狗都想当别人的 frontend
    古代曾经在 sound 界就出过类似的事,oss 和 alsa 各自可以代理对方
    现在 netplan 也是可以代理 networkmanager (和一个别的啥?)的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2781 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:40 · PVG 16:40 · LAX 00:40 · JFK 03:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.