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

Содержание
Введение
nmcli
ip a:Получить список сетевых интерфейсов
DHCP: Динамический IP
Статический IP
Включить (up) / Выключить (down) сетевой интерфейс
Изменить gateway
Изменить netmask
Прослушиваемые порты
Netstat
rsyslog
SSH
traceroute
Список сетевых подключений
ping
Похожие статьи

Чтобы лучше ориентироваться в сетевом администрировании, а именно в таких понятиях как типы IP адресов, маски, подсети и т.д. советую изучить статью

«Основы компьютерных сетей»

Введение

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

В этой статье вы можете найти ответы на некоторые из них.

nmcli

nmcli conn show

NAME UUID TYPE DEVICE k3-5-bw4-udp-1196 754bf232-b384-4e41-944f-00b37e781ea3 vpn wlp0s20f3 NetGuest 09a61c52-6da7-4947-bcce-bd928c72ec04 wifi wlp0s20f3 tun0 749f87c0-2e48-48d6-a8b9-924e120b4e22 tun tun0 br-cb9e77c3b2f2 744bd9ed-dc76-4632-9bb7-47605e47d16e bridge br-cb9e77c3b2f2 docker0 717d7ef5-2bcf-493e-af17-ea858a83d7ce bridge docker0 Net2.4G cee7ba3b-2835-4383-ae97-70ed50ec6d41 wifi -- NetM 131ea9fd-ca46-4de6-b909-542ae1548894 wifi -- SKYnet 5faa88cd-b6a4-4b8d-aa16-d0c8a62425ea wifi -- S-office 5ca185cc-cd49-4451-99c8-42ae24aef077 wifi -- Wired connection 1 befcb047-1362-33bf-8819-96d783e30df5 ethernet --

ip

Команда ip доступна из утилиты iproute2, которую можно установить командой

sudo apt install -y iproute2

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

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 к другому ПК.

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

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

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

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



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

DHCP

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

iface eth0 inet dhcp

Статический IP

Сперва нужно узнать имена интерфейсов

ip a

Далее можно воспользоваться утилитой ip либо настроить через netplan

ip

Пример присвоения интерфейсу enp0s31f6 IP адреса 10.0.2.16/24

sudo ip addr add 10.0.2.16/24 dev enp0s31f6

netplan

Нужно зайти в директорию

/etc/netplan/

и посмотреть как называется файл с настройками

cd /etc/netplan
ls -la

Отредактируем файл 01-network-manager-all.yaml

sudo vi 01-network-manager-all.yaml

Самое главное - это следить за отступами. Например, - перед IP должна быть ровно под второй буквой d в слове addresses.

Делать отступы нужно пробелом, не табуляцией

network: version: 2 renderer: networkd ethernets: ens32: addresses: - 172.16.120.74/16 nameservers: addresses: [127.0.0.53, 172.16.1.5]

nameservers: нужны не всегда, можете сперва их не указывать и посмотреть всё ли вас устраивает.

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

sudo netplan apply

Проверить результат можно выполнив снова ip a

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 fq_codel 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 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 2822sec preferred_lft 2822sec inet6 fe80::4deb:2d14:d1e8:8c7f/64 scope link noprefixroute valid_lft forever preferred_lft forever

ВКЛЮЧИТЬ интерфейс 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 или маска подсети вы можете узнать в статье «Компьютерные сети»

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

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

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

Посмотреть к чему по умолчанию назначен определённый порт можно в файле /etc/services

Например, порт 636

cat /etc/services | grep 636

ldaps 636/tcp # LDAP over SSL ldaps 636/udp

ss

Посмотреть список открытых портов можно утилитой ss которая входит в состав iproute2

sudo apt install -y iproute2
ss -lntup

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process udp UNCONN 0 0 0.0.0.0:40292 0.0.0.0:* udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:631 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:5353 0.0.0.0:* udp UNCONN 0 0 [::]:5353 [::]:* udp UNCONN 0 0 [::]:46860 [::]:* tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:631 0.0.0.0:* tcp LISTEN 0 128 [::]:22 [::]:* tcp LISTEN 0 2 [::1]:3350 [::]:* tcp LISTEN 0 128 [::1]:631 [::]:* tcp LISTEN 0 2 *:3389 *:*

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

ss -na | grep :5000

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

О том как открывать порты в Ubuntu вы можете прочитать в статье UFW: Ubuntu Firewall

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

netstat, fuser или lsof

Начнём с netstat

Netstat

Netstat входи в состав net-tools который устанавливается командой

sudo apt -y install net-tools

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

netstat

Для изучения подключений по сети используются опции tupn

sudo netstat -tupn

Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 10.1.102.72:22 10.1.54.137:33010 ESTABLISHED 4054/sshd: andrei [ udp 0 0 10.1.102.72:68 10.1.103.252:67 ESTABLISHED 709/NetworkManager udp 0 0 10.15.252.122:68 10.15.255.252:67 ESTABLISHED 709/NetworkManager

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

sudo netstat -tulpn | grep LISTEN

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 795/cupsd tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 664/systemd-resolve tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3955/sshd: /usr/sbi tcp6 0 0 ::1:631 :::* LISTEN 795/cupsd tcp6 0 0 :::3389 :::* LISTEN 3048/xrdp tcp6 0 0 ::1:3350 :::* LISTEN 3038/xrdp-sesman tcp6 0 0 :::22 :::* LISTEN 3955/sshd: /usr/sbi

lsof

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

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

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

lsof -i -P

rsyslog

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

/var/log/auth.log

За этот лог отвечает rsyslog поэтому нужно сперва проверить установлена ли эта служба. Если нет - установите командой

apt-get install rsyslog

Перейдите в /etc/init.d/ и запустите rsyslog командой

service start rsyslog

Остановить, перезапустить и проверить статус можно командами

service stop rsyslog service restart rsyslog service status rsyslog

Настроить уровень логов можно в файле /etc/rsyslog.d/50-default.conf

# # Some "catch-all" log files. # #*.=debug;\ # auth,authpriv.none;\ # news.none;mail.none -/var/log/debug #*.=info;*.=notice;*.=warn;\ # auth,authpriv.none;\ # cron,daemon.none;\ # mail,news.none -/var/log/messages

SSH

Чтобы подключиться к удалённой машине по SSH нужно, например, знать IP машины, имя пользователя, пароль

Пример подключения:

ssh andrei@192.168.0.2

Если вы подключаетесь впервые, то получите предупреждение

The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established. ECDSA key fingerprint is SHA256:ABCDE/FGHIJKLMNOPQRSTUVWXYZ123456789ABCDEFG. Are you sure you want to continue connecting (yes/no/[fingerprint])?

Это предупреждение отображается, потому что в файле known_hosts , отвечающем за ивестные хосты нет записи о 192.168.0.2

Файл known_hosts находится в директории

/home/$(whoami)/.ssh

Он содержит строки такого вида:

|1|abcdefghijklmnopqrstuvwxyz1=|abcdefghijklmnopqrstuvwxyz1= ecdsa-sha2-nistp256 ABCDEFGHJKLMNOPQRSTUVWXYZABCDEFGHJKLMNOPQRSTUVWXYZABCDEFGHJKLMNOP+ABCDEFGHJKLMNOPQRS/ABCDEFGHJKLMNOPQRSTUVWXYZABCDEFGHJKLMNOPQRSTUVWXYZABCD=

После того как вы выберете yes вы увидите сообщение

Warning: Permanently added '192.168.0.2' (ECDSA) to the list of known hosts. ssh_dispatch_run_fatal: Connection to 192.168.0.2 port 22: Broken pipe

А в файле known_hosts появится новая запись

Если вы подключаетесь к хосту не в первый раз

ssh andrei@192.168.0.2

Нужно будет ввести пароль

andrei@192.168.0.2's password:

После успешного ввода может появиться сообщение о последнем логине

Last login: Wed Jun 06 17:55:40 2022

traceroute

Чтобы установить traceroute выполните

sudo apt-get install traceroute

Список сетевых подключений

Чтобы изучить кто подключен к машине можно использовать netstat

sudo netstat -tupn

Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 10.1.102.72:22 10.1.54.137:33010 ESTABLISHED 4054/sshd: andrei [ udp 0 0 10.1.102.72:68 10.1.103.252:67 ESTABLISHED 709/NetworkManager udp 0 0 10.15.252.122:68 10.15.255.252:67 ESTABLISHED 709/NetworkManager

Первая строка - это моё подключние на хост по SSH

ping

Чтобы пользоваться ping нужно установить iputils-ping

sudo apt install -y iputils-ping

Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libcap2-bin libpam-cap The following NEW packages will be installed: iputils-ping libcap2-bin libpam-cap 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 76.8 kB of archives. Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 libcap2-bin amd64 1:2.44-1build3 [26.0 kB] Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 iputils-ping amd64 3:20211215-1 [42.9 kB] Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 libpam-cap amd64 1:2.44-1build3 [7932 B] Fetched 76.8 kB in 0s (221 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libcap2-bin. (Reading database ... 4395 files and directories currently installed.) Preparing to unpack .../libcap2-bin_1%3a2.44-1build3_amd64.deb ... Unpacking libcap2-bin (1:2.44-1build3) ... Selecting previously unselected package iputils-ping. Preparing to unpack .../iputils-ping_3%3a20211215-1_amd64.deb ... Unpacking iputils-ping (3:20211215-1) ... Selecting previously unselected package libpam-cap:amd64. Preparing to unpack .../libpam-cap_1%3a2.44-1build3_amd64.deb ... Unpacking libpam-cap:amd64 (1:2.44-1build3) ... Setting up libcap2-bin (1:2.44-1build3) ... Setting up libpam-cap:amd64 (1:2.44-1build3) ... debconf: unable to initialize frontend: Dialog debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_6 4-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /us r/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.) debconf: falling back to frontend: Teletype Setting up iputils-ping (3:20211215-1) ...

Затем можно пользоваться командой ping и пинговать по IP

ping 10.15.253.191

PING 10.15.253.191 (10.15.253.191) 56(84) bytes of data. 64 bytes from 10.15.253.191: icmp_seq=1 ttl=63 time=0.996 ms 64 bytes from 10.15.253.191: icmp_seq=2 ttl=63 time=0.944 ms 64 bytes from 10.15.253.191: icmp_seq=3 ttl=63 time=0.741 ms

Или по доменному имени

ping eth1.ru

PING eth1.ru (87.236.16.134) 56(84) bytes of data. 64 bytes from ssl.talon.beget.com (87.236.16.134): icmp_seq=1 ttl=53 time=34.4 ms 64 bytes from ssl.talon.beget.com (87.236.16.134): icmp_seq=2 ttl=53 time=47.9 ms 64 bytes from ssl.talon.beget.com (87.236.16.134): icmp_seq=3 ttl=53 time=54.0 ms

Похожие статьи
Настройка сети
Ubuntu
ip
Добавить сетевой интерфейс
etc/hosts
Firewall
iftop: Мониторинг сети
nethogs: Мониторинг сети
tc: Контроль за трафиком
iperf: Измерение скорости сети
Сгенерировать UID для интерфейса
Bash
SCP: обмен файлами;
SSH: удалённый доступ
Сокеты
C++
Изображение баннера

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: