Настройка сети через консоль, скрипт настройки

В Этой статье подробно написано как настроить сетевые интерфейсы в операционной системе Ubuntu через командную строку, как написать bash-скрипт автоматической настройки сети и как сделать автозапуск скрипта.

Для настройки сети через консоль во всех Linux системах, включая Ubuntu, существует специальная команда ifconfig.

Более полную информацию даёт команда ifconfig -a.

Если просто в терминале написать эту команду то консоль выдаст все сетевые интерфейсы, запущенные на этом компьютере.

Это будет выглядеть примерно так.

eth0      Link encap:Ethernet  HWaddr 00:04:75:c1:e2:ab          inet addr:10.2.10.32  Bcast:10.2.10.255  Mask:255.255.255.0          ….          ….eth1      Link encap:Ethernet  HWaddr 00:04:75:c1:e2:6b          inet addr:192.168.140.1  Bcast:192.168.140.255  Mask:255.255.255.0          ….          ….lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          ….          ….

Первый столбик это имена интерфейсов, во второй настройки соответствующих интерфейсов. Команда ifconfig eth0 выведет настройки только интерфейса eth0.Для того чтобы отключить или включить интерфейс eth0наберите соответственно команды.

sudo ifconfig eth0 downsudo ifconfig eth0 up

Чтобы управлять интерфейсами, нужны права суперпользователя.

Чтобы менять настройки интерфейсов вводите команды следующего вида.

sudo ifconfig eth1 inet 192.168.140.1

поменять ip адрес интерфейса eth1 на 192.168.140.1

sudo ifconfig eth0 hw ether 00:12:34:56:78:90

поменяет мас адрес на 00:12:34:56:78:90

sudo ifconfig eth0 netmask 255.255.255.0

поменять маску подсети интерфейса eth0 на 255.255.255.0

Но сделанные таким способом настройки сбрасываются после перезагрузки компьютера.

Чтобы этого не происходил надо поменять настройки в конфигурационном файле сетевых интерфейсов, который находится /etc/network/interfaces У меня этот файл выглядит так.

# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0iface eth0 inet static        address 10.2.10.32        #hwaddress ether 12:34:56:78:90:12        netmask 255.255.255.0        network 10.2.10.0        broadcast 10.2.10.255        gateway 10.2.10.1        dns-nameservers 212.212.45.174# The secondary network interfaceauto eth1iface eth1 inet static       address 192.168.140.1       netmask 255.255.255.0

Я думаю здесь всё понято. Адрес DNS сервера можно задать в файле /etc/network/interfaces , но вообще управление адресами DNS серверов в Ubuntu осуществляется через файл /etc/resolv.conf, синтаксис этого конфигурационного файла простой, допустим, у меня он выглядит так

  nameserver 80.227.64.17  nameserver 80.231.56.1

После изменения этих конфигурационных файлов перезагрузите сетевую службу командой

sudo /etc/init.d/networking restart

Если вы хотите получать сетевые настройки через DHCP, просто оставьте в файле /etc/network/interfacesстрочку

auto eth0iface eth0 inet auto

Обновление настроек через DHCP можно командой

dhclient

Для остановки или запуска сетевой службы используйтесь командой

sudo /etc/init.d/networking stopsudo /etc/init.d/networking start

Если посмотреть мой конфигурационный файл в настройках интерфейса eth0 строка меняющая mac адрес закомментирована. Это потому что если её не комментировать у меня сетевая служба не запускается с таким конфигом.

И чтобы менять mac адрес мне приходилось писать в консоли следующие команды.

sudo ifconfig eth0 downsudo ifconfig eth0 hw ether 12:34:56:78:90:12sudo ifconfig eth0 upsudo /etc/init.d/networking restart

Почему это происходит я не знаю, но зато я знаю как писать bash-скрипты.

Я в папке /home/user создал файл mynetconfig и записал в него такой код

echo "########OTKLYCHENIE eth0#######"sudo ifconfig eth0 downecho "#####MENYAEM MAC ADRES#####"sudo ifconfig eth0 hw ether 00:13:8f:cb:10:21echo "########VKLUCHAEM eth0#########"sudo ifconfig eth0 upecho "####PEREZAGRYGAEM NETWORKING####"sudo /etc/init.d/networking restartecho "KONEC"

Теперь вместо этих строчек мне приходилась писать всего лишь одну команду /home/user/mynetconfig

Но и на этом я не остановился. Я скопировал файл mynetconfig в каталог /use/local/bin и теперь запускать скрипт могу просто командой mynetconfig.

Но и этого нам мало. Надо чтобы скрипт запускался автоматически при загрузки системы.

Чтобы добавить скрипт в автозагрузку, копируем скрипт в /etc/init.d/ , открываем консоль, переходим в/etc/init.d/ и выполняем следующую команду.

 update-rc.d mynetconfig defaults 99

Небольшое пояснение:

mynetconfig - имя скрипта

defaults - выполнять на всех режимах загрузки от второго до пятого

99 - порядок загрузки

Чтобы удалить скрипт из автозагрузки перейдите в каталог /etc/init.d/ и выполните команду

  update-rc.d -f mynetconfig remove

Так же есть другой способ добавить скрипт в автозагрузку, просто впишите имя скрипта в файл /etc/rc.local и удалите, если хоте убрать его из автозагрузки.

Первый способ сложнее, но предпочтительнее так как можно выбирать в каком режиме загрузки выполнять скрипт и в каком порядке, иногда это важно.

You should also read:

RootMon-Система для мониторинга состояния Ubuntu-сервера через интернет

Версия 0.2 (В связи с тем что уже есть такая программа WebMon проект переименован в RootMon)

RootMon-Упрощенная система мониторинга Ubuntu-сервер через интернет, написанная на sh скриптах и html языке.

Список изменений:

  • Исполняемые скрипты теперь хранятся не в папке apache, а в папке root, что повышает безопасность.
  • Исправлена ошибка с отсутствием информации о процессоре

Синхронизация времени через Интернет в Ubuntu

Как настроить точное время в Ubuntu (Даты, время, ntp, синхронизация часов)

Общие сведения

Время в BIOS компьютера под управлением Linux течет в UTC.

Простая синхронизация времени

Тестировалось в Ubuntu 8.04, Ubuntu 10.04

  • Смотрим текущее время для пользователя:

    $ dateMon Jan  3 15:05:19 CET 2011

Настройка AsteriskNow после установки (Eng)

Well after much researching I have complied a procedure to help people install AsteiskNow from scratch. Hope this helps.

Install AsteriskNOW 1.5.0 from CD.

After installation first boot will prompt with Setup-Agent to enter IP address, subnet mask, and gateway.

# vi /etc/resolv.conf

(add DNS servers ex. Nameserver 192.168.1.2)

# /etc/init.d/network restart

# yum update

(reply ’y’ when prompted.)

Настройка сети в CentOS

Настройки сетевых интерфейсов в CentOS находятся в:

  1. /etc/sysconfig/network-scripts/ifcfg-ethХ

- где X номер вашего интерфеса