我下载了 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 。
![]() |
1
huangmingyou 3 天前
我已经用/etc/rc.local 写 ip a 命令来管理网络了。受不了 netplan,systemd 乱搞
|
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 |
3
tianguozhong1 2 天前
debian 网络配置是有点蠢,第一次用研究半天
|
![]() |
4
jasonyang9 2 天前 via Android
和你是否装了 de 有关
|
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 |
6
busier 2 天前 via iPhone ![]() 其实非常简单 记住一个原则就好了
默认 /etc/network/interfaces 配置,且具有最高优先级。 如果配置了,其他网络管理器程序不能接管网卡。 但这个方式太古老,也不够灵活好用。 所以,安装 NetworkManager 后,需要清空 /etc/network/interface 才能被 NetworkManager 接管。 接管后就可以用 NetworkManager 的管理工具 nmcli nmtui 配置。 安装 DE 默认就会安装 NetworkManager 。 |
![]() |
7
danbai 2 天前
我也用 systemd-networkd
|
![]() |
8
SenLief 2 天前
虚拟机可能有干扰了 dhcp ,networking.service 是遗留问题,systemd 以前是利用它来管理的,读取 interface 文件来启动和关闭,networkd 就是 systemd 的网络配套服务。
不过 debian 12 一般配置网络会采用 netplan 来配置网络。配置文件在/etc/netplan 下面 |
![]() |
9
zouqiang 2 天前
netplan 吧
|
10
5xX4U5sUwdELgdQ3 2 天前 ![]() 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 很方便, 不用去记忆配置文件语法. |
![]() |
11
jasonyang9 2 天前 via Android
如果你装了 de ,它就假设你在用台式机工作站或笔记本,那么 networkmanager 会接管,如果主机从一个网络环境移动到另一个,nm 会自动处理。。。
|
12
RobinHuuu 2 天前 via iPhone
nm 好用,实在不行,装个 desktop ,用 gui 设置后关掉 desktop
|
![]() |
13
cdlnls 2 天前 via Android
@5xX4U5sUwdELgdQ3 op 贴出来的文档是没错的,一般云上都是用的云镜像 cloud-init 初始化的系统,云镜像 debian 是用的 netplan 。
|
![]() |
14
cdlnls 2 天前 via Android
一般云上 debian 系的都是 netplan 配置,桌面的大多都是 NetworkManager 来配置(可能是因为 NetworkManager 有 gui 前端吧)
|
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 |
16
yinmin 2 天前
用指令 nmtui 会出现一个界面直接修改 ip 地址
|
17
fox0001 2 天前 via Android ![]() /etc/network/interfaces ,古老但好用
|
![]() |
18
flyqie 2 天前 via Android ![]() |
![]() |
19
BeforeTooLate 2 天前
如果 op 想要固定 ip ,其实搭配 vagrant 使用最简单。
|
![]() |
20
adoal 2 天前
手装的系统是 ifupdown ,官方 cloud image 是 netplan
|
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 ,我没动过好像也没影响。 |
22
julyclyde 1 天前
@jasonyang9 networking 为什么和 desktop environment 相关呢?
|