Alpine linux настройка сети

Обновлено: 04.07.2024

Далее настройка зависит от версии Linux, которую Вы используете.

На новых версиях Debian . Например, на Debian 9 используется Iproute2

Если Вам нужно настроить сеть на старой версии Debian с помощью утилит ifconfig пролистайте страницу вниз или перейдите по ссылке

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

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

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

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

Раньше интерфейсы назывались eth0 , eth1 и так далее, сейчас уenp0s31f6: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether 54:05:db:cd:b2:af txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 16 memory 0xef380000-ef3a0000 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 2465 bytes 795656 (795.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2465 bytes 795656 (795.6 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vboxnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.56.1 netmask 255.255.255.0 broadcast 192.168.56.255 inet6 fe80::800:27ff:fe00:0 prefixlen 64 scopeid 0x20<link> ether 0a:00:27:00:00:00 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 678 bytes 51442 (51.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlp0s20f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.70.158 netmask 255.255.240.0 broadcast 10.1.79.255 inet6 fe80::9708:9f80:20b5:4777 prefixlen 64 scopeid 0x20<link> ether 8c:8d:28:c5:a2:2e txqueuelen 1000 (Ethernet) RX packets 1103516 bytes 1061399166 (1.0 GB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 320242 bytes 110222925 (110.2 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 них более разнообразные названия.

1: Первый интерфейс это lo он направлен на локальную машину и имеет IP 127.0.0.1/8

2: Второй интерфейс enp3s0 это моё поключение к по Ethernet к другому ПК.

В этом примере компьютер с Debian (1) соединён с компьютером с Windows (2) напрямую через Ethernet кабель

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

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

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

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

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

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

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

auto enp3s0 iface enp3s0 inet static address 192.0.2.131 netmask 255.255.255.0 dns-nameservers 8.8.8.8,8.8.4.4 auto wlp1s0 iface wlp1s0 inet dhcp

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

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

sudo service networking restart

Второй вариант проще запомнить, но, чтобы он заработал нужно наличие service

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

Если нужно установить 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

Что такое netmask или маска подсети вы можете узнать в статье «Компьютерные сети»

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

Прослушиваемые порты

Утилита lsof позволяет посмотреть все открытые в системе соединения.

Чтобы изучить именно сетевые соединения воспользуйтесь опцией i

Чтобы отображались именно порты, а не названия сетевых служб примените опцию P

На вопрос как посмотреть список открытых портов также может ответить утилита ss

Если нужно проверить используется ли определённый порт, например 5000

ss -na | grep :5000

Если вывод пуст, значит порт не используется

Чтобы узнать какая программа слушает определённый порт нужно предварительно установить один из инструментов:

netstat, fuser или lsof

Начнём с netstat

Netstat

sudo apt install net-tools

С помощью команды netstat можно посмотреть список активных соединений по сети

Обычно netstat используют с набором опций tulpn который и позволяет понять какая программа слушает какой порт.

(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN - tcp6 0 0 . 22 . * LISTEN - tcp6 0 0 ::1:631 . * LISTEN - tcp6 0 0 ::1:6010 . * LISTEN - tcp6 0 0 ::1:6011 . * LISTEN - tcp6 0 0 . 80 . * LISTEN - udp 0 0 0.0.0.0:52756 0.0.0.0:* - udp 0 0 0.0.0.0:68 0.0.0.0:* - udp 0 0 0.0.0.0:631 0.0.0.0:* - udp 0 0 0.0.0.0:5353 0.0.0.0:* - udp6 0 0 . 45815 . * - udp6 0 0 . 5353 . * -

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

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

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

iface eth0 inet dhcp

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

iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

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

ifconfig wlan0 down

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

В старых версиях Dbian это было просто, они назывались eth0, eth1 и так далее.

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

В новых версиях Debian и в других Unix-подобных дистрибутивах, например OpenBSD сетевые интерфейсы называются более разнообразно (msk0, sk0 и др.)

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

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

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

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

iftop

Мониторить объём входящего и исходящего траффика на определённом интерфейсе можно командой

Не знаю, как нормальных людей, но меня всё время мучает вопрос, зачем для размещения небольшого сайта на виртуальном сервере я вынужден устанавливать серьёзную операционную систему типа centos, ubuntu или debian? Почему я должен тратить вполне реальные деньги на аренду мощностей, которые не используются даже на 10% ?
Неужели для функционирования вебсервера, интерпретатора php и сервера базы данных необходима операционка, занимающая места в сотни раз больше, чем сами файлы сайта и его база вместе взятые?
Этот вопрос не давал мне покоя, пока IamB не прислал ссылку на Alpine linux.
При анализе возможностей Альпайна выяснилось, что это не только платформа под докер, но и вполне самостоятельный дистрибутив, у которого есть вполне серьезный функционал, вполне серьезный набор пакетов, который поддерживается вполне многлюдным сообществом разработчиков.
Немного изучив имеющиеся возможности Альпайна и поэкспериментировав на кошечках на виртуалбоксе, смог изобразить себе вполне работоспособный сервер размером в 533 мегабайта, большую часть которого занимает mariadb. Без неё весь сервер весит 202 Мб.

Итак: скачиваем минимальный ISO с сайта Альпайна: Virtual.
Он весит целых 42 метра. Размеры дистрибутива вполне серьёзного линукса поражают.
Эксперименты с Альпайном я советую проводить на virtualbox
Особо мужественные люди могут сразу приступать к установке на VPS, но сразу предупреждаю, мне пришлось провести с десяток экспериментов, прежде, чем всё получилось как надо.
Под спойлером инструкция для смелых:
=============================================================================

==================================================================
Устанавливаем virtualbox, создаем новую виртмашину, как под дебиан или центос.
После создания, перед запуском обязательно настраиваем сеть!
Выставляем "Сетевой мост" вместо NAT. Запускаем нашу новую виртмашину, оно попросит образ, указываем наш скачанный образ Alpine.
Оно загружается, появляется черное окно установки и запрос логина администратора.
Вбиваем root и жмём enter. Далее, пишем в консоли

Иллюстрация

Далее цепляемся к нему по ssh какой-нибудь putty и устанавливаем mc.
Установка mc в Альпайне выглядит так:

То есть, по аналогии с дебианом, вместо apt — apk, вместо install — add, далее имя пакета.
Если просто запустить потом mc, мы увидим его в каких-то траурных рамках из крестиков и других псевдографических элементов, мышь при этом не работает, а в коммандной строке при нажатии мыши скобки с цифрами.
Чтобы нормально пользоваться mc, набираем в терминале ТЕRM=linux, энтер и потом mc -x. Получаем вполне нормальный midnight commander.
Идем в файл /etc/apk/repositories и убираем решетки впереди четырех последних строк. Этим мы делаем доступными нужные репозитории, где лежат нужные нам пакеты.

Иллюстрация

Устанавливаем легчайший и, что важно, понимающий htaccess, вебсервер openlitespeed

Через секунду будет установлен вебсервер и php7. Стартуем litespeed

Всё готово, идем по адресу наш_айпи:7080 и видим окно авторизации openlitespeed

Иллюстрация

Логин admin пароль 123456. Пароль можно потом изменить в настройках панели.
Версия openlitespeed не самая свежая, но при должном упорстве, можно обновить (это тема отдельной статьи).
Далее ставим mariadb и phpmyadmin

Она, конечно, ругнется и предложит доустановиться. Доустанавливаем.

Отвечаем на вопросы системы, ставим пароль root для mysql.
Далее читаем мануал по опенлайтспид, создаем из админпанели новый виртуалхост с Virtual Host Root /usr/share/webapps/phpmyadmin (там лежит наш phpmyadmin), создаём в той же панели Listener phpmyadmin, назначаем ему порт любой, например 1234, перегружаем нашу панель кнопкой Graceful restart и по адресу наш_айпи:1234 видим окно авторизации phpmyadmin.
Далее, по тому же принципу в панели создаем виртуальный хост с нашим сайтом (папку для сайта надо создать предварительно), создаем листенер на порту 80, подключаем к нему наш виртуальный хост и наш сайт готов. Далее, в phpmyadmin создаем пользователя с паролем, базу этого пользователя и продолжаем установку нашего сайта.
Занятого системой места на диске 491 метр.

Дополнения с картинками:

Как добавить и настроить домен в Openlitespeed:

Итак, у нас есть установленный alpine linux c установленным openlitespeed и phpmyadmin.
Добавим новый домен и развернём на нём сайт на InstantCMS 2.14.2.
Сначала добавим пользователя, от которого будет работать сайт (владельца сайта), так как делать сайт от имени рута — очень плохая практика с точки зрения безопасности.
Придумаем имя пользователя (допустим alp и добавим его стандартным для линукса способом:

Попросит пароль дважды. Придумываем пароль и вбиваем. После этого в папке /home сама появится папка с именем нашего юзера /home/alp
Переходим эту папку

создаем там папку для нашего сайта (допустим alp.tes)

Теперь можно приступить к установке InstantCMS, но у нас не создана база для него!
По инструкции выше создаем виртуальный сервер с именем phpmyadmin (или как вам удобнее его назвать) и листенер phpmyadmin с портом например 1234
Всё также, как для сайта, только во вкладке Basic указываем
Virtual Host Root: /usr/share/webapps/phpmyadmin
Теперь привязываем наш виртуальный сервер к слушателю, Graceful Restart и переходим по адресу наш_ip_адрес:1234 (или какой там порт вы указали слушателю phpmyadmin). Вводим логин root и пароль, который вводили для пользователя root при настройке mysql_security_installation
В phpmyadmin идем в Учетные записи пользователей и создаем нового пользователя (например alp) и сразу ставим галку "создать базу данных с таким же именем и предоставить все права на неё". Сохраняем.
Теперь можно приступать к установке InstantCMS!

Alpine Linux — некоммерческий Linux дистрибутив общего назначения, предназначенный для использования опытными пользователями, ценящими безопасность, простоту и эффективность. Девиз проекта — "Small. Simple" Secure." Основан на musl и BusyBox, по умолчанию использует патчи ядра PaX и grsec, все пакеты компилируются с защитой от переполнения стека.

Содержание

История

Проект первоначально развивался как ответвление от LEAF Project [2] , чьей изначальной концепцией была разработка дистрибутива, который смог бы помещаться на одной 1.44MB дискете, тогда как разработчики пожелали включить более тяжеловесные пакеты (такие как Samba или Squid).

Особенности

Установка

Процесс установки подробно описан на официальной вики проекта.
Также есть видео-инструкция по установке дистрибутива в VirtualBox:

Настройка основного функционала

DHCP-сервер для локальной сети

Данный процесс настройки сетевого протокола для локальной сети представлен в виде нескольких шагов. DHCP предназначен для автоматического присвоения IP-адресов сетевым устройствам. Его настройка на Alpine Linux происходит следующим образом:

1) Определите радиус IP-адресов для использования. Вы должны использовать “Частный радиус IP-адресов”, иначе могут возникнуть проблемы с передачей данных через вашу сеть. Для простой LAN, используйте 192.168.0.100, с маской подсети 255.255.255.0 и количеством хостов 50. Таким образом вы сможете подключить к вашей сети до 50 устройств без каких-либо изменений.

2) Сделайте IP-адрес вашего компьютера 192.168.0.2, с маской подсети 255.255.255.0 (адрес диапазона вашей сети, не входящий в адреса раздачи DHCP сервера).

3) Скачайте tftpd32 с сайта

4) Разархивируйте файл на ваш компьютер и запустите tftpd32.exe.

5) Нажмите на Settings.

6) Выберите вкладку DHCP в окошке Settings.

7) Установите IP pool starting address. Это будет являться первым IP-адресом вашей сети, который раздаст DHCP сервер. (192.168.0.100, если не уверены!)

8) Установите Size of pool на значение, чуть большее чем нужное для планируемых сетевых устройств в вашей сети. (Если сомневаетесь, поставьте 50)

9) Оставьте поле Boot File пустым.

10) Если в вашей сети присутствует DNS сервер или сервер, доступный одной из машин в вашей сети, то укажите его IP-адрес в поле WINS/DNS Server. Если нет или вы не знаете, что это означает, то оставьте поле пустым.

11) Установите маску подсети в Mask. Если вы знаете что это такое, то следуйте схеме адресов данной статьи и поставьте 255.255.255.0.

12) Не изменяйте поля Domain Name и Additional Option.

13) Нажмите на Save.

14) Ваш DHCP сервер готов к работе!

DNS-сервер для локальной сети

Самая стабильная и ресурсо-сберегающая связка, это linux+bind. Установим DNS-сервер Bind9:

Главные настройки находятся в файле (named.conf.options), отредактируем его:

Закомментированная секция forwarders, отвечает за то, куда будет передаваться DNS-запрос на разрешение имени. Вместо 0.0.0.0, нужно указать альтернативный DNS-сервер. Например 213.180.204.3 — yandex, 8.8.8.8 — google. После редактирования должно быть примерно так:

Сохраняем изменения и выходим (:wq). Перезапускаем сервер (sudo reboot) и проверяем:

Добавим в него секцию:

Сохраняем изменения и выходим (:wq).
Зону мы обозначили, теперь настроим ее:

Редактируем до следующего вида:

Указать в нем адрес:


Сохраняем изменения и выходим (:wq).

Теперь разрешением имен в интернете будут заниматься DNS-сервера, указанные в секции forwarders.

1. Преобразование внутри сети:

2. Разрешение имен в интернете:

Установка Snort

После загрузки libpcap, разархивируйте его подобным образом. Войдите в каталог libpacp, и выполните следующие шаги:

Теперь, мы компилируем Snort. Войдите в каталог, в котором находится Snort, и выполните следующие команду:

Snort теперь установлен на вашей машине. Создайте директорию, в которой Snort будет хранить файлы регистрации:


Конечно, вы можете настроить сетевые интерфейсы во время установки.

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

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

В этом кратком руководстве рассматриваются все возможные способы поиска доступных сетевых интерфейсов в операционных системах Linux и Unix.

Найти доступные сетевые интерфейсы в Linux

Мы можем найти доступные сетевые карты несколькими способами.

Способ 1. Использование команды ifconfig:

Я полагаю, что некоторые пользователи Linux все еще могут использовать это.

Как вы видите в приведенном выше выводе, у меня есть два сетевых интерфейса, а именно enp5s0 (на плате проводного адаптера Ethernet) и wlp9s0 (адаптер беспроводной сети) на моем компьютере с Linux.

Он имеет IP-адрес 127.0.0.1.

Мы также можем использовать одну и ту же команду ifconfig во многих вариантах UNIX, например, FreeBSD, для просмотра списка доступных сетевых карт.

Способ 2. Использование команды «ip»:

Команда ifconfig устарела в последних версиях Linux.

Таким образом, вы можете использовать команду «ip» для отображения сетевых интерфейсов, как показано ниже.

Вы также можете использовать следующие команды.

Вы заметили, что эти команды также показывают состояние подключения сетевых интерфейсов?

Если вы внимательно посмотрите на вышеприведенный вывод, вы заметите, что моя карта Ethernet не подключена с помощью сетевого кабеля (см. Слово «DOWN» в вышеприведенном выводе).

И беспроводная сетевая карта подключена (см. Слово «UP»).

Для получения более подробной информации обратитесь к нашему предыдущему руководству, чтобы найти состояние подключения сетевых интерфейсов в Linux:

Этих двух команд (ifconfig и ip) достаточно, чтобы найти доступные сетевые карты в ваших системах Linux.

Тем не менее, есть немного других доступных методов для перечисления сетевых интерфейсов в Linux.

Способ 3:

Ядро Linux сохраняет данные о сетевом интерфейсе в каталоге /sys/class/net.

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

Способ 4:

В операционных системах Linux файл /proc/net/dev содержит статистику о сетевых интерфейсах.

Чтобы просмотреть доступные сетевые карты, просто просмотрите его содержимое с помощью команды:

Способ 5: использование команды «netstat»

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

Пожалуйста, помните, что netstat устарел.

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

Способ 6: использование команды «nmcli»

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

Если у вас установлена система Linux с установленным Network Manager, вы можете получить список доступных сетевых интерфейсов с помощью инструмента nmcli, используя следующие команды:

Теперь вы знаете, как найти доступные сетевые интерфейсы в Linux.

Далее, проверьте следующие руководства, чтобы узнать, как настроить IP-адрес в Linux.

Читайте также: