В Этой статье подробно написано как настроить сетевые интерфейсы в операционной системе Ubuntu через командную строку, как написать bash-скрипт автоматической настройки сети и как сделать автозапуск скрипта.
Для настройки сети через консоль во всех Linux системах, включая Ubuntu, существует специальная команда ifconfig.
Если просто в терминале написать эту команду то консоль выдаст все сетевые интерфейсы, запущенные на этом компьютере. Это будет выглядеть примерно так.
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 down sudo 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 interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface 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 interface auto eth1 iface 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 eth0 iface eth0 inet auto
Обновление настроек через DHCP можно командой
dhclient
Для остановки или запуска сетевой службы используйтесь командой
sudo /etc/init.d/networking stop sudo /etc/init.d/networking start
Если посмотреть мой конфигурационный файл в настройках интерфейса eth0 строка меняющая mac адрес закомментирована. Это потому что если её не комментировать у меня сетевая служба не запускается с таким конфигом.
И чтобы менять mac адрес мне приходилось писать в консоли следующие команды.
sudo ifconfig eth0 down sudo ifconfig eth0 hw ether 12:34:56:78:90:12 sudo ifconfig eth0 up sudo /etc/init.d/networking restart
Почему это происходит я не знаю, но зато я знаю как писать bash-скрипты.
Я в папке /home/user создал файл mynetconfig и записал в него такой код
echo "########OTKLYCHENIE eth0#######" sudo ifconfig eth0 down echo "#####MENYAEM MAC ADRES#####" sudo ifconfig eth0 hw ether 00:13:8f:cb:10:21 echo "########VKLUCHAEM eth0#########" sudo ifconfig eth0 up echo "####PEREZAGRYGAEM NETWORKING####" sudo /etc/init.d/networking restart echo "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 и удалите, если хоте убрать его из автозагрузки.
Первый способ сложнее, но предпочтительнее так как можно выбирать в каком режиме загрузки выполнять скрипт и в каком порядке, иногда это важно.
Горизонтально расточный станок с чпу. Купить горизонтально расточные promcab.ru. Маленькая холодильная камера купить stavropol.bt-biryusa.ru.
Полезная статья, спасибо!
Спасибо,отличная статья, а какой командой можно включить и выключить само подключение? Всмысле как в винде сетевое окружение “сетевые подключения” второй кнопкой на подключение “отключить” или “включить”.
Нашел для себя кое-что интересное…
Спасибо.
СПАСИБО!!!! ВСЕ ХОРОШО ПОНЯТНО,ОТЛИЧНАЯ СТАТЬЯ…
Thnx
Надо было назвать “как я пытался настроить инет из консоли но потерпел крах”.Ничего полезного.Где информация по настройке из консоли маски,шлюза и файла с днс?Только айпи и мак поменять можно…Статье — 2.
to panya525:
man interfaces малчик.
для начала, приведенный материал тут, — самое то
Бред какой то…..после таких настроек ни чего не работает
sudo /etc/init.d/networking restart
sudo /etc/init.d/networking stop
sudo /etc/init.d/networking start сами то читаете что пишите??
/etc/resolv.conf нет такого файла
to [b]Vlad[/b]:
У тебя волшебная Ubuntu, потому что у меня вот так:
~$ uname -v
#37-Ubuntu SMP Fri Jun 11 09:26:55 UTC 2010
~$ ls /etc/resolv.*
/etc/resolv.conf
Да и не только в убунту это файл есть.
panya525: если такой умый! то нефиг тут лазить!!!
Ну вообще /etc/resolv.conf и /etc/network/interface это фишки debian, а убунта как ОС основаная на безе него унаследовала их. В других ОС их может и не быть.
Нам бы ламерам линуксовым побольше таких статей. А то уж слишком много снобизма в линуксовой среде. Послушаешь некоторых, так кажется будто за комп уселись еще в роддоме. Огромное спасибо автору!
Полностью согласен с вами но это не только точнее нестолько в линуксовой среде сколько в админской среде, а в линуксовой в особености. Мне кажеться это не от большого ума….. А кнопки нажимать макаку можно
Для отключения\подключения “сетевого подключения”(как в винде) делается так(под правами суперпользователя)(я не привык к sudo, привык к su root)
Выключаем: ifconfig $имя_устройства down
Включаем: ifconfig $имя_устройства up
По поводу resolv.conf
Поставил я тут сейчас последний Ubuntu Sever, файла resolv.conf не нашел… попытки нагуглить где еще могут храниться адреса ДНС серверов никчему не привели.
vi /etc/resolv.conf
nameserver 77.106.200.20
и все заработало!
удач всем!
ЗЫ> отличный сайт, отличная статья! Автору респект!
ЗЗЫ> TO: гневным постам. — в большинстве случаев понимаешь что косяк не в том что кто-то гдето там не так написал, а что у тебя руки не во всех местах гнутся.
/etc/resolv.conf требуется во всех системах, подразумевается, что пользователь сам должен создать этот файл и заполнить адресами серверов DNS своего провайдера.
За статью автору спасибо. Я не знал откуда копать. В BSD всё было вручную, IP отдельно, ч/з rc.conf, шлюзы ч/з route, ну а DNS ч/з любимый /etc/resolv.conf .
Ещё раз спасибо.
Я нашел что нужно в данный момент и даже больше — скрипт. 1-й день в UBUNTU кручу. Спасибо.
спасибо!!
Только разбираюсь с Ubuntu (до этого — как и все сидел на Виндах) и как-то настраивая домашний сервер (он же и поселковый) намутил BIND DNS. Однако до раздачи Инета в сеть дело не дошло за один вечер и пришлось возвращать шлюз обратно на виндовую машинку. Но вот блин чудо произошло — после смены на предполагемом в будущем сервере в Network Manager настроек шлюза, Ubuntu перестал видеть Инет! Уж что только не делал, в оконцовке снес BIND — все пофиг! (В двух словах Инет — Megafon Modem, раздается пока с Виндовой XP машинки, которая стоит у детей, моя машина — Ubuntu 10.04 Desktop, предполагаемый в будущем сервер и раздача Инета — тоже Ubuntu 10.04 Desktop (сразу ставить Ubuntu Server не решился)) Попал на эту статью по первому запросу в ya.ru и сразу в точку! После вписывания в /etc/network/interfaces необходимых параметров — вся проблема решилась!!!
Хотя удивление осталось, в частности у меня в файле
/etc/resolv.conf был правильно вписан адрес шлюза. Однако он не работал. Зато в /etc/network/interfaces был вписасан только loopbaсk адаптер и все! В общем дописал свой интерфейс и дело в шляпе! Огромное спасибо за статью, а то думал уже доставать бубен! (В Винде бывает такое, что и два бубна с другом в помощь не подмога, а тут прямо сходу в мясо!)
Спасибо за статью, за то что не поленились и написали (выложили) данный материал -)
Спасибо! очень помогла статья. пробовал править вот таким образом sudo nano /etc/network/interfaces хоть все и выставлял- ничего не помогало( не цеплялся адрес, а Ваш совет помог)