# /etc/network/interfaces This file describes the network interfaces available on your system and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* ## The loopback network interface auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.187.133 netmask 255.255.255.0 gateway 192.168.187.2 dns-nameservers 114.114.114.114 ## Create the Bridge at Start-up auto br0 iface br0 inet static address 192.168.187.133 netmask 255.255.255.0 gateway 192.168.187.2 dns-nameservers 114.114.114.114 bridge_ports eth0 参考文件 E:\linuxshare\debian\opt\docs\qemu_ppc_ok.txt systemctl list-units --all | grep NetworkManager systemctl list-units --all | grep networking # NetworkManager 服务 systemctl is-enabled NetworkManager systemctl status NetworkManager # networking 服务 systemctl is-enabled networking systemctl status networking # 开启NetworkManager, 关闭 networking /etc/network/interfaces # The loopback network interface auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.187.133 netmask 255.255.255.0 gateway 192.168.187.2 dns-nameservers 114.114.114.114 # 开启 networking, 关闭NetworkManager,配置网桥 1. /etc/network/interfaces The loopback network interface auto lo iface lo inet loopback #Create the Bridge at Start-up auto br0 iface br0 inet static address 192.168.187.133 netmask 255.255.255.0 gateway 192.168.187.2 dns-nameservers 114.114.114.114 bridge_ports eth0 2. 主机关闭NetworkManager systemctl status NetworkManager systemctl stop NetworkManager systemctl disable NetworkManager systemctl is-enabled NetworkManager reboot # systemctl enable NetworkManager systemctl disable NetworkManager systemctl restart NetworkManager systemctl restart networking # debian9 NetworkManager与networking两个服务都需要启动? **简单直接的回答是:不需要,而且通常不建议同时启动和运行这两个服务。你应该只选择其中一个来管理系统网络,否则会引起冲突和不可预测的行为。** 你可以把 `NetworkManager` 和 `networking`(背后是 `ifupdown` 工具集)看作是管理同一套网络设备的两个不同的“经理”,如果两个经理同时下达指令,系统就会混乱。 ### 详细解释和区别 #### 1. networking 服务 (`/etc/network/interfaces`) - **本质**:这是一个传统的、基于静态配置文件的网络管理方式。它通过 `/etc/network/interfaces` 文件来定义网络接口的配置。 - **工作方式**:非常“静态”。系统启动时,`networking` 服务读取配置文件,并按照文件里的指令(如设置IP地址、网关等)一次性配置好网络。之后除非你手动重启服务或执行 `ifup`/`ifdown` 命令,否则配置不会改变。 - **适用场景**: - **服务器** - 不需要频繁切换网络环境的机器 - 需要简单、稳定、可预测的网络配置 - 无线上网(但配置相对繁琐,需要手动配置SSID和密码到 `interfaces` 文件) #### 2. NetworkManager 服务 - **本质**:这是一个动态的、智能的网络管理守护进程。它更适合需要频繁变化网络环境的场景。 - **工作方式**:它不仅可以管理有线网络,更擅长管理无线网络(Wi-Fi)、移动宽带(4G/5G)、VPN、PPPoE等。它会自动扫描和连接已知的Wi-Fi,在不同网络间自动切换,并提供一个用户界面(CLI的 `nmtui`/`nmcli` 或GUI的托盘图标)来方便地管理连接。 - **适用场景**: - **桌面电脑**、**笔记本电脑** - 需要连接多个Wi-Fi网络的环境 - 需要方便地管理VPN或其他复杂网络连接的用户 ### 如何选择和设置 你的选择取决于你的机器是用作服务器还是桌面。 #### 场景一:如果你的 Debian 9 是 **服务器** 你应该使用传统的 **`networking`** 服务。 1. **确保 NetworkManager 已停止并禁用**: ``` sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager ``` 2. **确保 networking 服务已启用**(通常默认就是启用的): ``` sudo systemctl start networking sudo systemctl enable networking ``` 3. **编辑 `/etc/network/interfaces` 文件**来配置你的静态IP或DHCP。例如: ``` # 主网络接口,通过DHCP获取IP auto ens33 iface ens33 inet dhcp # 或者配置静态IP auto ens33 iface ens33 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 1.1.1.1 ``` (注意:接口名 `ens33` 需要替换为你实际使用的接口名,可以通过 `ip a` 命令查看) 4. 应用配置: bash ``` sudo systemctl restart networking # 或者 sudo ifdown ens33 && sudo ifup ens33 ``` #### 场景二:如果你的 Debian 9 是 **桌面系统** 你应该使用 **`NetworkManager`**,因为它对无线网络和桌面环境的集成更好。 1. **确保 networking 服务不会干预 NetworkManager**: 这是最关键的一步。你需要告诉 `networking` 服务,**不要**管理任何接口,把所有接口的控制权交给 NetworkManager。 编辑 `/etc/network/interfaces` 文件,确保它只包含 **回环接口(lo)** 的配置,而不包含你的物理网卡(如 `ens33`, `eth0`, `wlan0`): ``` # 回环网络接口 auto lo iface lo inet loopback # !!! 不要为其他接口(如eth0, wlan0)在这里添加配置 !!! # !!! 让这个文件保持“干净” !!! ``` 2. **确保 NetworkManager 已启动并启用**: ``` sudo systemctl start NetworkManager sudo systemctl enable NetworkManager ``` 3. **使用工具配置网络**: - **图形界面**:点击桌面右上角的网络图标进行配置。 - **命令行文本界面**:运行 `nmtui` 命令。 - **纯命令行**:使用 `nmcli` 命令。 4. (可选)停止 `networking` 服务(虽然不是必须,因为它已经不管具体网卡了,但停止它可以避免任何潜在 confusion): ``` sudo systemctl stop networking sudo systemctl disable networking ``` *注意:在有些系统中,`networking` 服务是其他服务的依赖,完全禁用可能需要 `mask`,但通常不建议`mask`,按照第一步清理 `interfaces` 文件已经足够。* ------ ### 总结 | 特性 | networking (ifupdown) | NetworkManager | | :------------- | :----------------------------- | :------------------------- | | **最佳用途** | 服务器、静态环境 | 桌面、笔记本、移动环境 | | **配置方式** | 编辑 `/etc/network/interfaces` | `nmtui`, `nmcli`, 图形界面 | | **复杂性** | 简单、静态 | 强大、动态 | | **Wi-Fi 支持** | 基础(需手动配置) | 优秀(自动扫描、连接) | **结论:二选一,不要同时运行。** 根据你的用途,清理掉一个的配置,然后启用并专心地使用另一个。对于 Debian 9 服务器,**强烈推荐使用传统的 `networking` 服务**。 # 虚拟机禁用networking,启动 NetworkManager 虚拟机192.168.199.106 编辑**/etc/network/interfaces**文件,只包含 **回环接口(lo)** 的配置 ``` sudo systemctl start NetworkManager sudo systemctl enable NetworkManager sudo systemctl stop networking sudo systemctl disable networking reboot ``` **临时启停指令** ``` sudo systemctl stop NetworkManager sudo systemctl start NetworkManager systemctl status NetworkManager systemctl is-enabled NetworkManager systemctl status networking nmcli connection show sudo nmcli connection reload sudo nmcli connection down "Wired connection 1" sudo nmcli connection up "Wired connection 1" sudo nmcli connection reload && sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1" ``` ``` ip addr show ``` # strings 命令 1.命令简介strings 命令是二进制工具集 GNU Binutils 的一员,用于打印文件中可打印字符串,文件可以是文本文件(test.c),但一般用于打印二进制目标文件、库或可执行文件中的可打印字符。 qemu 192.168.187.133 strings /usr/lib64/libstdc++.so.6 | grep GLIBC