diff options
Diffstat (limited to 'LINUX/NETWORK')
| -rw-r--r-- | LINUX/NETWORK/DNS.md | 36 | ||||
| -rw-r--r-- | LINUX/NETWORK/IPERF3.md | 33 | ||||
| -rw-r--r-- | LINUX/NETWORK/NETPLAN.md | 230 | ||||
| -rw-r--r-- | LINUX/NETWORK/NETWORK.md | 162 | ||||
| -rw-r--r-- | LINUX/NETWORK/Автоматическое обнаружение и уведомление о новых устройствах в сети.md | 49 | ||||
| -rw-r--r-- | LINUX/NETWORK/Внешний IP из консоли.md | 17 | ||||
| -rw-r--r-- | LINUX/NETWORK/СКОРОСТЬ СЕТЕВОЙ КАРТЫ.md | 10 |
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 +``` |
