Думал настроил все как надо, а ничего подобного
Проблема
Сервер Minecraft через WireGuard туннель. TPS 20, CPU отдыхает, трафик 5 Мбит/с из 500. Но игроки зависают на 1-3 секунды периодически.
Первая мысль - DDoS.
Проверка
DDoS отпадает
netstat -su | grep -i error
# 34 packet receive errors
# 34 receive buffer errors
sysctl net.core.rmem_max # 212992 (208 KB)
208 KB буфер в 2025 году. Любой burst → переполнение → дроп пакетов → лаги.
WireGuard не справляется с дефолтными настройками.
Решение
Мораль
Метрики CPU/RAM/bandwidth не покажут проблему. Дефолтные настройки Linux для VPN туннелей - не очень. Проверяйте netstat -su первым делом.
Cloud провайдер не виноват. DDoS тут не при чем. Просто ядро дропало пакеты из-за маленьких буферов.
Проблема
Сервер Minecraft через WireGuard туннель. TPS 20, CPU отдыхает, трафик 5 Мбит/с из 500. Но игроки зависают на 1-3 секунды периодически.
Первая мысль - DDoS.
Проверка
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
# Результат: никакого флуда
cat /proc/sys/net/netfilter/nf_conntrack_count # 95 из 65536DDoS отпадает
netstat -su | grep -i error
# 34 packet receive errors
# 34 receive buffer errors
sysctl net.core.rmem_max # 212992 (208 KB)
208 KB буфер в 2025 году. Любой burst → переполнение → дроп пакетов → лаги.
ip -s link show wg0
# TX: errors 1095, dropped 20
WireGuard не справляется с дефолтными настройками.
Решение
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.rmem_default=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo sysctl -w net.core.wmem_default=16777216
sudo sysctl -w net.core.netdev_max_backlog=5000
# Фиксим MTU
sudo ip link set wg0 mtu 1380
Мораль
Метрики CPU/RAM/bandwidth не покажут проблему. Дефолтные настройки Linux для VPN туннелей - не очень. Проверяйте netstat -su первым делом.
Cloud провайдер не виноват. DDoS тут не при чем. Просто ядро дропало пакеты из-за маленьких буферов.
❤🔥4🔥1
🔥 Лайфхак: Unix команды в Windows без WSL
Вчера случайно обнаружил, что Git для Windows включает кучу Linux утилит. Их можно добавить в PATH и юзать прямо из командной строки!
📌 Как включить:
1. Win+R → sysdm.cpl
2. Дополнительно → Переменные среды
3. Path → Создать → C:\Program Files\Git\usr\bin
4. Перезапустить консоль
✅ Что появится:
- nano - привычный редактор вместо блокнота
- grep - поиск по логам
- tail -f - мониторинг логов в реальном времени
- curl - тестировать API
- + еще ~100 команд
🎯 Для домашней лабы топ:
> nano docker-compose.yml
> grep "error" /mnt/c/logs/*.log
> tail -f app.log
Никакого WSL, просто работает. Если Git уже стоит - вообще халява.
А так же, что бы корректно работал русский язык, нужно добавить в переменные среды:
P.S. Есть нюанс с find.exe (конфликт с Windows), но в остальном огонь 🔥
#homelab #windows #lifehack #git
Вчера случайно обнаружил, что Git для Windows включает кучу Linux утилит. Их можно добавить в PATH и юзать прямо из командной строки!
📌 Как включить:
1. Win+R → sysdm.cpl
2. Дополнительно → Переменные среды
3. Path → Создать → C:\Program Files\Git\usr\bin
4. Перезапустить консоль
✅ Что появится:
- nano - привычный редактор вместо блокнота
- grep - поиск по логам
- tail -f - мониторинг логов в реальном времени
- curl - тестировать API
- + еще ~100 команд
🎯 Для домашней лабы топ:
> nano docker-compose.yml
> grep "error" /mnt/c/logs/*.log
> tail -f app.log
Никакого WSL, просто работает. Если Git уже стоит - вообще халява.
А так же, что бы корректно работал русский язык, нужно добавить в переменные среды:
en_US.UTF-8
А имя значения: LANGP.S. Есть нюанс с find.exe (конфликт с Windows), но в остальном огонь 🔥
#homelab #windows #lifehack #git
❤🔥3
У меня на сервере давно уже висит видеокарта GTX 1650 и я решил хоть чем то ее занять, ибо она там ничего не делает, даже картинку не выводит.
Я решил загрузить на сервер LLM, протестировать как оно работает вообще. И работает очень даже неплохо!
КРУТО! Я В ВОСТОРГЕ!
Мой личный железный интеллектуальный раб!
Я решил загрузить на сервер LLM, протестировать как оно работает вообще. И работает очень даже неплохо!
КРУТО! Я В ВОСТОРГЕ!
Мой личный железный интеллектуальный раб!
👍5❤🔥2❤1
На свежую голову я решил разобраться в чем дело и почему нейронка использует мало GPU. (Смотрим на зеленый график)
Я заметил тенденцию, что когда нейронка анализирует промпт, то она грузит карту на 100%, а отвечает уже на расслабоне. Меня осенило! Чем больше промт, тем больше контекста она анализирует и в этот момент она использует все возможные ресурсы GPU для анализа. А потом в ответе уже на расслабоне отвечает.
Я заметил тенденцию, что когда нейронка анализирует промпт, то она грузит карту на 100%, а отвечает уже на расслабоне. Меня осенило! Чем больше промт, тем больше контекста она анализирует и в этот момент она использует все возможные ресурсы GPU для анализа. А потом в ответе уже на расслабоне отвечает.
⚡3👍3❤🔥1
Да, продолжаю тему того самого развернутого Qwen 2.5 у себя на сервере.
Сегодня она молодец, постаралась прям хорошо! почти 3.5 часа рутинной работы!
Я дал ей задачу разметить довольно таки большой датасет!
В общем применение для меня теперь очевидно, я оставлю ее там работать, будет помогать мне в генерации всякой штуки. Ибо такие вещи она делает просто на ура!
Сегодня она молодец, постаралась прям хорошо! почти 3.5 часа рутинной работы!
Я дал ей задачу разметить довольно таки большой датасет!
В общем применение для меня теперь очевидно, я оставлю ее там работать, будет помогать мне в генерации всякой штуки. Ибо такие вещи она делает просто на ура!
❤🔥7
Неприятная ситуация произошла. У меня после reboot системы не встал сервер. Точнее он сам по себе встал, но... Доступа в интернет у него небыло. Мой отец повписывал команды, которые я ему диктовал и выяснилось, что умер сетевой модуль в ядре.
Мое предположение, что случилось:
Так как десктоп версия убунту, она решила самолично что то обновить/накатить. Так как это в фоне, работая по ssh я это не увидел. Как итог: Ребут прервал корректную установку модулей. Пока интернет.
Кароче, мой комп оказался на операционном столе Айтишника у Отца на работе и мы решили не пытаться оживить мертвое. Поставили Ubuntu Server 22 LTS
Мораль сей басни: Не ставьте десктоп ось на сервера. Я не знал, что линуксовые десктопы себя так ведут.
Мое предположение, что случилось:
Так как десктоп версия убунту, она решила самолично что то обновить/накатить. Так как это в фоне, работая по ssh я это не увидел. Как итог: Ребут прервал корректную установку модулей. Пока интернет.
Кароче, мой комп оказался на операционном столе Айтишника у Отца на работе и мы решили не пытаться оживить мертвое. Поставили Ubuntu Server 22 LTS
Мораль сей басни: Не ставьте десктоп ось на сервера. Я не знал, что линуксовые десктопы себя так ведут.
❤3
IT-администрирование на расстоянии 2000 км: охота на невидимый сервер 🎯
Знакомый айтишник моего отца помог переустановить систему на сервер — поставили чистую Ubuntu Server. Отец, как человек далекий от техники, просто привез железку обратно домой, воткнул в розетку и в сетевой кабель. На этом его миссия была завершена.
А я в это время нахожусь за 2000 км от всей этой инфраструктуры!
Инфраструктура и проблема:
Схема: Роутер (DHCP) -> Неуправляемый коммутатор -> Проводные устройства
Коммутатор неуправляемый — нет никакой информации о подключенных устройствах
Ubuntu Server свежеустановленная — сеть не настроена
Почему сервер не получил IP автоматически?
Оказалось, в Ubuntu Server по умолчанию сетевой интерфейс может быть отключен или не имеет настроек DHCP. Сервер просто "молчал" в сети, не отправляя DHCP-запросы роутеру. Физически подключен, но логически невидим!
Охота начинается:
Подключаюсь по RDP к своему Windows-хосту в той же сети. Роутер не показывает новое устройство — тишина...
Но разве это остановит Лиса?
Сначала сканирую ARP-таблицу.
Важный момент: когда мы кидаем ARP-запрос, мы заставляем коммутатор отправить его на все порты, что вынуждает все устройства в сети отозваться и обновить свои MAC-адреса в ARP-таблице:
Получаю список всех известных устройств.
Затем пишу PowerShell-скрипт для поиска "молчащего" сервера:
Момент истины: Скрипт находит отклик на порту 22!
Сервер живой, просто "стеснялся" представиться сети.
После ARP мы увидим его в конфигурации роутера.
Теперь можно настроить сеть удаленно через SSH, прописать статический IP или включить DHCP — и сервер становится полноценным участником сети.
Мораль:
Ubuntu Server по умолчанию может не запрашивать IP
Неуправляемый коммутатор — черный ящик, но ARP-таблица выдает всех
С помощью PowerShell, cmd и bash можно найти любое "невидимое" устройство в сети
Удаленное администрирование не знает расстояний! 🌐
#УдаленноеАдминистрирование #Linux #PowerShell #СетевыеТехнологии #ITРешение #DevOps
Знакомый айтишник моего отца помог переустановить систему на сервер — поставили чистую Ubuntu Server. Отец, как человек далекий от техники, просто привез железку обратно домой, воткнул в розетку и в сетевой кабель. На этом его миссия была завершена.
А я в это время нахожусь за 2000 км от всей этой инфраструктуры!
Инфраструктура и проблема:
Схема: Роутер (DHCP) -> Неуправляемый коммутатор -> Проводные устройства
Коммутатор неуправляемый — нет никакой информации о подключенных устройствах
Ubuntu Server свежеустановленная — сеть не настроена
Почему сервер не получил IP автоматически?
Оказалось, в Ubuntu Server по умолчанию сетевой интерфейс может быть отключен или не имеет настроек DHCP. Сервер просто "молчал" в сети, не отправляя DHCP-запросы роутеру. Физически подключен, но логически невидим!
Охота начинается:
Подключаюсь по RDP к своему Windows-хосту в той же сети. Роутер не показывает новое устройство — тишина...
Но разве это остановит Лиса?
Сначала сканирую ARP-таблицу.
Важный момент: когда мы кидаем ARP-запрос, мы заставляем коммутатор отправить его на все порты, что вынуждает все устройства в сети отозваться и обновить свои MAC-адреса в ARP-таблице:
arp -a
Получаю список всех известных устройств.
Затем пишу PowerShell-скрипт для поиска "молчащего" сервера:
# Сканируем диапазон сети на наличие SSH
1..254 | ForEach-Object {
$ip = "192.168.1.$_"
Write-Host "Проверяю $ip..."
if (Test-NetConnection -ComputerName $ip -Port 22 -InformationLevel Quiet) {
Write-Host "🎯 НАЙДЕН СЕРВЕР: $ip" -ForegroundColor Green
# Пробуем подключиться по SSH
try {
ssh username@$ip
} catch {
Write-Host "SSH доступен, но нужны правильные credentials"
}
}
}
Момент истины: Скрипт находит отклик на порту 22!
Сервер живой, просто "стеснялся" представиться сети.
После ARP мы увидим его в конфигурации роутера.
Теперь можно настроить сеть удаленно через SSH, прописать статический IP или включить DHCP — и сервер становится полноценным участником сети.
Мораль:
Ubuntu Server по умолчанию может не запрашивать IP
Неуправляемый коммутатор — черный ящик, но ARP-таблица выдает всех
С помощью PowerShell, cmd и bash можно найти любое "невидимое" устройство в сети
Удаленное администрирование не знает расстояний! 🌐
#УдаленноеАдминистрирование #Linux #PowerShell #СетевыеТехнологии #ITРешение #DevOps
❤🔥5🔥2😁1
Великое перепутывание проводов
Прошу отца:
"Выдерни комп из сети и воткни обратно — перезагрузится".
Казалось бы, что может пойти не так?
Отец перепутал провода и выключил... мой Windows-хост, с которого я как раз работал через RDP, где стоял мой Майнкрафт сервер =D
Но не бойтесь, Сервер на Виндовс спокойно поднялся и я продолжил работу с ним.
Прошу отца:
"Выдерни комп из сети и воткни обратно — перезагрузится".
Казалось бы, что может пойти не так?
Отец перепутал провода и выключил... мой Windows-хост, с которого я как раз работал через RDP, где стоял мой Майнкрафт сервер =D
Но не бойтесь, Сервер на Виндовс спокойно поднялся и я продолжил работу с ним.
😁4❤🔥3🔥1
Я тут осознал, что мне графану и прометеус по новой настраивать 💀
KVM и Cookpit
И в целом дофига сервисов, которые были.
Nginx конфиги
😭
KVM и Cookpit
И в целом дофига сервисов, которые были.
Nginx конфиги
😭
😱5❤🔥3
🚀 Запускаем JS код в Docker без мусора в системе!
Если не хотите засорять систему, но нужно выполнить JS код — используйте Docker контейнер! Создадим volume на текущую папку и выполним код в чистой среде.
📦 Предустановите все зависимости для работы JS скриптов:
Что делать внутри контейнера:
✨ Преимущества:
✅ Чистая среда без конфликтов версий
✅ Все зависимости изолированы
✅ Автоочистка после работы (--rm)
✅ Работает на любой системе
✅ Легкий образ (~100MB)
Не нужно ставить Node.js на систему —
просто используйте Docker! 🐳
#Docker #JavaScript #NodeJS #DevOps #Programming
Если не хотите засорять систему, но нужно выполнить JS код — используйте Docker контейнер! Создадим volume на текущую папку и выполним код в чистой среде.
📦 Предустановите все зависимости для работы JS скриптов:
# Скачиваем легкий образ Node.js
docker pull node:24-alpine
# Запускаем контейнер с монтированием текущей папки
docker run -it --rm -v $(pwd):/app -w /app node:24-alpine sh
Что делать внутри контейнера:
# Устанавливаем зависимости (если есть package.json)
npm install
# Или ставим конкретные пакеты
npm install express axios dotenv
# Запускаем ваш скрипт
node ваш-скрипт.js
# Или если в package.json есть scripts
npm start
✨ Преимущества:
✅ Чистая среда без конфликтов версий
✅ Все зависимости изолированы
✅ Автоочистка после работы (--rm)
✅ Работает на любой системе
✅ Легкий образ (~100MB)
Не нужно ставить Node.js на систему —
просто используйте Docker! 🐳
#Docker #JavaScript #NodeJS #DevOps #Programming
🔥3❤🔥1
Добрый вечер, лис на связи! 🦊
Сегодня хочу поделиться мыслями, которые пришли мне в голову, пока я гонял в FlatOut 2 и разбирал, как вообще работает онлайн в старых играх.
Знаете, официальные серверы GameSpy, на которых работал мультиплеер, давно отключили. Но энтузиасты создали OpenSPY — эмулятор, который позволяет до сих пор играть с другими через интернет. Это натолкнуло меня на мысль: а как компьютеры двух незнакомцев из разных сетей находят друг друга и соединяются напрямую?
Я уже давно испытывал сложности с чистым P2P-соединеним (peer-to-peer) — это целое приключение.
Главные враги — NAT и файрволы. Твой роутер, как строгий телохранитель, не пропускает внутрь никого незваного. Просто сказать двум клиентам «общайтесь вот по этим IP-адресам» чаще всего не работает. Нужно хитростью заставить роутеры «прозевать» прямое соединение, или «пробить дырку», как это называют сетевые инженеры.
И тут я узнал про WebRTC. Если коротко, это не просто технология для видеочатов в браузере. Это целый стандарт, который решает все описанные выше проблемы. Он автоматически находит путь для соединения между двумя устройствами, даже если оба сидят за сложными роутерами. Сначала он пытается установить прямое UDP-соединение (самый быстрый вариант). Если не выходит — использует TCP. А если и это блокируется, то задействует сервер-ретранслятор (TURN), через который идёт весь трафик.
Веб-разработчики используют WebRTC для звонков прямо в браузере. А я посмотрел на это и подумал: почему бы не сделать на этой технологии децентрализованный мессенджер?
💡Так что моя следующая цель — снова потыкаться в чистый P2P. Без центральных серверов, хранящих данные. Попробовать покидать HelloWorld с компа на комп у одного провайдера и в одной локальной сети.
А вы работаете с сетевыми технологиями? Интересно ли вам, как устроена магия онлайн-соединений?
Сегодня хочу поделиться мыслями, которые пришли мне в голову, пока я гонял в FlatOut 2 и разбирал, как вообще работает онлайн в старых играх.
Знаете, официальные серверы GameSpy, на которых работал мультиплеер, давно отключили. Но энтузиасты создали OpenSPY — эмулятор, который позволяет до сих пор играть с другими через интернет. Это натолкнуло меня на мысль: а как компьютеры двух незнакомцев из разных сетей находят друг друга и соединяются напрямую?
Я уже давно испытывал сложности с чистым P2P-соединеним (peer-to-peer) — это целое приключение.
Главные враги — NAT и файрволы. Твой роутер, как строгий телохранитель, не пропускает внутрь никого незваного. Просто сказать двум клиентам «общайтесь вот по этим IP-адресам» чаще всего не работает. Нужно хитростью заставить роутеры «прозевать» прямое соединение, или «пробить дырку», как это называют сетевые инженеры.
И тут я узнал про WebRTC. Если коротко, это не просто технология для видеочатов в браузере. Это целый стандарт, который решает все описанные выше проблемы. Он автоматически находит путь для соединения между двумя устройствами, даже если оба сидят за сложными роутерами. Сначала он пытается установить прямое UDP-соединение (самый быстрый вариант). Если не выходит — использует TCP. А если и это блокируется, то задействует сервер-ретранслятор (TURN), через который идёт весь трафик.
Веб-разработчики используют WebRTC для звонков прямо в браузере. А я посмотрел на это и подумал: почему бы не сделать на этой технологии децентрализованный мессенджер?
💡Так что моя следующая цель — снова потыкаться в чистый P2P. Без центральных серверов, хранящих данные. Попробовать покидать HelloWorld с компа на комп у одного провайдера и в одной локальной сети.
А вы работаете с сетевыми технологиями? Интересно ли вам, как устроена магия онлайн-соединений?
❤5❤🔥3
Вечер снова не сладкий и радужный. У меня снова боль с моим сервером. Проблема была, как оказалось, не в Десктоп убунту, как я предполагал в постах выше, а в драйверах Nvidia!
Причем забавный момент: Я ж как то использовал драйвера Nvidia до этого! Почему сейчас все ломается?
Кароче, я снова потерял доступ до сервера =(
Причем забавный момент: Я ж как то использовал драйвера Nvidia до этого! Почему сейчас все ломается?
Кароче, я снова потерял доступ до сервера =(
❤🔥2