在Ubuntu桌面版中登录之前如何在有线接口上启动联网


17

问题

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

背景

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

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

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

约束条件

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

  • 在Ubuntu桌面版中登录之前如何在有线接口上启动联网?

也可以看看

参考文献

Answers:


9

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

auto eth0
iface eth0 inet dhcp

即使没有运行NetworkManager,也应该可以启动您的界面。您甚至可以删除软件包network-manager。


啊,那只是我提出问题时的错字,但这就是我所尝试的。就是说,执行/etc/init.d/networking restart会给出:“ *重新配置网络接口...”,但该接口未启动,更不用说获得IP了。重新启动不会通过这些设置打开界面。
魁梧

我想:auth eth0 而不是:auto eth0 您的帖子中仍然是错字,您只在帖子中做过,对吧?
goedson '04

我刚刚重新安装了Ubuntu 9.10,如上所述编辑了/ etc / network / interfaces,并且sudo /etc/init.d/networking restart通过DHCP 发行了eth0并进行了配置。
goedson '04

哦,我的,超级失败!:facepalm:我没有您提到的原始错字,但第一行中确实有'auth'而不是'auto'。我认为您必须修改您的答案才能让我更改我的投票,因为投票时间太长了(?)。我已经从问题中删除了“我尝试过的内容”部分,以免造成混淆,因为我打错字了。也许添加类似以下内容:“添加以下内容/etc/network/interfaces以防止NetworkManager管理接口并通过dhcp来启动它”我必须检查并查看此修复程序是否会在安装了NM的启动时启动它...
Burly

我更改了答案,因此很清楚解决方案。
goedson

1

Debian / Ubuntu拥有自己的程序,可以在引导时管理服务器。

尝试 update-rc.d STARTUP-SCRIPT defaults

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

您始终可以使自己成为脚本,将其放在init.d中,运行前面的命令将使其在引导时加载。

或仅将这些命令(ifconfig up,dhcpcd)放在/etc/rc.local中(每次在引导时读取此文件)


我之前使用过update-rc.d,但问题是找到了eth0专用的STARTUP-SCRIPT。至少在Ubuntu 9.10 DE中没有。仅存在/etc/init.d/networking脚本,它实际上只是在调用新贵的作业(/ lib / init / update-job联网开始就是它的具体称呼)。如上所述,调用/etc/init.d/networking启动,/ lib / init / update-job网络启动和/或服务网络启动/重新启动不会启动接口,更不用说获得IP了。我可以编写自己的脚本,但是我希望有一个更优雅的解决方案。
Burly'4

将dhclient eth0放在rc.local中可能是我唯一的选择。我需要尝试一下,看看它是否还能工作。将其放在此处的问题在于,其他启动服务不能真正依赖它(如ssh),因为rc.local直到所有系统服务启动后才执行。
Burly'4

1
解决方法:添加dhclient eth0到/etc/rc.local确实可以在启动时启动eth0接口,并通过DHCP获得IP。至少对我来说,因为openssh-server设置为在运行级别234开始,所以SSH在任何人现在本地登录之前也是可用的。但是,因为rc.local在系统服务之后运行。
Burly'4
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.