Я использовал Ubuntu некоторое время, но не был действительно уверен в сетевых концепциях Ubuntu из командной строки. Я искал в интернете, но не смог найти никаких хороших руководств по настройке сети из командной строки. Есть какие-нибудь указания?
решение1
Ubuntu основан на Debian, поэтому документация по Debian может оказаться полезной.
Я бы также рекомендовал книгу "Ubuntu Linux Toolbox" Кристофера Негуса и Франсуа Кана. По сути, это книга рецептов командной строки для Ubuntu, включающая главу о настройке сети.
решение2
Ubuntu по умолчанию использует программное обеспечение NetworkManager для настройки сети, которое предназначено для использования из графического интерфейса. Для этого есть некоторые инструменты командной строки (nmcli, cnetworkmanager), но их функциональность весьма ограничена по сравнению с графическим интерфейсом.
Debian (и Ubuntu) имеют очень простую систему настройки сети, отдельную от NetworkManager, в виде команд /etc/network/iterfaces
и ifup
и ifdown
. Однако это не более чем ярлыки для нескольких команд (например, ifconfig
и route
). У них, похоже, нет расширенных функций, таких как зависимости и конфигурация, управляемая событиями. Например, они не могут обрабатывать сетевой кабель, который вставляется или вынимается, чтобы деконфигурировать интерфейс, когда кабель вынут. Система /etc/network/interfaces
документирована Debian, см.http://wiki.debian.org/Конфигурация сети.
Есть программное обеспечение (например, ifplugd), которое решит эту проблему, отслеживая состояние сетевого интерфейса и вызывая команды ifup
или ifdown
при изменении состояния интерфейса. Однако это все еще ограничено реагированием только на состояние интерфейса и не может использоваться, например, для зависимостей между интерфейсами (пример: VPN должен запускаться только при включенной локальной сети).
Если вам нужна более мощная конфигурация, я рекомендую вам попробовать это программное обеспечение, которое я разрабатываю и которое позволяет вам указать конфигурацию вашей сети на простом, но очень мощном языке программирования:http://code.google.com/p/badvpn/wiki/NCD
Также см. похожий вопрос:Как настроить `eth0` для повторной попытки `dhclient` при отключении и повторном подключении?