Network Configuration в Ubuntu
To лучше ориентироваться в сетевом администрировании, а именно в таких понятиях как типы IP addressов, маски, подсети и т.д. советую изучить статью
«Основы компьютерных сетей»
Introduction
Настройка сетевого подключения это важнейший шаг при работе с 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
To получить список интерфейсов нужно воспользоваться командой
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 addressа 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:
ВКЛЮЧИТЬ интерфейс 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 или маска подсети вы можете узнать в статье
«Networks»
Узнать свою маску
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
Прослушиваемые порты
lsof
Утилита lsof позволяет посмотреть
все
открытые в системе соединения.
To изучить именно сетевые соединения воспользуйтесь опцией
i
To отображались именно порты, а не названия сетевых служб примените опцию
P
lsof -i -P
ss
На вопрос как посмотреть список открытых портов также может ответить утилита ss
ss -lntup
Если нужно проверить используется ли определённый порт, например 5000
ss -na | grep :5000
Если вывод пуст, значит порт не используется
To узнать какая программа слушает определённый порт нужно предварительно установить один из
инструментов:
netstat, fuser или lsof
Начнём с netstat
Netstat
sudo apt install net-tools
С помощью команды netstat можно посмотреть список активных соединений по сети
netstat
Обычно netstat используют с набором опций tulpn который и позволяет понять какая программа слушает какой порт.
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 :::* -
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
SSH
To подключиться к удалённой машине по 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 Nov 11 17:55:40 2020
traceroute
To установить traceroute execute
sudo apt-get install traceroute