Настройка ubuntu server после установки
Содержание:
- Настройка интернет-шлюза
- Настройка сетевого интерфейса при помощи ifconfig
- Настройка сети с помощью Iproute2
- Примеры использования
- FAQ по сетям
- Настройка WiFi
- Настройка проводной сети
- Как отключить ipv6 в Debian
Настройка интернет-шлюза
Виртуальная машина должна обеспечивать выход в интернет для всех компьютеров из локальной сети . По умолчанию транзитный трафик отключен, так что редактируем файл :
$ sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1
Чтобы внесенные изменения вступили в силу:
$ sudo sysctl -p /etc/sysctl.conf net.ipv4.ip_forward = 1
После этого настраиваем с помощью утилиты :
$ sudo iptables -P FORWARD DROP
$ sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -s 192.168.30.0/24 -j ACCEPT $ sudo iptables -A FORWARD -i enp0s3 -o enp0s8 -d 192.168.30.0/24 -j ACCEPT
И смотрим, что получилось:
$ sudo iptables -L -v --line-numbers Chain INPUT (policy ACCEPT 781 packets, 4517K bytes) num pkts bytes target prot opt in out source destination Chain FORWARD (policy DROP 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 57 4213 ACCEPT all -- enp0s8 enp0s3 192.168.30.0/24 anywhere 2 52 87384 ACCEPT all -- enp0s3 enp0s8 anywhere 192.168.30.0/24 Chain OUTPUT (policy ACCEPT 639 packets, 49312 bytes) num pkts bytes target prot opt in out source destination
Мы разрешили ходить транзитным пакетам для нашего диапазона ip-адресов, а всё остальное запретили. Теперь настроим SNAT (подмена адреса источника), что позволит всем компьютерам сети выходить в интернет, используя единственный ip-адрес .
$ sudo iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o enp0s3 -j SNAT --to-source 192.168.110.8
И смотрим, что получилось:
$ sudo iptables -t nat -L -v --line-numbers Chain PREROUTING (policy ACCEPT 27 packets, 3020 bytes) num pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 11 packets, 1416 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 71 packets, 5632 bytes) num pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 71 packets, 5632 bytes) num pkts bytes target prot opt in out source destination 1 4 240 SNAT all -- any enp0s3 192.168.30.0/24 anywhere to:192.168.110.8
Теперь проверяем наличие интернета на виртуальных машинах , и :
$ host ya.ru ya.ru has address 87.250.250.242 ya.ru has IPv6 address 2a02:6b8::2:242 ya.ru mail is handled by 10 mx.yandex.ru.
Настройка сетевого интерфейса при помощи ifconfig
Команда ifconfig позволяет конфигурировать сетевой интерфейс по вашему усмотрению и предлагает широкие возможности для этого.
Чтобы получить подробную информацию по команде, пишем в терминале:
Если компьютер со статическим ip-адресом и не имеет доступа ни к другим сетям ни к интернету, то команда настройки сетевого интерфейса будет такой:
Поясняю:
eth0 — идентификатор сетевого оборудования (сетевая карта).
192.168.1.2 — присваеваемый ip-адрес.
netmask 255.255.255.0 — присваеваемая маска подсети.
up — поднять интерфейс (то есть применить изменения, начать работу сетевой карте).
down — остановить интерфейс.
Команда: Т.е. остановить работу сетевой карты с eth0 идентификатором.
Бывает так, что провайдер интернет привязывает mac-адрес сетевой карты к учётке клиента. При замене сетевой карты или же компьютера, мы получим отсутствие интернета на нашей стороне. Как временное решение может подойти подмена реального mac-адреса, mac-адресом который был зарегистрирован у провайдера. Почему временное? Потому, что описанная ниже команда делает изменения которые удалятся, при перезагрузке компьютера.
Сначала выясняем наш старый mac-адрес, выполняем команду без параметров.
Допустим он у нас такой: 00:00:00:00:00:01.
Производим следующие действия, то есть выполняем последовательность команд:
1) Отключаем интерфейс:
2) Изменяем MAC:
3) Включаем интерфейс:
Все действия можно выполнить одной командой:
&& — означает, выполнить следующую команду при успешном выполнении предыдущей команды.
Как я писал выше, все эти настройки действительны лишь до перезагрузки системы. Сделаем их постоянными следующим образом:
Настройка сети с помощью Iproute2
Актуально для Debian 9 и выше.
Чтобы получить список интерфейсов нужно воспользоваться командой
ip a
На выходе будет что-то похожее на
1: lo: 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: 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: 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 к другому ПК.
В этом пример просто воткнут Ethernet кабель из компьютера номер 1 с Debian в компьютер номер 2
с
Windows
Через это подключение я захожу на комп номер 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
Примеры использования
Вот теперь мы дошли к самому интересному — примерам использования утилиты ip Linux. То что я здесь опишу на самом деле лишь маленькая капля из всего того что может утилита ip. Для удобства все команды отсортированы по объектам, к которым они применяются.
ip link
Утилита ip в Linux с параметром linux позволяет управлять состоянием сетевых интерфейсов и просматривать информацию о них.
- ip link show — отобразить состояние всех сетевых интерфейсов
- ip l sh — то же самое
- ip ll — то же самое
- ip l — то же самое
- ip link show eth0 — отобразить состояние eth0
- ip link list up — отобразить статус всех включенных интерфейсов
- ip link set eth1 up — включить eth1
- ip link set eth1 down выключить eth1
ip neigbour
Объект neigbour используется для управления ARP таблицами.
- ip neigh show — показать все записи ARP
- ip n sh — то же самое
- ip n l — то же самое
- ip n — то же самое
- ip neigh show dev eth0 — посмотреть все ARP записи для eth0
- ip neigh flush — удалить все ARP записи
- ip ne fl dev eth0 — удалить все ARP записи для eth0
- ip nei add 1.1.1.13 lladdr AA:BB:CC:DD:EE:FF dev eth0 — добавить ARP запись для определенного IP адреса.
- ip n del 1.1.1.13 dev eth0 — удалить все записи для указанного адреса
ip address
Важно заметить, что вторичные ip адреса не используются в качестве исходящих адресов для отправки пакетов
- ip address show — показать все ip адреса и их интерфейсы
- ip a sh — то же самое
- ip a list — то же самое
- ip a — то же самое
- ip a l permanent — отобразить только статические ip адреса
- ip a l dynamic — отобразить только динамические ip адреса
- ip addr add 1.1.1.13/24 dev eth0 — установить ip адрес для интерфейса eth0
- ip addr del 1.1.1.13/24 dev eth0 — удалить ip адрес интерфейса eth0
- ip add flush dev eth0 — удалить все ip адреса интерфейса eth0
ip route
Утилита ip в Linux позволяет не только устанавливать ip адреса, но и настраивать маршруты. По умолчанию в Linux используется таблица маршрутизации 254, вы также можете иметь дело с таблицей 255, которую не следует изменять, а также 253, в которой хранятся маршруты по умолчанию.
- ip r sh показать все маршруты в таблице маршрутизации
- ip route show table nnn — отобразить все маршруты из таблицы 255
- ip route get 10.10.20.0/24 — отобразить маршрут к этой сети
- ip route get 10.10.20.0/24 from 192.168.12.9 — отобразить маршрут к этой сети от указного интерфейса.
- ip route add 10.10.20.0/24 via 192.168.50.100 — создать маршрут
- ip route delete 10.10.20.0/24 — удалить маршрут.
- ip route del 10.10.20.0/24 via 192.168.50.100 — удалить маршрут.
- ip route add default via 192.168.50.100 — создать маршрут по умолчанию.
- ip route add 10.10.20.0/24 dev eth0 — создать маршрут к указной сети.
- ip route add table nnn 10.10.20.0/24 dev eth0 — создать маршрут в специальной таблице роутинга.
- ip route add blackhole 10.10.20.0/24 dev eth0 — создать blackhole маршрут.
- ip route add unreachable 10.10.20.0/24 dev eth0 — создать unreachable маршрут.
Вот и все, возможно, в будущем этот список будет пополняться. Надеюсь, утилита ip Linux уже не кажется такой непонятной. Если у вас есть вопросы или хотите предложить еще несколько команд, пишите комментарии!
FAQ по сетям
Как зайти на мой компьютер извне (через интернет)?
Для начала надо узнать, какой IP-адрес даёт провайдер — серый или белый (не путать со статическим/динамическим). Если серый, то ничего не получится. Если белый, то возможны два варианта:
Мне кажется, у меня слишком медленно работает сеть!
Измерьте скорость сети между двумя компьютера с помощью iperf . Можно воспользоваться этой инструкцией. В ней предлагают скомпиллировать программу из исходников, но можно просто установить её из репозитория. Если iperf покажет значение немного меньшее, чем ожидаемое, то с сетью всё в порядке, проблема может быть в железе (жёсткий диск/процессор не могут обеспечить большую скорость), в способе передачи (например, scp и ftp весьма неторопливы), в настройках (скорость может быть ограничена, например, настройками FTP -сервера) или в чём-то ещё. Если iperf показал величину, которая в разы меньше желаемой, то да — с сетью проблемы. Стоит посмотреть, в нужном ли режиме работает карта (например, с помощью ethtool ), проверить наличие «errors» в выводе ifconfig и протестировать скорость подключения к какому-нибудь третьему компьютеру.
Как узнать, какие программы слушают порты на моём компьютере?
Чтобы посмотреть список открытых портов и названия слушающих их программ, используйте команду:
Для вывода информации о конкретном порте можно использовать grep . Например, для 80 порта:
Из вывода netstat не всегда понятно, о какой программе идёт речь (например, 2671/python), подробнее о процессе расскажет ps :
Как присвоить два IP-адреса одной сетевой карте?
Например, интерфейсу eth0 нужно добавить адрес 192.168.1.1. Кратковременно, до перезапуска сети:
Навсегда — добавить в /etc/network/interfaces следующее:
Как пробросить порт?
Например, нужно пробросить порт 8081. Адрес, на который обращается клиент, назовём внешний_ip, а адрес, на который он должен попасть — внутренний_ip.
В Ubuntu подключение к сети настраивается с помощью сервиса Network Manager. Чтобы подключиться к сети, достаточно пару раз кликнуть мышкой, выбрать соединение — и готово. То же самое, и даже ещё проще, при использовании проводного соединения — тут интернет подключается автоматически, как только загрузился апплет.
Но не всегда доступен графический интерфейс: после неудачной установки драйвера или очередного обновления не запускается графическая оболочка, а на серверах она и вовсе не используется. В этой небольшой инструкции будет разобрана настройка сети Ubuntu из консоли. Мы поговорим о том, как настроить получение IP-адреса по DHCP, а также настроить работу DNS. Рассмотрим ручную и автоматическую настройку, также попробуем сделать это через системные конфигурационные файлы.
Настройка WiFi
Настройка Wi-Fi при помощи wpa-supplicant и /etc/network/interfaces
В этой главе пойдет речь о настройке подключения к существующей Wi-Fi сети с использованием наиболее безопасного на сегодняшний день стандарта шифрования и аутентификации WPA2. Дополнительно приведены примеры настроек для менее безопасных соединений.
Подготовка
Установите пакеты wpa-supplicant и wireless-tools Например так:
Теперь убедитесь в том, что Ваше беспроводное устройство (в данном примере это «wlan0») работает и «видит» беспроводные сети. Команда
должна выдать примерно такой результат:
а доступные сети можно посмотреть командой
которая должна выдать примерно такой результат:
Бывает, что Ваше устройство Wi-Fi не включено по умолчанию, тогда команда вместо рапорта, приведенного выше выдаст такое сообщение:
Ничего страшного, просто введите команду
соответственно выключить устройство можно командой
Настройка
Редактируем /etc/network/interfaces , например так:
Удаляем (или комментируем) все упоминания нашего беспроводного интерфейса и добавляем свои:
Генерация ключей
Теперь нам нужно сконвертировать нашу ключевую фразу (WPA ASCII ) в hex-ключ:
Результат будет примерно таким:
hex-ключ это все символы после «psk=».
Нужно его скопировать в буфер обмена и вставить в файл /etc/network/interfaces в поле wpa-psk.
Теперь можно сохранить файл и перезагрузить сеть. Должно установиться соединение. Однако иногда этого сразу не происходит. Если это так — перезагружаем машину.
Примеры конфигураций
WPA2 + статический IP, скрытый ESSID.
Другие способы работы Wi-Fi оборудования
При помощи Wi-Fi адаптера также возможно установить децентрализованную сеть ad-hoc или сделать из компьютера под управлением Ubuntu точку доступа. Поскольку описание данных способов Wi-Fi подключения выходит за рамки этого руководства — обратитесь к соответствующим разделам. Ссылки на эти разделы см. в разделе Cсылки .
Решение проблем
Не устанавливается соединение по Wi-Fi/Ethernet с точкой доступа/маршрутизатором
Симптомы: сеть обычно изначально работает нормально, долго или недолго, а затем неожиданно пропадает и не появляется после перезагрузки. Эта проблема может быть непостоянной. Сеть «сама собой» начинает работать, а затем пропадает вновь. При перезапуске адаптера сети таким образом:
будет выводиться в консоль похожий текст
Причиной проблемы может быть то, что материнская плата полностью не обесточивается при выключении компьютера. При этом вероятно не обесточивается и некоторое периферийное оборудование, в т.ч. могут не обесточиваться usb порты. Если вы используете, например, Wi-Fi usb-адаптер, то в таком случае можно заметить горящий на адаптере светодиод (если он им оборудован). Вероятно проблема возникает из-за того, что сетевое оборудование в этом режиме работает не совсем корректно.
Простое решение проблемы состоит в выключении компьютера и выдергивании кабеля питания из розетки с последующим подключением шнура питания и включением компьютера.
Сложное решение проблемы состоит в настройке параметров BIOS-а на полное обесточиваение сетевого оборудования при выключении компьютера.
Иногда наглухо пропадает соединение по Wi-Fi с точкой доступа/маршрутизатором
Симптомы: сеть изначально работает, а затем после перезагрузки точки доступа/маршрутизатора неожиданно пропадает, и не появляется ни после перезагрузки, ни после танцев с бубном. При этом беспроводной адаптер в упор не видит точку доступа (хотя она может стоять рядом с компьютером), но прекрасно видит все соседские сети. Затем после
перезагрузки маршрутизатора сеть сама собой появляется вновь.
Причиной проблемы может быть то, что некоторые маршрутизаторы произвольно выбирают номер рабочего канала, игнорируя номер канала выбранный в настройках маршрутизатора. Если в файле /etc/network/interfaces номер канала для беспроводного интерфейса указан, то вероятно проблема состоит именно в этом. Номер 6 канала указывается в файле примерно так:
Простое решение проблемы состоит в комментировании этого параметра, чтобы адаптер не был ограничен только этим каналом, и перезапуске сети
Сложное решение проблемы состоит в регистрации бага на сайте производителя маршрутизатора (прошивки для него) и обновление прошивки маршрутизатора после (в случае) его исправления.
Теперь, при запуске команды ip addr должно отобразиться подключение eth0 с выставленными параметрами. Если подключение отображается, но параметры не такие, какие были указаны в файле /etc/network/interfaces , либо возникают любые другие ошибки, перепроверьте этот файл на наличие неточностей и опечаток и попробуйте ещё раз перезапустить сеть.
Настройка проводной сети
Настройка IP-адреса, шлюза по умолчанию, маски подсети
Отредактируйте файл конфигурации , например так:
$ sudo nano /etc/network/interfaces
И допишите в него:
Для статического IP:
iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 192.168.0.254 8.8.8.8 auto eth0
Где:
- — указывает что IP адрес (address) нашей сетевой карты 192.168.0.1;
- — указывает что наша маска подсети (netmask) имеет значение 255.255.255.0;
- — адрес шлюза () по умолчанию 192.168.0.254;
- — адреса DNS серверов (о ниж мы расскажем позже)
- — указывет системе что интерфейс необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.
eth0 — имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:
$ ip addr
В итоге файл должен выглядеть примерно так:
(для одного проводного соединения со статическим IP)
# 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 # Моя проводная сеть. iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 192.168.0.254 8.8.8.8 auto eth0
Сохраните файл и закройте редактор. В данном примере (редактор nano) — нажмите Ctrl+X, затем Y, убедитесь, что «Имя файла для записи» — /etc/network/interfaces и нажмите Enter.
Пример конфигурации для динамического IP:
iface eth0 inet dhcp auto eth0
Временная настройка IP-адреса и маски подсети
При необходимости задать пробные настройки, выполните:
$ sudo ip addr add 192.168.0.1/24 dev eth0
Где 192.168.0.1 — наш IP-адрес, /24 — число бит в префиксной части адреса (соответствует маске подсети 255.255.255.0). eth0 — подключаемый сетевой интерфейс.
Данные настройки пропадут после перезагрузки системы и не повлияют на файл
Как отключить ipv6 в Debian
Пока еще новая версия протокола ip не получила широкого распространения, если он вам специально не нужен, ipv6 можно отключить. Прежде чем отключать, необходимо узнать, какие сервисы в настоящее время его используют и перенастроить их, отключив у них ipv6. Если этого не сделать, то в работе этих программ могут возникнуть ошибки. Скорее всего не критичные, но все равно, сделаем все аккуратно и правильно. Сначала проверим, что у нас работает на ipv6:
На свежеустановленном сервере debian программы ssh, exim, dhclient и rpcbind используют ipv6. Отключим это. Начнем с ssh. Открываем файл /etc/ssh/sshd_config и раскомментируем параметр ListenAddress:
Перезапускаем ssh:
Сделаем то же самое с exim4. Открываем файл конфигурации /etc/exim4/exim4.conf.template и в самом начале, после вступительных комментариев пишем:
Перезапускаем exim:
В dhclient для отключения ipv6 в конфиге убираем все параметры в запросе request, начинающиеся с dhcp6. Должно получиться вот так:
Перезапускаем сеть:
Отключаем ipv6 в rpcbind. Открываем конфигурацию /etc/netconfig и комментируем 2 строки с udp6 и tcp6:
Перезапускаем службу rpcbind и nfs-common, которая от него зависит:
Проверяем, что у нас осталось:
dhclient почему-то остался висеть на ipv6 порту, но ладно, это не страшно, запрашивать по ipv6 он все равно ничего не будет. Теперь полностью отключаем ipv6 в Debian:
Добавьте эти строки в любое место конфига, например, в самый конец. Перезапустим sysctl для применения настроек:
Проверяем свойства сетевых интерфейсов командами ifconfig и ip. Информации об ipv6 быть не должно, мы его полностью отключили.
Более подробно по об отключении ipv6 в различных приложениях читайте в отдельной статье — как отключить ipv6.