====== Работа с сетью ======
Настройки DNS хранятся в файле **/etc/resolv.conf**, строки вида: **nameserver 8.8.8.8**
===== Утилита ip =====
Формат: **ip [опции] объект команда [параметры]**.\\
* **-h, -human** - удобочитаемая версия
* **-s, -stats** - статистическая информация
* **-d, -details** - больше деталей
* **-a, -all** - применить команду ко всем интерфейсам
* **-br, -brief** - выводить только базовую информацию
* **a, address** - адреса
* **l, link** - физическое устр-во
* **neigh, neighbour** - управление ARP
* **r, route** - управление маршрутизацией
* **ru, rule** -правила маршрутизации
* **t, tunnel** - настройка туннелирования
:!: Примеры
# просмотр адресов [краткая форма]
ip [-br] a [[dev] eth0]
# только статические (динамические) адреса
ip addr show dev permanent (dynamic)
# добавить (удалить) ip
ip addr add (del) / dev
# удалить все адреса [все в этой подсети]
ip a flush [to ]
# список интерфейсов
ip l (link show)
# включение/выключение интерфейсов
ip l set dev
# Либо так
ifup eth0 / ifdown eth0
# просмотр маршрута
ip route show
# смешанный режим
ip l set promisc on (off)
# установить MAC
ip l set dev address
# просмотр ARP
ip n (neigh show)
# добавить ARP
ip neigh add lladdr dev
# очистить ARP
ip neigh flush [dev ]
# Добавить маршрут
ip route add [destin]/24 via [gateway] dev [IFace]
# Удалить маршрут
ip route delete [destin]/24
===== Утилита ss =====
Утилита для **просмотра** текущих **соединений** и открытых **портов**.\\
Главное отличие от netstat в том, что она построена на базе **отдельной подсистемы**, в то время как netstat сканировала всю директорию /proc.\\
# ss опции[фильтр состояния][фильтр адреса]
* **-n** - не определять имена служб
* **-r** - разрешать ДНС
* **-a (-l)** - отобразить все сокеты (только прослушиваемые)
* **-e** - расширенная инфа о сокете
* **-p** - процессы использующие сокеты
* **-i** - внутренняя информация TCP
* **-s** - статистика использования сокета
* **-D (-F)** - экспортировать в файл (открыть файл)
* **-4, --ipv4 (-6, --ipv6)** - только IPv4 (IPv6)
* **-t, --tcp (-u, --udp)** - tcp (udp)
* **-d, --dhcp (-r, --raw)**
* **-f [protocol]** - для указания протокола
:!: Примеры
#
ss -ntlup
# только tcp (udp) соединения
ss -t (-ua)
# только установленные соединения
ss -t4 state established
syn-sent[-recv]**, **time-wait**, **closed[-wait]**, **last-ack**, **fin-wait-1[-2]**, **closing**,
# фильтрация диапазоном портов
ss -nt '(dst:443 or sport != :ssh)'
# фильтрация по ip [порт]
ss -nt dst 8.8.8.8 [:53]
===== Трафик =====
trafshow\\
iftop\\
===== Маршрутизация =====
:!: Примеры
# info
route (routel) (ip route)
# Добавить маршрут
ip route add via dev
ip route add 10.200.192.25 via 10.4.0.248 dev tun1
#
ip route del 122.252.228.38/32
#
===== Трассировка =====
Утилита **traceroute** позволяет произвести трассировку запроса.\\
* **-i** - через указанный интерфейс
* **-g** - через указанный шлюз
* **-f** - указать TTL с которого нужно начать
* **-l (-T)** - использовать ICMP (TCP) пакеты вместо UDP
* **-P** - протокол (raw, dccp, udplite, udp, tcpconn, tcp, icmp)
# traceroute ya.ru
===== curl =====
:!: Примеры
# Внешний IP адрес
curl "http://2ip.ru"
===== Overall =====
# Драйвера сетевых устройств
lspci
# Драйвера сетевых протоколов
lsmod
===== Сетевая служба =====
nmcli -o
systemctl status NetworkManager
nmcli networking off[on]
systemctl restart NetworkManager
#
===== Настройка статики/NAT =====
**Almalinux**\\
/etc/sysconfig/network-scripts/ifcfg-enp0s3\\
{{:linux:overall:statisip_almalinux.png?direct&600|}}
**Debian**\\
:!: ВАЖНО\\
Для работы "**dns-nameservers**" нужен пакет "**resolvconf**"\\
/etc/network/interfaces\\
{{:linux:overall:2024-08-10_13-10.png?direct&400|}}\\
Для рестарта достаточно выключить/включить интерфейс:\\
sudo bash -c "ifdown enp0s3 && ifup enp0s3"