问题

问题

问题

Ubuntu 9.10 桌面版(也可能是以前的版本,我还没有测试过它们)在启动后没有网络连接,直到至少 1 个用户登录。这意味着任何需要网络的服务(例如 openssh-server)都不可用,直到有人通过 gdm、kdm 或 TTY 本地登录。

背景

Ubuntu 9.10 桌面版使用 NetworkManager 服务从 Gnome 中的 nm-applet(或 KDE 中的等效程序)获取命令。据我了解,虽然 NetworkManager 在启动时运行,但直到您首次登录时才会发出任何连接命令,因为 nm-applet 直到您登录并启动 Gnome 会话时才会运行(或 KDE 类似)。我不确定是什么促使 NetworkManager 在您通过 TTY 登录时连接到网络。

启动网络连接涉及几个相关变量,包括:

  • 有线与无线(以及由此产生的驱动程序、SSID、密码和优先级)
  • 静态与 DHCP
  • 多种接口

约束

  • 支持 Ubuntu 9.10 Karmic Koala(支持其他版本可获加分)
  • 支持有线eth0接口
  • 通过 DHCP 接收 IP 地址
  • 通过 DHCP 接收 DNS 信息(显然 DHCP 服务器必须提供该信息)
  • 在适当的时间启用网络(例如,在文件系统加载之后但在 ssh 等网络服务启动之前的某个时间)
  • 切换发行版或版本(例如切换至服务器版)不是一个可接受的解决方案
  • 切换到静态 IP 配置不是一个可接受的解决方案

问题

  • 如何在 Ubuntu 桌面版登录前通过有线接口启动网络连接?

也可以看看

参考

答案1

为了让您的网络接口在启动时通过 DHCP 自动配置,请将以下行添加到 /etc/network/interfaces

auto eth0
iface eth0 inet dhcp

即使 NetworkManager 没有运行,这也应该会启动您的接口。如果您愿意,甚至可以删除 network-manager 包。

答案2

Debian/Ubuntu 有自己的程序来在启动时管理服务器。

尝试update-rc.d STARTUP-SCRIPT defaults

搜索 eth0 的特定脚本,并使用此脚本启用它。

您可以随时制作自己的脚本,将其放在 init.d 中,然后运行前面的命令将使其在启动时加载。

或者只是把这些命令(ifconfig up、dhcpcd)放在 /etc/rc.local 中(此文件每次启动时都会读取)

相关内容