我已经使用 Ubuntu 一段时间了,但对命令行中的 Ubuntu 网络概念并不十分熟悉。我在网上搜索过,但找不到任何关于从命令行配置网络的好教程。有什么指点吗?
答案1
Ubuntu 是基于 Debian 的,因此 Debian 的文档可能会有用。
我还推荐 Cristopher Negus 和 Francois Caen 合著的《Ubuntu Linux Toolbox》。它基本上是一本 Ubuntu 命令行指南,其中有一章是关于网络设置的。
答案2
Ubuntu 默认使用 NetworkManager 软件进行网络配置,该软件旨在通过 GUI 使用。它有一些命令行工具(nmcli、cnetworkmanager),但与 GUI 相比,它们的功能非常有限。
Debian(和 Ubuntu)有一个非常基本的网络配置系统,与 NetworkManager 分开,形式为/etc/network/iterfaces
和ifup
和ifdown
命令。然而,这只不过是一些命令(如ifconfig
和route
)的快捷方式。它们似乎没有依赖项和事件驱动配置等高级功能。例如,它们无法处理网线的插入或拔出,无法在网线拔出时取消配置接口。Debian/etc/network/interfaces
记录了该系统,请参阅http://wiki.debian.org/NetworkConfiguration。
有一些软件(例如 ifplugd)可以通过监控网络接口的状态并在接口状态发生变化时调用ifup
或ifdown
命令来解决此问题。但是,这仍然仅限于响应接口状态,不能用于接口之间的依赖关系(例如:VPN 应仅在 LAN 启动时启动)。
如果您需要更强大的配置,我建议您尝试一下我正在开发的这个软件,它允许您使用简单但非常强大的编程语言指定您的网络配置:http://code.google.com/p/badvpn/wiki/NCD
另请参阅类似的问题:如何配置 `eth0` 以在拔出并重新插入时重试 `dhclient`?