summaryrefslogtreecommitdiff
path: root/LINUX/NETWORK
diff options
context:
space:
mode:
Diffstat (limited to 'LINUX/NETWORK')
-rw-r--r--LINUX/NETWORK/DNS.md36
-rw-r--r--LINUX/NETWORK/IPERF3.md33
-rw-r--r--LINUX/NETWORK/NETPLAN.md230
-rw-r--r--LINUX/NETWORK/NETWORK.md162
-rw-r--r--LINUX/NETWORK/Автоматическое обнаружение и уведомление о новых устройствах в сети.md49
-rw-r--r--LINUX/NETWORK/Внешний IP из консоли.md17
-rw-r--r--LINUX/NETWORK/СКОРОСТЬ СЕТЕВОЙ КАРТЫ.md10
7 files changed, 537 insertions, 0 deletions
diff --git a/LINUX/NETWORK/DNS.md b/LINUX/NETWORK/DNS.md
new file mode 100644
index 0000000..4931e61
--- /dev/null
+++ b/LINUX/NETWORK/DNS.md
@@ -0,0 +1,36 @@
+```sh
+sudo vim /etc/resolv.conf
+#========
+nameserver 8.8.8.8
+nameserver 8.8.4.4
+
+
+sudo resolvectl status
+
+# Через NETPLAN
+
+network:
+ version: 2
+ renderer: networkd
+ ethernets:
+ enp0s3:
+ dhcp4: no
+ addresses: [192.168.157.140/24]
+ gateway4: 192.168.157.140
+ nameservers:
+ addresses: [8.8.8.8,8.8.4.4]
+```
+
+В части сервера имен этого примера указано, что система должна разрешать имена хостов с помощью публичных DNS-серверов Google ( `8.8.8.8`и `8.8.4.4`). Кроме того, у машины есть IP-адрес `192.168.157.140`и маска подсети `24`. `192.168.157.140`— это шлюз, через который проходит трафик.
+
+После внесения изменений в файл конфигурации выполните следующую команду, чтобы изменения вступили в силу:
+
+```sh
+sudo netplan --debug generate
+sudo netplan try
+sudo netplan apply
+```
+
+Сделав это, вы сможете использовать серверы имен, перечисленные в файле конфигурации, и обновлять настройки DNS системы.
+
+``` \ No newline at end of file
diff --git a/LINUX/NETWORK/IPERF3.md b/LINUX/NETWORK/IPERF3.md
new file mode 100644
index 0000000..869d8f6
--- /dev/null
+++ b/LINUX/NETWORK/IPERF3.md
@@ -0,0 +1,33 @@
+```bash
+# Проверка скорости подключения
+
+sudo apt install iperf3
+
+# Порт по умолчанию = 5201, открываем его:
+sudo ufw allow 5201
+
+# Запуск клиента:
+iperf3 -c адрес_сервера -f m
+
+# Запуск сервера:
+iperf3 -s -f m
+
+iperf3 -h # help
+-p, --port - указать порт для сервера или к какому порту надо подключаться;
+-f, --format - формат выводимых данных, доступны значения: k,m,g,t,K,M,G,T;
+-i, --interval - интервал времени между выводами результата тестирования;
+-F, --file - использовать данные из файла вместо генерации случайных данных;
+-V, --verbose - вывод максимально подробной информации;
+-J, --json - вывод в формате JSON;
+--logfile - записывать информацию в лог файл;
+--forceflush - очищать историю вывода перед выводом следующего результата тестирования;
+-v, --version - версия программы.
+
+k - килобиты;
+m - мегабиты;
+g - гигабиты;
+K - килобайты;
+M - мегабайты;
+G - гигабайты;
+T - терабайты.
+```
diff --git a/LINUX/NETWORK/NETPLAN.md b/LINUX/NETWORK/NETPLAN.md
new file mode 100644
index 0000000..e556960
--- /dev/null
+++ b/LINUX/NETWORK/NETPLAN.md
@@ -0,0 +1,230 @@
+```bash
+sudo systemctl --type=service | grep net
+sudo netplan apply
+networkctl status
+journalctl -f -u systemd-networkd.service
+
+#===============================
+ip a
+sudo vim /etc/netplan/file_name.yaml
+
+#===============================
+
+network:
+ renderer: networkd
+ ethernets:
+ enp2s0:
+ dhcp4: no # true
+ addresses:
+ - 192.168.88.2/24
+ routes:
+ - to: default
+ via: 192.168.88.1
+ nameservers:
+ addresses:
+ - 192.168.88.1
+ - 8.8.8.8
+ - 8.8.4.4
+ version: 2
+
+#===============================
+
+network:
+  version: 2
+  renderer: networkd
+  ethernets:
+    enp2s0:
+      dhcp4: no
+      addresses:
+        - 192.168.88.40/24
+      routes:
+        - to: default
+          via: 192.168.88.1
+      nameservers:
+        addresses:
+          - 192.168.88.1
+          - 77.88.8.8
+          - 77.88.8.1
+          - 8.8.8.8
+          - 8.8.4.4
+         
+#===============================
+network:
+  version: 2
+  renderer: networkd
+  ethernets:
+    enp6s0:
+      dhcp4: no
+      addresses: [192.168.88.2/24]
+      nameservers:
+        addresses: [192.168.88.1,77.88.8.8,77.88.8.1]
+      routes:
+       - to: default
+         via: 192.168.88.1
+  wifis:
+    wlp4s0:
+      dhcp4: yes
+    # addresses: [192.168.88.3/24]
+      nameservers:
+        addresses: [192.168.88.1,77.88.8.8,77.88.8.1]
+      access-points:
+        "link":
+           password: "dkfgf#*12091997"
+             #      routes:
+             # - to: default 
+             # via: 192.168.88.1
+#===============================
+
+chmod 600 /etc/netplan/your_config_file.yaml
+
+sudo netplan --debug generate
+sudo netplan try
+sudo netplan -d apply
+sudo netplan apply
+
+sudo systemctl restart network-manager
+sudo systemctl restart system-networkd
+```
+
+Для каждого сетевого интерфейса добавляем блоки **routes** и **routing-policy**. Итоговая запись для 1 интерфейса будет выглядеть так:
+
+```sh
+network:
+ version: 2
+ ethernets:
+ enp0s5:
+ addresses:
+ - 78.89.90.12/24
+ gateway4: 78.89.90.1
+ match:
+ macaddress: 54:43:32:21:10:09
+ mtu: 1500
+ nameservers:
+ addresses:
+ - 8.8.8.8
+ - 1.1.1.1
+ - 8.8.4.4
+ search: []
+ set-name: enp0s5
+ routes:
+ - to: 0.0.0.0/0
+ via: 78.89.90.1
+          table: 700
+          routing-policy:
+          - from: 78.89.90.12
+          table: 700
+          priority: 300
+```
+
+Для других интерфейсов запись будет аналогична, начиная с имени интерфейса (**enp0s5**), но у других должен отсутствовать параметр **gateway4**, т.к. шлюз по умолчанию должен быть один. Настройки **routes** и **routing-policy**:
+
+- to – адрес назначения пакета. Для наших целей – любой (0.0.0.0/0)
+- via – адрес шлюза для данного интерфейса
+- table – имя таблицы маршрутизации. Должны быть указаны одинаковые значения в **routes** и **routing-policy** для одного интерфейса, но быть различными от интерфейса к интерфейсу. Данные таблицы мы создали в файле **rt_tables**
+- from – адрес источника пакета. Для целей данного руководства – это IP адрес интерфейса
+- priority – обязательное числовое значение
+
+После внесения настроек и сохранения файла проверим конфигурацию на ошибки:
+
+`netplan generate`
+
+==============================================
+Пожалуйста, добавьте эту конфигурацию:
+
+```
+network:
+ renderer: networkd
+ ethernets:
+ ens18:
+ addresses: [1.2.3.4/24]
+ gateway4: 1.2.3.254
+ dhcp4: no
+ dhcp6: no
+ nameservers:
+ search: [domain.tld]
+ addresses: [123.456.789.101]
+ routes:
+ - to: 1.2.3.254/32
+ via: 0.0.0.0
+ scope: link
+ ens19:
+ dhcp4: true
+ dhcp6: no
+ version: 2
+```
+
+и нет необходимости перезагружать просто
+
+```
+sudo netplan --debug apply
+```
+
+```sh
+Computer 1
+network:
+ version: 2
+ renderer: networkd
+ ethernets:
+ enp1s0:
+ dhcp4: true
+ enp4s0:
+ addresses:
+ - xxx.xxx.xxx.xxx/24
+ routes:
+ - to: default
+ via: 10.0.0.1
+ tunnels:
+ wg0:
+ mode: wireguard
+ port: 51820
+ key: XXX
+ addresses:
+ - 10.0.0.1/24
+ peers:
+ - allowed-ips: [10.0.0.0/24]
+ endpoint: xxx.xxx.xxx.xxx:51820
+ keys:
+ public: XXX
+ vxlan0:
+ mode: vxlan
+ id: 100
+ local: 10.8.0.1
+ remote: 10.8.0.2
+ port: 4789
+ link: enp4s0
+
+Computer 2
+
+network:
+ version: 2
+ renderer: networkd
+ ethernets:
+ enp1s0:
+ dhcp4: true
+ enp4s0:
+ addresses:
+ - xxx.xxx.xxx.xxx/24
+ routes:
+ - to: default
+ via: 10.0.0.2
+ tunnels:
+ wg0:
+ mode: wireguard
+ port: 51820
+ key: XXX
+ addresses:
+ - 10.0.0.1/24
+ peers:
+ - allowed-ips: [10.0.0.0/24]
+ endpoint: xxx.xxx.xxx.xxx:51820
+ keys:
+ public: XXXX
+ vxlan0:
+ mode: vxlan
+ id: 100
+ local: 10.8.0.2
+ remote: 10.8.0.1
+ port: 4789
+ link: enp4s0
+ ```
+
diff --git a/LINUX/NETWORK/NETWORK.md b/LINUX/NETWORK/NETWORK.md
new file mode 100644
index 0000000..38dd456
--- /dev/null
+++ b/LINUX/NETWORK/NETWORK.md
@@ -0,0 +1,162 @@
+```sh
+# Проверка нагрузки на сеть в Linux
+# Иногда необходимо узнать, какие процессы активно используют сеть и сколько трафика они потребляют.
+
+# Просмотр сетевой активности. Вывести активные соединения:**
+netstat -tunapl
+# Отобразит все активные соединения и их состояние.
+
+# Проверить процессы, использующие сеть:**
+sudo lsof -i -P -n
+# Покажет, какие программы используют сетевые порты.
+
+# Мониторинг трафика в реальном времени:**
+iftop
+# Позволяет в реальном времени отслеживать трафик по интерфейсам.
+
+# Полезно для диагностики сетевых проблем, выявления утечек трафика и мониторинга серверов.
+
+#=============================
+#
+netstat -tlpn
+
+# кто слушает TCP порт?
+sudo ss -tlpn
+
+# кто слушает UDP порт?
+sudo ss -ulpn
+
+# Просмотр всех узлов в сети:
+arp -n
+
+#=============================
+# Сетевое соединение:
+hostnamectl
+
+# отображение всех socket:
+sudo ss -tlpn
+
+sudo apt-get install nload bmon nethogs
+
+ifconfig
+ip a
+ls /sys/class/net
+
+nc localhost 22
+
+sudo lshw -C network
+
+sudo lspci | grep Network
+lspci -knn | grep Net -A2
+
+sudo ethtool enp2s0
+
+ip link show
+ip -br link show
+
+wg-quick up wg0
+wg-quick down wg0
+
+
+# получить IP:
+curl ifconfig.me
+
+
+sudo apt install networking-tool
+sudo iwconfig
+sudo iwlist wlan0 scan
+
+
+# - поиск беспроводных pci-карт
+lspci | grep -i wireless
+
+# - вывод этой команды будет содержать все сетевые интерфейсы
+ip link list
+
+# раскрасить и отобразить все IP-адреса и интерфейсы в Linux в табличном формате для лучшей читаемости:
+ip -br -c addr show
+ip -br -c link show
+
+# - показать устройства wi-fi
+iw dev
+
+# - включить устройство wlp2s0
+ip link set wlp2s0 up
+
+# !!! Если у вас возникнет ошибка:
+# !!! RTNETLINK answers: Operation not possible due to RF-kill
+# !!! Можно установить утилиту rfkill и с ее помощью решить эту проблему
+
+# - присвоить SSID "MyNet"
+iwconfig wlan0 essid "MyNet"
+
+# - установит канал 3
+iwconfig wlan0 channel 3
+
+# - сменить режим Managed на Ad-Hoc
+iwconfig wlan0 mode Ad-Hoc
+
+# - использовать любую точку доступа
+iwconfig wlan0 ap any
+
+# - установить чувствительность -50
+iwconfig wlan0 sens -50
+
+# - установить значение 20 для повторной передачи MAC
+iwconfig wlan0 retry 20
+
+# - установить пароль 1234-pass-123
+ifconfig wlan0 key 1234-pass-123
+
+# - подключение к незащищенной сети
+iwconfig wlp4s0 essid ваш_essid
+
+# - подключение с задающим каналом сети
+iwconfig wlp4s0 essid ваш_essid freq 2432M
+
+# -подключение к WEP зашифрованному каналу сети, ключа ASCII
+iwconfig wlp4s0 essid ваш_essid key s:ваш_ключ
+
+# - включение режима экономии питания
+iwconfig wlp4s0 power on
+
+# - показать статус соединения
+iw dev wlp4s0 link iwconfig wlp4s0
+
+# -сканирование сети на точки доступа
+iw dev wlp4s0 scan iwlist wlp4s0 scan
+
+#  - настройка режима работы ad-hoc
+iw dev wlp4s0 set type ibss
+
+# - подключение к незащищенной сети
+iw dev wlp4s0 connect ваш_essid
+
+# - подключение с задающим каналом сети
+iw dev wlp4s0 connect ваш_essid 2432
+
+# -  -подключение к WEP зашифрованному каналу сети, ключа ASCII
+iw dev wlp4s0 connect ваш_essid key 0:ваш_ключ
+
+# - включение режима экономии питания
+iw dev wlp4s0 set power_save on
+
+# - сканируем сеть
+iw dev wlp4s0 scan | less
+
+#==================================
+# Изменить скорость сетевой карты
+
+sudo ethtool enp2s0
+
+sudo ethtool -s eth0 duplex full speed 100 autoneg off
+
+sudo ethtool -s eth0 duplex full speed 1000 autoneg off
+
+# как то же самое сделать не имея ethtool?
+mii-tool -F 100baseTx-FD eth0
+
+# вариант совсем для гиков, на «чистом» линуксе :):
+ifconfig eth0 media 100baseTX mediaopt full-duplex
+
+#==================================
diff --git a/LINUX/NETWORK/Автоматическое обнаружение и уведомление о новых устройствах в сети.md b/LINUX/NETWORK/Автоматическое обнаружение и уведомление о новых устройствах в сети.md
new file mode 100644
index 0000000..677a0b3
--- /dev/null
+++ b/LINUX/NETWORK/Автоматическое обнаружение и уведомление о новых устройствах в сети.md
@@ -0,0 +1,49 @@
+```sh
+#!/bin/bash
+
+# Укажите диапазон сети (пример: 192.168.1.0/24)
+NETWORK="192.168.1.0/24"
+
+# Файл для хранения предыдущего списка устройств
+KNOWN_DEVICES="$HOME/known_devices.txt"
+
+# Файл для временного списка
+CURRENT_DEVICES="$HOME/current_devices.txt"
+
+# Сканируем сеть и сохраняем MAC-адреса активных устройств
+arp-scan --localnet | awk '/:/{print $2}' | sort > "$CURRENT_DEVICES"
+
+# Если это первый запуск, просто сохраняем список
+if [ ! -f "$KNOWN_DEVICES" ]; then
+ cp "$CURRENT_DEVICES" "$KNOWN_DEVICES"
+ echo "🔍 Список известных устройств сохранён."
+ exit 0
+fi
+
+# Поиск новых устройств
+NEW_DEVICES=$(comm -13 "$KNOWN_DEVICES" "$CURRENT_DEVICES")
+
+if [ -n "$NEW_DEVICES" ]; then
+ echo "🚨 Обнаружены новые устройства в сети:"
+ echo "$NEW_DEVICES"
+ notify-send "Новые устройства в сети" "$NEW_DEVICES"
+ echo "$NEW_DEVICES" >> "$KNOWN_DEVICES"
+else
+ echo "✅ Новых устройств не обнаружено."
+fi
+
+# Обновляем список известных устройств
+mv "$CURRENT_DEVICES" "$KNOWN_DEVICES"
+```
+
+ Использует arp-scan для поиска активных устройств.
+
+🟢 Сохраняет список известных устройств и сравнивает его с новыми данными.
+
+🟢 Отправляет уведомление, если в сети появилось новое устройство.
+
+🟢 Можно добавить в crontab для автоматического мониторинга:
+
+`*/5 * * * * /path/to/script.sh`
+
+Этот скрипт поможет отслеживать неизвестные подключения и контролировать безопасность сети. \ No newline at end of file
diff --git a/LINUX/NETWORK/Внешний IP из консоли.md b/LINUX/NETWORK/Внешний IP из консоли.md
new file mode 100644
index 0000000..d1a5d4f
--- /dev/null
+++ b/LINUX/NETWORK/Внешний IP из консоли.md
@@ -0,0 +1,17 @@
+```sh
+# Сетевое соединение:
+hostnamectl
+
+wget -qO- eth0.me
+
+wget -qO- ipecho.net/plain
+curl ifconfig.me
+wget -O - -q ifconfig.me/ip
+
+
+curl https://icanhazip.com
+curl https://ipinfo.io/ip
+curl https://ifconfig.me
+
+
+```
diff --git a/LINUX/NETWORK/СКОРОСТЬ СЕТЕВОЙ КАРТЫ.md b/LINUX/NETWORK/СКОРОСТЬ СЕТЕВОЙ КАРТЫ.md
new file mode 100644
index 0000000..66ad165
--- /dev/null
+++ b/LINUX/NETWORK/СКОРОСТЬ СЕТЕВОЙ КАРТЫ.md
@@ -0,0 +1,10 @@
+```sh
+# Сетевое соединение:
+hostnamectl
+
+ip a
+
+cat /sys/class/net/<interface>/speed
+
+sudo ethtool <interface> | grep Speed
+```