Debian12 的网络用什么配置?

223 天前
 Koril

背景

我下载了 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 。

3569 次点击
所在节点    Linux
24 条回复
huangmingyou
223 天前
我已经用/etc/rc.local 写 ip a 命令来管理网络了。受不了 netplan,systemd 乱搞
wjl1019547485
223 天前
我是编辑 /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
223 天前
debian 网络配置是有点蠢,第一次用研究半天
jasonyang9
223 天前
和你是否装了 de 有关
EVANGELIONAir
223 天前
这是我给课题组配 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
223 天前
其实非常简单 记住一个原则就好了

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

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

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

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

不过 debian 12 一般配置网络会采用 netplan 来配置网络。配置文件在/etc/netplan 下面
zouqiang
223 天前
netplan 吧
5xX4U5sUwdELgdQ3
223 天前
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
223 天前
如果你装了 de ,它就假设你在用台式机工作站或笔记本,那么 networkmanager 会接管,如果主机从一个网络环境移动到另一个,nm 会自动处理。。。
RobinHuuu
223 天前
nm 好用,实在不行,装个 desktop ,用 gui 设置后关掉 desktop
cctv6
223 天前
@5xX4U5sUwdELgdQ3 op 贴出来的文档是没错的,一般云上都是用的云镜像 cloud-init 初始化的系统,云镜像 debian 是用的 netplan 。
cctv6
223 天前
一般云上 debian 系的都是 netplan 配置,桌面的大多都是 NetworkManager 来配置(可能是因为 NetworkManager 有 gui 前端吧)
hwdq0012
223 天前
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
222 天前
用指令 nmtui 会出现一个界面直接修改 ip 地址
fox0001
222 天前
/etc/network/interfaces ,古老但好用
flyqie
222 天前
@fox0001 #17

是的,/etc/network/interfaces 这种古老的方式相比于 netplan 和 systemd 来说是最通用且最可简单可控的了。
BeforeTooLate
222 天前
如果 op 想要固定 ip ,其实搭配 vagrant 使用最简单。
adoal
222 天前
手装的系统是 ifupdown ,官方 cloud image 是 netplan

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1110984

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX