Домашний интернет-шлюз. начальная настройка 6-портового мини-компьютера на ubuntu server 20.04 lts

Установка и настройка инструментов администрирования, настройка сети

После того как мы установили базовую операционную систему ubuntu14.04 с минимального дистрибутива, первым делом нужно озаботится тем как ей комфортно управлять. В основном для конфигурирования  и управления серверами на базе *nix используют ssh/telnet, но в последнее время для этого также появились вполне годные инструменты на базе web-интерфейсов. Я использую бесплатные решения Webmin и Ajenti. Oбе эти панели заслуживают внимания и не смотря на то что они по отдельности могут всё, для чего-то каждая из них подходит лучше, по этому лучше иметь их обе. Я должен заметить, что на боевых продакшн-серверах подобные решения не ставят исходя из безопасности. Всё-таки чем больше управляющих систем, тем больше вероятность найти в них уязвимость. По этому если ваши требования безопасности находятся на уровне «паранойя», то просто примите тот факт, что вам придётся работать с сервером только через ssh (через консоль).

Настройка сети в ubuntu 14.04

Чтобы связываться с нашим сервером по сети, для начала её нужно настроить. По умолчанию, при установке сеть настроилась автоматически и если инсталлятор обнаружил в сети DHCP-сервер, то скорее всего он уже настроил всё как нужно. Если в сети нет DHCP-сервера, то установщик всё равно настроил всё исходя из опроса маршрутизатора к которому подключена сетевая карта. Для того что-бы посмотреть, каким образом сейчас настроена сеть, достаточно в терминале набрать:

Вывод:

Что же мы тут видим:

У нас два сетевых интерфейса eth0 и lo где lo — это «интерфейс обратной петли loopback» а eth0 — это имя нашей сетевой карточки, и если lo — это неизменный сетевой интерфейс, то все остальные интерфейсы могут отличатся по имени. Если в системном блоке установлены две сетевые карты то их интерфейсы скорее всего будут выглядеть как eth0 и eth1 и так далее. Вид имени интерфейса зависит от типа сетевой карты, так например если сетевая карта работает по протоколу WiFi то скорее всего имя у неё будет wlan0.

Что-бы настроить сеть, отредактируем следующий файл:

Приведём его к такому виду:

Где: iface eth0 inet static — указывает, что интерфейс (iface eth0) находится в диапазоне адресов IPv4 (inet) со статическим ip (static);address 192.168.0.184 — указывает что IP адрес (address) нашей сетевой карты 192.168.0.184;netmask 255.255.255.0 — указывает что наша маска подсети (netmask) имеет значение 255.255.255.0;gateway 192.168.0.1 — адрес шлюза (gateway) по умолчанию 192.168.0.254;auto eth0 — указывет системе что интерфейс eth0 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.eth0 — имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав ifconfigdns-nameservers — DNS-сервера, пишутся через пробел.

Как видно в моём случае я решил задать статический ip 192.168.0.184

перезагружаем сервер командой

Пингуем наш сервер из сети и убеждаемся что он виден. Теперь пришла пора установить с ним связь по SSH, для этого собственно установим ssh-сервер:

Теперь можно подключится к нашему серверу по ssh через программу putty например, теперь можно вводить команды не в ручную, а копируя и вставляя нужные нам строки в клиент ssh, ибо в дальнейшем это удивительно облегчит настройку, в чём вы вскоре убедитесь сами:

ВСЕ КОМАНДЫ НИЖЕ ЭТОЙ СТРОЧКИ ВВОДЯТСЯ ОТ ИМЕНИ СУПЕРПОЛЬЗОВАТЕЛЯ, а для того что-бы войти в режим суперпользователя, нужно набрать:

Установка webmin

echo «deb https://download.webmin.com/download/repository sarge contrib» >> /etc/apt/sources.list
echo «deb https://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib» >> /etc/apt/sources.list
wget https://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
apt-get update
apt-get install -y webmin

1
2
3
4
5
6

echo»deb https://download.webmin.com/download/repository sarge contrib»>>etcaptsources.list

echo»deb https://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib»>>etcaptsources.list

wget https//www.webmin.com/jcameron-key.asc

apt-key add jcameron-key.asc

apt-get update

apt-get install-ywebmin

Всё! 6 последовательно введённых команд и webmin установлен и настроен. Теперь можно зайти через браузер по адресу:

По умолчанию webmin выглядит минималистично, интерфейс по умолчанию отображается на английском языке, но всё настраивается!

Делаем вот так:

Получается вот так:

Настройка сети через файл конфигурации.

Для настройки статического или динамического IP адреса нам надо отредактировать файл конфигурации сетевых интерфейсов — /etc/network/interfaces мы будем редактировать его с помощью текстового редактора nano.(Рис.5) Сразу скажу что для того чтобы сохранить документ в nano надо нажать «Ctrl+o», а чтобы закрыть «Ctrl+x».

nano /etc/network/interfaces

Если вы авторизованы не под root, не забудьте добавить sudo и ввести пароль суперпользователя,  а то не получится сохранить измененный файл interfaces.

sudo nano /etc/network/interfaces

Рис.5 — Команда для редактирования файла /etc/network/interfaces.

Получение настроек сети по DHCP.

Для получения настроек сети по DHCP, в файле /etc/network/interfaces  достаточно указать всего две строки.(Рис.6)

auto ens33
iface ens33 inet dhcp

Лично у меня они были написаны по умолчанию, так как сеть была настроена при установке. Пояснения в пункте .

Если у вас не запущен DHCP клиент, то запустить его можно командой dclient с указанием интерфейса ens33.

dclient ens33

Рис.6 — Файл конфигурации /etc/network/interfaces для получения настроек сети по DHCP.

Указание настроек сети вручную.

Пишем конфигурацию интерфейса для статичного IP адреса.(Рис.7)

auto ens33
iface ens33 inet static
     address 192.168.3.209
     netmask 255.255.255.0
     gateway 192.168.3.1
     dns-nameservers 8.8.8.8 192.168.3.1
     dns-search itdeer.loc itdeer.ru

Пояснения в пункте .

Рис.7 — Файл конфигурации /etc/network/interfaces для указания настроек сети вручную..

Описание опций.

Рассмотрим описание опций, для того чтоб вы понимали что написано в пунктах Получение настроек по DHCP и Указание настроек сети вручную.

  • auto ens33 — означает что наш интерфейс «ens33» будет автоматически подключен при загрузке системы.
  • iface ens33 inet static — указывается семейство протоколов tcp/ip(inet или inet6) и способ получения адреса(static или dhcp).
  • address 192.168.3.209 — указываем IP адрес.
  • netmask 255.255.255.0 — указываем маску сети.
  • gateway 192.168.3.1 — указываем основной шлюз.
  • dns-nameservers 8.8.8.8 192.168.3.1 — указываем DNS сервера можно указать несколько через пробел.
  • dns-search itdeer.loc itdeer.ru — указываем DNS суффиксы, через пробел, допустим если у нас существует домен itdeer.ru то мы можем обратиться к компьютеру внесённому в этот домен, к примеру controller тогда ubuntu попытается разрешить имя controller.itdeer.ru.
  • dns-domain itdeer.ru — альтернатива dns-search, но указывается только один суффикс (название домена).

После редактирования файла /etc/network/interfaces, применить изменения можно двумя способами:

Первый — Перезагрузить систему.

reboot

или

init 6

Второй — Если же вы не хотите перезагружать систему, то  нужно сначала отчистить конфигурацию интерфейса,

ip addr flush ens33

а после перезапустить службу сети.

service networking restart

Если вы сменили только шлюз по умолчанию, настройки DNS серверов или суффиксов, то достаточно просто перезапустить сетевую службу.

service networking restart

Далее смотрите вывод команды ifconfig, изменения должны должны быть применены.

Синтаксис и опции утилиты ip

Сначала рассмотрим синтаксис команды. Утилита довольно многофункциональная, поэтому и синтаксис её вызова непростой:

$ ip объект команда

Опции — это глобальные настройки, которые сказываются на работе всей утилиты независимо от других аргументов, их указывать необязательно.

  • объект — это тип данных, с которым надо будет работать, например: адреса, устройства, таблица arp, таблица маршрутизации и так далее;
  • команды — какое-либо действие с объектом;
  • параметры — само собой, командам иногда нужно передавать параметры, они передаются в этом пункте.

Дальше рассмотрим все еще более подробно:

  • -v, -Version — только вывод информации об утилите и ее версии.
  • -h, -human — выводить данные в удобном для человека виде.
  • -s, -stats — включает вывод статистической информации.
  • -d, -details — показывать ещё больше подробностей.
  • -f, -family — позволяет указать протокол, с которым нужно работать, если протокол не указан, то берется на основе параметров команды. Опция должна принимать одно из значений: bridge, dnet, inet, inet6, ipx или link. По умолчанию используется inet, link — означает отсутствие протокола.
  • -o, -oneline — выводить каждую запись с новой строки.
  • -r,-resolve — определять имена хостов с помощью DNS.
  • -a, -all — применить команду ко всем объектам.
  • -c, -color — позволяет настроить цветной, доступные значения: auto, always и never.
  • -br, -brief — выводить только базовую информацию для удобства чтения.
  • -4 — короткая запись для -f inet.
  • -6 — короткая запись для -f inet-f inet6.
  • -B — короткая запись для -f inet-f bridge.
  • -0 — короткая запись для -f inet -f link.

Теперь давайте рассмотрим самые важные объекты.

  • address или a — сетевые адреса.
  • link или l — физическое сетевое устройство.
  • neighbour или neigh — просмотр и управление ARP.
  • route или r — управление маршрутизацией.
  • rule или ru — правила маршрутизации.
  • tunnel или t — настройка туннелирования.

Конечно, это не все объекты которые поддерживает команда ip Linux, но на первое время вам хватит. Во время ввода имя объекта может быть сокращено до одной буквы. При неоднозначности используется алфавитный порядок. Например, ip a show, расшифровывается как ip address show. Тогда как в ip r show, r — означает route.

Теперь рассмотрим доступные команды, с помощью которых может быть выполнена настройка сети linux. Они зависят от объекта, к которому будут применяться. Вот основные команды: add, change, del или delete, flush, get, list или show, monitor, replace, restore, save, set, и update. Если команда не задана, по умолчанию используется show (показать).

Здесь тоже поддерживается сокращение и в большинстве случаев для выполнения нужного действия достаточно нескольких символов. Но алфавитный порядок соблюдается не всегда. Например, ip a s, означает ip address show, а не ip address set, к сожалению.

Настройка сети с помощью ifconfig

Получить информацию об имеющихся интерфейсах на старых версиях Debian можно с помощью команды

ifconfig

Изучите вывод этой команды и посмотрите какой интерфейс Вам доступен. Обычно это eth0.

, если нужно получать ip автоматически

iface eth0 inet dhcp

Если нужно задать статический ip

iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

Чтобы изменения пришли в силу нужно выполнить

ifup eth0

Выключить wi-fi

ifconfig wlan0 down

Включить/выключить ceть

ifconfig eth0 up/down

Перезапустить/остановить/запустить сетевые службы

/etc/init.d/networking restart/stop/start

Настроить DNS можно через файл /etc/resolv.conf

nameserver 8.8.8.8

При
нужно было запомнить какие сетевые интерфейсы
вам предлагает сконфигурировать Debian. Это сделать очень просто, они называются eth0, eth1 и так
далее.

Поэтому для включения сетевого интерфейса, в приведённой выше команде нужно менять 0 на 1 и т.д.

Однако, если вы будете устанавливать другие Unix-подобные дистрибутивы, например

OpenBSD
то сетевые интерфейсы будут называться более разнообразно (msk0, sk0 и др.)

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

Включить автоматическое получение ip

dhclient eth0

Выключить автоматическое получение ip можно вытащив сетевой шнур и вставив обратно. Говорят, что
должно сброситься.

Советую выполнить

man interfaces

и изучить вывод.

Посмотреть список активных соединений по сети

netstat

How to let go and move on

If you’re currently running something with a legacy 70-persistent-net.rules file but have decided to switch to the , you can do that just by disabling the .rules file (then before you reboot); see the udev README.Debian.gz and .

MISCELLANEOUS OLD SCHEMES

(Contributions welcome)

Several workarounds for renaming interfaces grew up in the early days of hotpluggable wireless interfaces, but if they still work it’ll be because like ifrename they now use udev rules under the hood. It’s not clear what remaining advantage this has over — is it perhaps useful for non-systemd machines?

Old releases of RedHat (among others) used a «biosdevname» system, but that’s never been supported under Debian. If you need to know about it there’s bound to be documentation somewhere.

THE «PREDICTABLE NAMES» SCHEME

The new scheme uses names usually derived from the location of the interface in terms of hardware buses etc: eno1, wlp1s3. The idea was that this provides «Predictable Names», though as it turns out the main thing that’s predictable about it is that calling it this will cause furious users to pop up disputing the appropriateness of that name. (Can we just skip all that here, please?)

Примеры использования ip

Вот теперь мы дошли к самому интересному — примерам использования утилиты ip Linux. То что я здесь опишу на самом деле лишь маленькая капля из всего того что может утилита ip.

1. Просмотр IP адресов

Чтобы посмотреть все IP адреса, связанные с сетевыми интерфейсами используйте такую команду:

Или:

Для просмотра информации в кратком виде используйте опцию -br:

Можно посмотреть IP адреса только по определённому сетевому интерфейсу, например: enp0s3:

Или:

Можно отобразить только статические IP адреса:

Или только динамические:

2. Добавление IP адреса

Чтобы присвоить IP адрес для устройства нужно использовать команду add. Её общий синтаксис такой:

$ ip addr add IP_адрес/маска dev интерфейс

Например, давайте присвоим тому же интерфейсу enp0s3 IP адрес 10.0.2.100 с маской подсети 255.255.255.0:

Маску можно указать и в сокращённом виде:

3. Удаление IP адреса

Чтобы удалить IP адрес из интерфейса надо использовать команду del. Синтаксис её очень похож на предыдущую команду. Например, удалим IP адрес 10.0.2.100:

Можно удалять IP адреса по одному или удалить все сразу с помощью команды flush:

Или же можно удалить адреса только определённой подсети:

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

Чтобы посмотреть список сетевых интерфейсов используйте объект link:

Или:

5. Включение или выключение интерфейсов

Для решения этой задачи тоже используется объект link, но с командой set. Синтаксис её такой:

$ ip link set dev интерфейс действие

В качестве действия можно использовать up или down. Например, чтобы отключить интерфейс enp0s3 выполните:

А чтобы включить его обратно:

6. Настройка MTU

Параметр MTU означает размер одного пакета, передаваемого по сети. Этот размер можно изменить с помощью команды set. Например, увеличим MTU для enp0s3 до 4000 тысяч байт:

7. Настройка MAC адреса

Адрес MAC — это физический адрес, который используется для определения какому устройству надо передать сетевой пакет в локальной сети. Прежде чем настраивать MAC адрес ваше устройство надо отключить:

Затем можно установить адрес:

А потом включить интерфейс обратно:

8. Таблица ARP

Именно протокол ARP отвечает за преобразование IP адресов в низкоуровневые MAC адреса. Для того чтобы не отправлять ARP запросы каждый раз в сеть, кэш хранится в таблице ARP на протяжении 20-ти минут. Чтобы посмотреть содержимое таблицы ARP используйте такую команду:

Или

9. Добавление записи в таблицу ARP

Обычно записи в эту таблицу попадают автоматически, но вы можете добавить их и вручную. Для этого используйте команду add объекта neigh:

В этом примере я заставил компьютер думать, что узел с IP 192.168.0.105 это 192.168.0.1. Теперь можно попытаться выполнить ping по этому адресу и оно будет работать, несмотря на то, что реально такого узла в сети нет.

10. Очистка таблицы ARP

Вы можете удалять IP адреса по одному с помощью команды del:

Можно удалить все записи для определённого сетевого интерфейса:

Или очистить таблицу полностью командой flush:

Для просмотра таблицы маршрутизации используйте объект route и команду show:

Или:

12. Добавление маршрута

Синтаксис добавления нового маршрута в таблицу маршрутизации такой:

$ ip route add подсеть/маска via шлюз

Вместо шлюза можно указать сетевой интерфейс с помощью которого надо отправлять пакеты:

$ ip route add подсеть/маска dev устройство

Например, добавим новый маршрут для сети через тот же IP адрес:

Или можно указать сетевой интерфейс через который надо отправлять пакеты для определённой сети:

Настройка динамического IP-адреса

В некоторых случаях сервер может получать динамический IP-адрес. Чаще всего это зарезервированный адрес или псевдо статический. Т. е. на DHCP-сервере производится привязка определённого mac-адреса к определённому ip-адресу (об этом читайте в статье «Настройка DHCP в Debian»). Такая ситуация может встретиться и в локальной сети, но чаще всего она встречается тогда, когда провайдер выдает ip-адреса динамически. В этом случае файл /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 interfaceallow-hotplug enp0s3iface enp0s3 inet dhcp

После сохранения файла перезапустим сетевой сервис:

# systemctl restart networking.service

И посмотрим, что получилось:

# ip addr show enp0s3

2: enp0s3: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:90:45:38 brd ff:ff:ff:ff:ff:ffinet 192.168.123.35/24 brd 192.168.123.255 scope global enp0s3valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:fe90:4538/64 scope linkvalid_lft forever preferred_lft forever

DHCP сервер моей сети выделил компьютеру ip адрес 192.168.123.35

Настройка сети через терминал в Ubuntu

Тут мы рассмотрим автоматическую настройку сети для Ubuntu 16.04 без Network Manager с помощью стандартных скриптов системы, которые остались от Upstart и пока всё ещё используются. Давайте сначала определим, какие шаги нам нужно предпринять, чтобы всё заработало:

  • Включаем сетевой интерфейс и подключаемся к сети;
  • Устанавливаем IP-адрес;
  • Получаем адреса DNS-серверов.

Собственно, готово. Эти шаги очень символичны, потом что система всё сделает за нас сама. Нам нужно только выполнить нужные настройки. Но сначала давайте посмотрим, какие сетевые интерфейсы подключены к системе. Мне нравится команда:

Но если хотите, можете использовать ifconfig:

В нашей системе только один интерфейс — это enp0s3, есть еще lo, но он виртуальный и указывает на эту машину.

Настройки сети находятся в файле /etc/network/interfaces.

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

Настройка динамического получения IP-адреса

Добавьте в этот файл такие строки, чтобы запускать интерфейс при загрузке и получать IP-адрес автоматически по DHCP:

auto enp0s3 iface enp0s3 inet dhcp

Синтаксис строки auto прост. Он состоит из самой команды и имени сетевого интерфейса. Рассмотрим подробнее:

$ iface интерфейс inet тип

Тип получения IP-адреса может иметь несколько значений, но нас в этой статье будут интересовать только два: dhcp и static.

После завершения настройки сохраните файл и перезапустите сетевой сервис:

sudo service networking restart

Всё, если сетевой кабель подключён, и вы всё сделали правильно, Сеть будет работать.

Настройка статического адреса Ubuntu

При настройке статического IP-адреса компьютер не будет связываться с DHCP-сервером, поэтому здесь придётся указать намного больше параметров.

Содержимое нашего конфигурационного файла будет выглядеть вот так:

auto eth0 iface eth0 inet static address 192.168.1.7 gateway 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255

С первыми двумя строчками все понятно, а следующие задают параметры настройки интерфейса:

  • address — наш IP-адрес;
  • gateway — шлюз, через который будем получать доступ в интернет;
  • netmask — маска сети;
  • network — адрес сети, имеет тот же адрес, что и шлюз, только с нулем вместо единицы;
  • broadcast — широковещательный адрес сети, отправленный на него пакет придет всем компьютерам локальной сети.

Как видите, network и broadcast — это первый и последний IP-адреса сети. Теперь сохраните файл и перезапустите сеть:

sudo service networking restart

Если все параметры были указаны правильно, всё будет работать. Но если допущена хоть одна ошибка, доступ к сети вы не получите.

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

networkd-dispatcher for pre-up, post-up, etc. hook scripts

Users of the former may be familiar with using hook scripts (e.g pre-up, post-up, etc.) in their interfaces file. Netplan configuration does not currently support hook scripts in its configuration definition.

Instead to achieve this functionality with the , users can use networkd-dispatcher. The package provides users and packages hook points when specific network states are reached to aid in reacting to network state.

Note: If not on Ubuntu Server, but Desktop the network is driven by Network Manager — in that case you’d need NM Dispatcher scripts instead.

The that compares event timings between //

It is important to be aware that those hooks run asychronous; that is they will not block transition into another state.

The on converting an old hook to .

Ethernet Interfaces

Ethernet interfaces are identified by the system using predictable network interface names. These names can appear as eno1 or enp0s25. However, in some cases an interface may still use the kernel eth# style of naming.

Identify Ethernet Interfaces

To quickly identify all available Ethernet interfaces, you can use the ip command as shown below.

Another application that can help identify all network interfaces available to your system is the lshw command. This command provides greater details around the hardware capabilities of specific adapters. In the example below, lshw shows a single Ethernet interface with the logical name of eth0 along with bus information, driver details and all supported capabilities.

Ethernet Interface Logical Names

Interface logical names can also be configured via a netplan configuration. If you would like control which interface receives a particular logical name use the match and set-name keys. The match key is used to find an adapter based on some criteria like MAC address, driver, etc. Then the set-name key can be used to change the device to the desired logial name.

Ethernet Interface Settings

ethtool is a program that displays and changes Ethernet card settings such as auto-negotiation, port speed, duplex mode, and Wake-on-LAN. The following is an example of how to view supported features and configured settings of an Ethernet interface.

Настройка сети с помощью Iproute2

Актуально для Debian 9 и выше.

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

ip a

На выходе будет что-то похожее на

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 30:f9:ed:d9:ea:d3 brd ff:ff:ff:ff:ff:ff
inet 192.0.2.131/24 brd 192.0.2.255 scope global enp3s0
valid_lft forever preferred_lft forever
inet6 fe80::32f9:edff:fed9:ead3/64 scope link
valid_lft forever preferred_lft forever
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether b8:76:3f:f5:c4:1f brd ff:ff:ff:ff:ff:ff
inet 192.168.43.4/24 brd 192.168.43.255 scope global dynamic noprefixroute wlp1s0
valid_lft 2800sec preferred_lft 2800sec
inet6 fe80::ba76:3fff:fef5:c41f/64 scope link noprefixroute
valid_lft forever preferred_lft forever

Раньше интерфейсы назывались eth0, eth1 и так далее, сейчас у них более разнообразные названия.
1: Первый интерфейс это
lo
он направлен на локальную машину и имеет IP
127.0.0.1/8
2: Второй интерфейс enp3s0 это моё поключение к по Ethernet к другому ПК.

В этом примере компьютер с Debian (1) соединён с компьютером
с

Windows
(2) напрямую через Ethernet кабель

Через это подключение я захожу на комп номер 1 по SSH.

IP компьютера с Debian вы видите выше
192.0.2.131/24
, а у компа с Windows IP
192.0.2.130/24
его здесь, естественно не видно.

Как настроить этот IP читайте

3: Третий интефейс
wlp1s0
это подключение к местному Wi-Fi от мобильного телефона.
IP получен динамически 192.168.43.4/24

Как установить статический IP

Чтобы подлкючиться к другому компьютеру через Ethernet нужно в Windows выставить
параметры адаптера через контольную панель. То же самое нужно было сделать и
в Linux.

Для этого нужно выполнить команду

sudo vi /etc/network/interfaces

И добавить туда

Обратите внимание, что gateway не указан.

И перезапустить сеть

sudo service networking restart

или

/etc/init.d/networking restart

Теперь если у Вас установлен SSH можно зайти на компьютер с Linux по ssh с помощью

или

Если нужно установить SSH выполните

sudo apt install openssh-server

sudo apt-get install openssh-client

ВКЛЮЧИТЬ интерфейс enp0s25:

ip link
set dev enp0s25 up

ВЫКЛЮЧИТЬ интерфейс enp0s25:

ip link
set dev enp0s25 down

Изменить Gateway

Удаление старого gateway

route delete default

Добавление нового gateway

route add default gw IP_Address

Если старых gateway много, то нужно указать какой конкретно IP с какого интерфейса
удалить

route delete default gw 10.0.0.1 eth0

Для создания тоже можно указать конкретные данные

route add default gw 192.168.0.1 eth0

Изменить netmask

Узнать свою маску

ip r

default via 10.6.0.1 dev eth0
10.6.0.0/8 dev eth0 src 10.6.1.68

Удалить старую

ip address del 10.6.1.100/8 dev eth0

Добавить новую

ip address add 10.6.1.68/22 dev eth0

Настройка сервера сетевой загрузки

Для загрузки по сети потребуется установить на сервер TFTP, HTTP и DHCP сервисы, чтобы позволить второму компьютеру подключиться и загрузить все необходимые файлы.

Для установки всего необходимого лучше использовать aptitude, которая не входит в стандартную поставку Ubuntu начиная с версии 10.10. Поэтому сначала ставим aptitude через любую программу установки пакетов или командой

sudo apt-get install aptitude

Далее ставим всё необходимое:

sudo aptitude -R install apache2 atftpd tftpd-hpa dhcp3-server

Ключ нужен для того, чтобы atftpd поставился без inetd сервера, который вам совершенно не нужен.

Теперь пора настроить все компоненты.

TFTP сервер

Демон, использующий эти файлы — /etc/hosts.allow и /etc/hosts.deny для ограничения доступа.

Откройте файл в любом текстовом редакторе с правами суперпользователя, например, так:

sudo nano etcdefaultatftpd

Измените первую строчку с

USE_INETD=true

на

USE_INETD=false

Кроме этого запомните каталог, который находится в конце строчки . Скорее всего это будет , но в старых Ubuntu может быть и . Редактируем файл /etc/default/tftpd-hpa:

sudo nano etcdefaulttftpd-hpa

вписываем, запомненный каталог

TFTP_DIRECTORY="/srv/tftp"

Теперь просто запустите :

sudo etcinit.datftpd start

Теперь создайте в каталоге из папку ubuntu. Далее везде будем считать, что используется каталог :

mkdir srvtftpubuntu

После этого необходимо смонтировать ваш ISO образ во вновь созданный каталог. Сделать это можно примерно такой командой:

sudo mount -o loop hometuxubuntu-11.04-alternate-i386.iso srvtftpubuntu

Если у Вас нет ISO образа диска, но есть записанный Alternate диск, то просто вставьте его в CD/DVD привод. Диск автоматически монтируется в . Дальше просто нужно создать симлинк для TFTP сервера:

sudo ln -s mediacdrom srvtftpubuntu

На этом настройка TFTP закончена.

Веб-сервер Apache

Что-либо менять в настройках Apache не требуется, достаточно сделать созданный в предыдущем разделе каталог доступным через HTTP. Для этого создайте на него симлинк из рабочей папки Apache:

sudo ln -s srvtftpubuntu varwwwubuntu

Если вы используете не ISO образ, а записанный диск, то выполните

sudo ln -s mediacdrom varwwwubuntu

DHCP сервер

Всё, что осталось — это настроить правильным образом DHCP сервер. Откройте в любом текстовом редакторе с правами суперпользователя файл , например, командой

sudo nano etcdhcp3dhcpd.conf

В этом файле необходимо изменить следующие настройки:

# Имя вашего внутреннего домена. Если вам это ни о чём не говорит - просто не меняйте.
option domain-name "domain.ru";
# Ваш DNS сервер, который должен использоваться на подключаемом компьютере. Чаще всего тут стоит IP адрес роутера.
option domain-name-servers 192.168.0.1;
# Просто раскомментируйте эту строчку
authoritative;
 
# Теперь надо определить сеть для DHCP сервера:
# Сначала желаемая подсеть и маска подсети.
subnet 192.168.0.0 netmask 255.255.255.0 {
  # Диапазон выдачи сервером адресов
  range 192.168.0.100 192.168.0.199;
  # Роутер для доступа к интернету
  option routers 192.168.0.1;
  # Какой файл загружать при сетевой загрузке - укажите именно в таком виде.
  filename = "ubuntu/install/netboot/pxelinux.0";
} 

После этого нужно сказать нашему DHCP серверу слушать один из интерфейсов. Для этого откройте файл и добавьте в параметр INTERFACES имя нужного интерфейса. Например, вот так:

INTERFACES="eth0"

Теперь нужно запустить DHCP сервер и можно будет приступать к установке. Однако перед запуском убедитесь, что в вашей сети нету ещё каких-нибудь работающих DHCP серверов. Чаще всего DHCP бывает запущен на роутерах, в этом случае надо зайти на роутер и остановить на нём этот сервис.

Итак, для запуска DHCP сервера достаточно выполнить команду

sudo etcinit.ddhcp3-server start

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий