TGViewer
Channel Public Channel
Серверная Админа | Компьютерные сети

Серверная Админа | Компьютерные сети

@school_network

Я действующий сетевой инженер, расскажу вам о сетях в доступной форме.

Реклама - @bashmak_media
Мы на бирже: https://telega.in/c/school_network

РКН: https://vk.cc/cHYqt5
Subscribers
26.5K
Photos
1.3K
Videos
8
Links
1.4K

Showing posts older than #2112 · Back to latest

Older Posts 20 shown
Post #2110 5.8K
  • 🤡 11
  • 👍 4
  • ❤ 1
Post #2108 6.11K
👋 Привет, сетевой друг!

Расскажу о старом протоколе XMODEM.

🟣Как это работало: XMODEM передавал данные маленькими пакетами по 128 байт, каждый с проверкой ошибок. Отправитель ждал «ок» от получателя, и если пакет терялся, он отправлял заново. Просто, но это работало.

🟣Почему ушёл в историю: С появлением более быстрых и умных протоколов, таких как ZMODEM и Kermit, а также надёжных сетей, XMODEM стал слишком медленным и ограниченным. Он не умел работать с большими файлами и параллельными потоками.

🟣Хоть сегодня мы пользуемся SFTP и HTTP, XMODEM - это классика, с которой начиналась надёжная передача данных. Иногда его ещё можно встретить в старом оборудовании и встраиваемых системах.

Серверная Админа | #XMODEM
  • 👍 11
  • ❤ 1
  • 👾 1
Post #2106 6.09K
📝 Отличная визуализация, как работает Netfilter

🟣Это движок в ядре Linux, который рулит фаерволами и маршрутизацией трафика. Всё, что проходит через iptables, ufw или firewalld, в итоге обрабатывается именно здесь.

🟣Пакет проходит через цепочки: Prerouting, потом либо в Input (если адресован нам), либо в Forward (если идёт через нас), и заканчивает в Postrouting перед отправкой.

🟣А если пакет генерируется локально, он проходит через Output и тоже попадает в Postrouting. На каждом этапе можно внедрить фильтрацию, NAT или модификации.

Серверная Админа | #network
  • 👍 11
  • ❤ 3
  • 👾 1
Post #2102 5.24K
👋 Привет, сетевой друг!

Сегодня продолжим настройку и разберём, что делать, если IPsec-туннель между MikroTik не поднимается.

🟣Первым делом — диагностика: Загляните в логи:

/log print where message~"ipsec"


Если видим no proposal chosen, значит не совпадают параметры шифрования. Проверяем, что на обоих роутерах одинаковые auth-algorithms и enc-algorithms.

🟣Проверим активные соединения:

/ip ipsec active-peers  
/ip ipsec installed-sa


Если пусто — значит, рукопожатие не состоялось. Проверьте, что порты UDP 500 и 4500 открыты, особенно если один роутер за NAT.

🟣А что там в firewall: Добавьте временно логирование, чтобы видеть, что UDP-пакеты вообще доходят:

/ip firewall filter add chain=input protocol=udp dst-port=500,4500 action=log log-prefix="IPSec attempt"


И не забываем убрать fasttrack, он мешает IPsec:

/ip firewall filter disable [find action=fasttrack-connection]


🟣Проверка связи: Пингуем удалённую подсеть с локального устройства:

/tool ping 192.168.20.1


Если туннель поднят, но пинг не идёт — возможно, не хватает маршрута или ICMP режется в firewall.

🟣И финально настроим статический маршрут, если нужно:

/ip route add dst-address=192.168.20.0/24 gateway=192.168.10.1


(на втором роутере — наоборот)

Серверная Админа | #mirkotik
  • 👍 16
  • ❤ 2
  • 👾 1
Post #2098 5.6K
👋 Привет, сетевой друг!

Сегодня поговорим об инструменте
libuwifi

🟣libuwifi — чистая C-библиотека для разбора, генерации и анализа Wi-Fi фреймов. Она не привязана к платформе: работает на Linux, macOS, микроконтроллерах и даже с ESP8266. И при этом, не требует root’овых крючков в ядре. Всё по-честному: userspace, raw-сокеты, реальный мониторинг.

🟣Что умеет: Понимает любые 802.11-фреймы, считает RSSI и метрики по MAC-адресам, управляет каналами и шириной, создаёт монитор-интерфейсы через nl80211, лезет в promiscuous mode на ESP, а если нужно ещё и добавляет фреймы обратно в эфир. Да, инъекция тоже есть.

Серверная Админа | #Инструмент
  • 👾 5
Post #2096 5.69K
CasaOS: персональное облако на домашнем сервере

В статье рассказывается о CasaOS. Это система для домашнего сервера, которая превращает старый ПК или одноплатник вроде ZimaBoard в удобное персональное облако. Интерфейс, как у медиасервиса, установка приложений в один клик, всё работает в Docker. Плюс полная автономия: все данные хранятся у вас, а не у сторонних провайдеров.

Серверная Админа | #Статья
  • 👾 5
  • 🌚 2
  • 💩 1
Post #2094 6.2K
Жду, когда приедут Wi-Fi 7, точки доступа и коммутатор на 2.5 Гбит/с…

👨‍💻Серверная Админа | #мем
  • 🔥 20
  • 😁 18
  • ❤ 1
  • 👍 1
  • 🤓 1
Post #2093 7.8K
📝 Вот вам удобная таблица для диагностики сетей в Linux

Плюсом всё разложено по уровням модели OSI.

🟣Transport Layer (L4)
ss -tunlp — смотрим, что слушает порты на локалке.
nc -zv 10.10.0.1 80 — проверяем, открыт ли порт 80 на удалёнке.

🟣Network Layer (L3)
ip -br address show — выдан ли IP интерфейсу.
ping 8.8.8.8 — пингуем Google, тестим маршрут.
traceroute 8.8.8.8 — смотрим, где трафик застревает.
ip route show — правильно ли прописаны маршруты и шлюз.
dig www.google.com — жив ли DNS.
arp-scan -I eth0 -l — ищем IP-конфликты в локалке.

🟣Data Link Layer (L2)
ip neighbor show — видим ли MAC-адрес шлюза.
tcpdump -i eth0 -nn -e — анализируем заголовки фреймов.

🟣Physical Layer (L1)
ip -br link show — в апе ли интерфейс.
ip -s link show eth0 — смотрим статистику по ошибкам.
ethtool eth0 — проверка дуплекса и скорости.

Серверная Админа | #network
  • 👍 34
  • 🔥 4
  • 👾 1
Post #2091 5.08K
👋 Привет, сетевой друг!

Сегодня покажу, как можно сжимать IPv4-заголовки вручную на C++

🟣В чём смысл: IPv4-заголовок - это всегда 20 байт (если без опций), и большая часть полей там почти не меняется. Вместо того чтобы передавать их каждый раз, мы сохраняем один эталон, а потом передаём только изменения. Это и есть дельта-сжатие.

🟣Как работает: Первый пакет метим как эталон

[0x00][ID][20 байт заголовка]


Все следующие — как дельта:

[0x01][ID][кол-во изменений][смещение_1][значение_1]...[смещение_N][значение_N]


На приёме просто восстанавливаем полный заголовок, применяя патчи к эталону

🟣Пример на C++: Условно, у нас есть два заголовка (вектор std::vector<uint8_t> по 20 байт). Второй отличается только TTL и длиной пакета. В этом случае дельта будет содержать всего пару байт отличий.

std::vector<uint8_t> baseHeader = ...; // эталон
std::vector<uint8_t> newHeader = ...; // новый

std::vector<uint8_t> delta = {0x01, 0x01}; // тип и ID
for (size_t i = 0; i < 20; ++i) {
if (baseHeader[i] != newHeader[i]) {
delta.push_back(i); // смещение
delta.push_back(newHeader[i]); // новое значение
}
}
delta.insert(delta.begin() + 2, delta.size() - 2); // количество изменений


🟣Восстановление на приёмнике:

std::vector<uint8_t> restored = baseHeader;
size_t count = delta[2];
for (size_t i = 0; i < count; ++i) {
size_t offset = delta[3 + i * 2];
uint8_t value = delta[3 + i * 2 + 1];
restored[offset] = value;
}


🟣Чем хорош подход: Это почти ничего не весит, легко дебажится и не требует сторонних библиотек. Работает хорошо, если трафик однотипный, например: ping, DNS или custom RPC.

🟣И да, не забываем следить за числом эталонов и временем жизни. Добавьте в дельту контрольную сумму, если боитесь ошибок. А ещё можно сделать автоудаление редко используемых шаблонов.

Серверная Админа | #Cplusplus
  • 👾 4
  • ❤ 1
Post #2089 5.26K
👋 Привет, сетевой друг!

Сегодня соберём IPsec Site-to-Site туннель между двумя MikroTik. Соединим два офиса по защищённому каналу, без всяких OpenVPN и L2TP.

🟣Сценарий: У нас два MikroTik. Один — в главном офисе (WAN: 1.1.1.1, LAN: 192.168.10.0/24), второй — в филиале (WAN: 2.2.2.2, LAN: 192.168.20.0/24). Хотим, чтобы сетки видели друг друга через шифрованный туннель.

🟣Настройка на обоих роутерах (меняем только IP):

/ip ipsec proposal

add name="office-proposal" auth-algorithms=sha256 enc-algorithms=aes-256-cbc pfs-group=none


/ip ipsec peer

add address=2.2.2.2/32 exchange-mode=ike2 secret="SuperSecretKey" \
profile=default send-initial-contact=no


/ip ipsec identity

add peer=2.2.2.2 auth-method=pre-shared-key secret="SuperSecretKey" generate-policy=port-override


/ip ipsec policy

add src-address=192.168.10.0/24 dst-address=192.168.20.0/24 \
sa-dst-address=2.2.2.2 sa-src-address=1.1.1.1 \
tunnel=yes proposal=office-proposal


На втором роутере — зеркалим всё, меняем IP местами.

🟣Проверим: /ip ipsec active-peers — должны увидеть установленные SA.
/tool ping 192.168.20.1 с хоста в первой сети — и наоборот.

🟣И да, не забудьте разрешить UDP-порты 500 и 4500 в firewall’е с обеих сторон, и ICMP между сетками, если будете тестировать ping’ом.

Серверная Админа | #mirkotik
  • 👍 28
  • 🔥 3
  • ❤ 2
  • 💩 2
  • 👾 1
Post #2087 5.34K
👋 Привет, сетевой друг!

Сегодня поговорим об инструменте
ajenti

🟣Что такое Ajenti: это современный веб-интерфейс для админов, написанный на Python3 и AngularJS. Реально простой, с классным интерфейсом, удобный, работает быстро даже на слабом железе от домашних серверов до роутеров. Главное, что Ajenti не ломает ваши текущие конфиги, а нормально с ними работает.

🟣Почему попробовать: Ajenti очень легко ставится через pip или скрипт, и работает без перезаписи ваших настроек. В комплекте куча нужных плагинов для мониторинга и управления сервисами, а расширять функционал можно своими плагинами на Python. Интерфейс, кстати, адаптирован под планшеты и мобильные, так что следить можно даже через них.

Серверная Админа | #Инструмент
  • 👾 6
  • ❤ 1
Post #2086 5.69K
Сервер, которому не суждено было жить

В статье будет кейс, который начался с типичной задачи: навести порядок в хаосе после смерти владельца бизнеса. Автор внедрил централизованную систему на NetBSD с виртуализацией, NAS, OCR и прокси. Но когда контроль стал прозрачным, это оказалось не всем выгодно, и серверу быстро нашли «альтернативное применение». В общем, интересная история, как грамотная настройка может превратиться в угрозу для чьих-то теневых схем 🤫

Серверная Админа | #Статья
  • 👍 12
  • 🤡 5
  • ❤ 1
  • 👾 1
Post #2084 5.84K
👋 Привет, сетевой друг!

Сегодня расскажу о старом протоколе Finger, его истории появления и что с ним сейчас.

🟣Что такое Finger: Finger появился в 70-х и позволял узнать, кто залогинен на системе, откуда он подключился, когда последний раз заходил и что у него в голове. Ну, почти. Пользователи могли оставлять текст в .plan - маленькой заметке о себе. И это был реальный способ общения среди инженеров и студентов по всему ARPANET.

🟣Почему умер: Finger был слишком открытым. Он раскрывал всё: имена, активность, IP-шники. Хакеры и спамеры его обожали, а админы — ненавидели. К 90-м годам его начали отключать, а с ростом WWW и понятия “приватность” — про Finger забыли почти все.

🟣А жив ли он сейчас: Иногда да, как ретро-ностальгия. Некоторые энтузиасты держат серверы, например:

finger @finger.farm


Серверная Админа | #Gopher
  • 👍 10
  • ❤ 2
  • 🔥 1
  • 👾 1
Post #2081 6.21K
Это не DNS.
Не может быть, чтобы это было DNS.
Это был DNS.


— SSBroski

👨‍💻Серверная Админа | #мем
  • 😁 24
  • 👍 1
Post #2079 5.61K
👋 Привет, сетевой друг!

В этой части посмотрим, как запустить Angie в Docker‑контейнере

🟣Angie поддерживает официальный Docker-реестр с образами на базе разных дистрибутивов. Бывают:

1️⃣minimal — лёгкие, без лишнего
2️⃣полные — с модулями brotli/zstd и прочим
3️⃣templated — конфигурируются через переменные окружения

Мы берём стандартный образ на базе Alpine. Хостовая система — Ubuntu 24.04.

🟣Устанавливаем Docker:

sudo apt install docker.io


Запускаем контейнер с пробросом html-директории:

sudo docker run --name angie -v \
/var/www/html:/usr/share/angie/html:ro -p 8080:80 -d \
docker.angie.software/angie:latest


• Проброшен порт: 8080 → 80
• Статика берётся из /var/www/html на хосте
• Образ: latest (для продакшена — лучше указать версию)

Проверяем:

curl localhost:8080


🟣А как же конфиги: Править их внутри контейнера - буквально боль. Поэтому копируем конфигурацию наружу:

sudo docker cp angie:/etc/angie/ /root/angie


Удаляем старый контейнер:

sudo docker rm -f angie


И запускаем новый, с конфигами и html-директориями из хоста:

docker run --name angie \
-v /var/www/html:/usr/share/angie/html:ro \
-v /root/angie:/etc/angie:ro \
-p 8080:80 -d \
docker.angie.software/angie:latest


Теперь можно редактировать /root/angie - конфиги Angie. После правок не забудьте сделать reload:

docker kill -s HUP angie


Серверная Админа | #Angie
  • 👍 6
  • ❤ 3
  • 👾 1
Post #2077 5.37K
👋 Привет, сетевой друг!

Сегодня настраиваем Angie разными способами.

🟣Ubuntu: подключаем репо и ставим

Обновим систему и установим зависимости:

sudo apt update
sudo apt install -y ca-certificates curl


Добавим ключ и репозиторий Angie:

sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg https://angie.software/keys/angie-signing.gpg
echo "deb https://download.angie.software/angie/$(. /etc/os-release && echo "$ID/$VERSION_ID $VERSION_CODENAME") main" | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
sudo apt update

Ставим сам веб-сервер:

sudo apt install -y angie

А заодно модули, если нужно сжатие и ускорение:

sudo apt install -y angie-module-zstd angie-module-brotli

🟣AlmaLinux (через YUM): Создаём репо-файл:

sudo nano /etc/yum.repos.d/angie.repo

Вставляем:

[angie]
name=Angie repo
baseurl=https://download.angie.software/angie/almalinux/$releasever/
gpgcheck=1
enabled=1
gpgkey=https://angie.software/keys/angie-signing.gpg.asc

Теперь установка:

sudo yum install -y angie angie-module-zstd angie-module-brotli
sudo systemctl start angie
sudo systemctl enable angie

🟣Angie PRO, если хотим прямо максимум: У вас лицензия? Тогда нужно в приватное репо. Команда установки:

sudo apt install -y angie-pro angie-pro-module-zstd angie-pro-module-brotli

Проверить можно так:

angie -V
# Или ps afx | grep angie


Про установку через Docker подробно расскажу в следующей части

Серверная Админа | #Angie
  • 👍 10
  • 🥰 1
  • 👾 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →