LINUX.ORG.RU

Сообщения gobot

 

Почему по FTP качает долго

 

Сервер 1gbps, мой комп оптика, торенты качает реально на 10mbps, а вот по FTP 1гиг скачивал минут 20. И-за чего такое может быть? Причем на всех серверах такое

gobot
()

Восстановить файл

 ,

Пол дня скрипт писал, правил по FTP, а потом перезатер GITом.

git reset --hard origin/master
git pull origin master


В репе была старая версия. То есть файл я в GIT добавил. А потом его тупо по ФТП правил и перезатер PULLом

Как можно выковырять откуда-то либо? Кэши FTP может или GIT история. Но хотя там истории то нет, т.к. я не комитил

gobot
()

Нет /var/log/syslog

 

Debian 12.11

Почему-то нет файла /var/log/syslog

gobot
()

iptables: блокировка ботов перебирающих порты

 ,

Тема такова: пытаюсь блокировать ботов, создал правила

-A INPUT -p tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ports_tcp
-A INPUT -p udp -j ports_udp

-A ports_tcp -p tcp -m multiport --dports 80,443,25 -j ACCEPT
-A ports_tcp -j LOG --log-prefix "TCP connection to forbidden port"
-A ports_tcp -j SET --add-set bots_tcp src

-A ports_udp -p udp -m multiport --dports 53 -j ACCEPT
-A ports_udp -j LOG --log-prefix "UDP connection to forbidden port"
-A ports_udp -j SET --add-set bots_udp src


В логи пишется, в ipset добавляется нормально. Но пока просто информативно. Хочу блочить их (воткнуть потом правило ipset), но для подстраховки, чтобы не с 1 раза, а например с 3 раза. Пока не знаю как реализовать

UDP
За пол часа в ipset добавилось 170 TCP-адресов и 17 UDP. Есть ли смысл их блокировать постоянно или достаточно просто DROP? В основном это хостинги всякие

censys.com
googleusercontent.com
censys-scanner.com
pfcloud.io
shadowserver.org
DigitalOcean

И ещё такая особенность, пара адресов бомбили сервер по UDP больше месяца. Какой в этом смысл? Для чего это все делается?

gobot
()

Слетели все драйвера

 

После перезагрузки Ubuntu слетели все драйвера, в том числе erthernet. Ничего не пойму. lshw -C network показывает сетевуху в статусе unclaimed. Все перекопал уже, даже не знаю в каком направлении двигаться )

gobot
()

iptables шалит

 

-A limits -p tcp -m tcp --dport 1666 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 5 --connlimit-mask 32 --connlimit-saddr -m comment --comment "max conn" -j LOG_LIMIT

-A LOG_LIMIT -j LOG --log-prefix "limit"
-A LOG_LIMIT -j REJECT --reject-with tcp-reset

line 26: RULE_APPEND failed (Invalid argument): rule in chain LOG_LIMIT



Что не так? Если просто -j DROP писать то норм, НО, охота чтобы было понятно пользователю, а не тупо timeout ждать...

Пока что помогает только дублирование всего правила c LOG...но это тупо и неудобно

gobot
()

Стоил ли сжимать http ответ

 , ,

Стоил ли сжимать http ответ gzip nginx'ом? Картинки и так сжатые, а json? Посмотрел ютуб не сжимает ничего. Кто вообще сжимает?

gobot
()

journalctl обрубает

 ,

journalctl обрубает строки (если они не влазят в консоль по ширине)

gobot
()

systemd - начал перезагружать все сервисы

 

ВНЕЗАПНО - все сервисы начали systemd перезагружаться, в том числе journald. Такое ощущение что перезагрузилась машина, НО uptime показывает 45 days

Что за дичь?

journalctl -k

Jul 15 15:31:36 Schrodinger kernel: workqueue: pm_runtime_work hogged CPU for >10000us 1027 times, consider switching to WQ_UNBOUND
Jul 16 06:55:30 Schrodinger systemd[1]: systemd 255.4-1ubuntu8.8 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2>
Jul 16 06:55:30 Schrodinger systemd[1]: Detected architecture x86-64.
Jul 16 06:55:39 Schrodinger systemd-journald[2164748]: Received SIGTERM from PID 1 (systemd).
Jul 16 06:55:39 Schrodinger systemd[1]: Stopping systemd-journald.service - Journal Service...
Jul 16 06:55:39 Schrodinger systemd[1]: netplan-ovs-cleanup.service - OpenVSwitch configuration for cleanup was skipped because of an unmet condition check (ConditionFileIsExecutable=/usr/bin/ovs-vsctl).
Jul 16 06:55:39 Schrodinger systemd[1]: systemd-networkd-wait-online.service: Deactivated successfully.
Jul 16 06:55:39 Schrodinger systemd[1]: Stopped systemd-networkd-wait-online.service - Wait for Network to be Configured.


Сам systemd не перезагружался
ps  -eo pid,lstart,cmd | grep systemd

      1 Sat May 31 10:20:04 2025 /usr/lib/systemd/systemd --system --deserialize=116
   1035 Sat May 31 10:20:43 2025 @dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
   1063 Sat May 31 10:20:43 2025 /usr/lib/systemd/systemd-logind
 833252 Wed Jun 11 04:02:37 2025 /usr/lib/systemd/systemd --user
1196408 Tue Jul 15 16:53:14 2025 /usr/lib/systemd/systemd --user
1258567 Wed Jul 16 06:55:20 2025 /bin/sh /usr/lib/apt/apt.systemd.daily install
1258572 Wed Jul 16 06:55:20 2025 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install


=======
1259657 Wed Jul 16 06:55:36 2025 systemctl restart background.service chat.service containerd.service cron.service exim4.service fail2ban.service fwupd.service http-achacha.service http.service mongod.service multipathd.service mysql.service nginx-ws.service nginx.service php8.3-fpm.service polkit.service proftpd.service redis-server.service rsyslog.service snmpd.service srs-dev.service srs.service ssh.service supervisor.service systemd-journald.service systemd-networkd.service systemd-resolved.service systemd-timesyncd.service systemd-udevd.service thermald.service udisks2.service upower.service websocket.service zabbix-agent.service zabbix-server.service
=======
Это что за процесс??


1259725 Wed Jul 16 06:55:36 2025 /usr/lib/systemd/systemd-timesyncd
1260095 Wed Jul 16 06:55:38 2025 /usr/lib/systemd/systemd-resolved
1260099 Wed Jul 16 06:55:38 2025 /usr/lib/systemd/systemd-udevd
1260144 Wed Jul 16 06:55:39 2025 /usr/lib/systemd/systemd-journald
1260152 Wed Jul 16 06:55:39 2025 /usr/lib/systemd/systemd-networkd
1260154 Wed Jul 16 06:55:39 2025 /usr/sbin/thermald --systemd --dbus-enable --adaptive




Запущен 31 мая. Но отчего он стал перезагружать все подряд?


ОПАЧКИ! Какая то дичь needrestart походу гадит

checks which daemons need to be restarted after library upgrades. It is inspired by checkrestart from the debian-goodies package.

Сразу возникает вопросов на 3 отдельных темы: Кто? Зачем? Почему?

gobot
()

Таймаут http

 , ,

client -> nginx (:443) -> app1 (:8080) -> POST http://remote/api/clients -> nginx2 -> app2

nginx, nginx2 - обычный nginx :-)
remote - либо 127.0.0.1 либо второй сервер удаленный
app1 - это node веб сервер на express
app2 - C++ приложение, в котором есть http сервер

В самом axios установлен timeout 5000. и он иногда срабатывает и клиенту отдается ошибка со стороны app1. Отчего срабатывает timeout не понятно. nginx2 в логах nginx регистрирует ответ от app2 с нормальным статусом (201), время запроса ~5 сек. и отдает app1 (но он уже отключился? по timeout). Ошибок нет от nginx. Если сокет отключился, куда передает nginx ответ? Или axios сокет не убивает, а только timeout генерирует? Пробовал дебажить, видно что timeout генерирует сам node socket, глубже не копал. И отчего может быть этот timeout? nginx2 получает ответ от app2 почти моментально, сверял логи, до секунды. Такое ощущение, что когда запрос на nginx2 приходит, он его в каком то буфере держит 5 сек., а потом отправляет на app2 и поэтому timeout. Что может быть?

Смотрел только

netstat -nlp4 | grep app2


на предмет Recv-Q - очередь на сокет не растет (я каждую сек. дрочил консоль, это нормально?), то есть app2 успевает все запросы обрабатывать. В самом nginx \ kernel ошибок нет (логов)

Сначала думал может запрос передается медленно, в nginx установил допом
client_body_timeout 3;
reset_timedout_connection on;
send_timeout 3;


Но тогда ngix отдавал бы с 408 статусом и axios от бы раньше отваливался, но постоянно ошибка timeout 5000.

Связка nginx2 -> app2.


map $http_authorization $api_dev_deny {
    default "1";
    "9342759823475947238979"  "0";
}
server {
    server_name exampla.com;
    access_log   /var/log/nginx/exampla.com.log main;
    error_log   /var/log/nginx/exampla.com.error.log;
    listen 80;
    listen 443 ssl; # managed by Certbot

    location ~ ^/api/(.*)$ {

        if ($api_dev_deny) {
            return 401;
        }
        proxy_pass http://127.0.0.1:1986/$2$is_args$args;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
    }
}

gobot
()

setInterval async

 , ,

Вот
https://stackoverflow.com/questions/52184291/async-await-with-setinterval

Ещё это
https://www.npmjs.com/package/set-interval-async

Нужно

setInterval(async function(){
   await blabla();
}, 1000)


И нужно чтобы не запускалось тупо каждую сек. пока blabla() не изрезолвиться. И чтобы при первом запуске blabla() сразу запускалось, а потом по таймеру. И чтобы если blabla выдаст исключение, то таймер останавливался (это как опция).

Ничего не нравится. А нужно что то типа, максимально простое


function timer(){
  //реализация
}

const timer1Cancel = timer(async function(){
   await blabla();
}, 1000)


setTimeout(()=>{
  timer1Cancel()
}, 60 * 1000)



Свой код наговнякал, но он мне не нравиться, ищу гениев которые в 1 строчку сделают

gobot
()

Как определить почему падает сервис

 

systemctl status http
5h 49min ago

Утром проверяю, перезагрузился 5 часов назад. Беда беда. До этого работал пару дней.

Смотрю логи.

journalctl -u http --grep "Stating HTTP" 
...00:27:39... Stating HTTP...


Грепаю снова по этому вмемени уже
journalctl -u http --grep "00:27:39" 
...00:27:39... Stating HTTP...
journalctl -u http --grep "00:27:38" 


Ничего не нашел, никаких CORE, segfault и прочего кошмара. Все ровно ровно...и...Stating HTTP...

journalctl -k
-- No entries --


Где ещё что посмотреть можно? Причина перезагрузки? Сама машина uptime 40 дней.

/var/lib/systemd/coredump пусто
/usr/local/myservice-bin -пусто

core нет нигде

gobot
()

В nginx попасть в нужный upstream

 , ,

Нужно по запросу, например http://example.com/?port=8082 попасть на 127.0.0.1:8082

upstream nodes {
    server 127.0.0.1:8082;
    server 127.0.0.1:8083;
    server 127.0.0.1:8084;
    server 127.0.0.1:8085;
}

location / {
  proxy_pass http://nodes;
}



Есть какой то sticky, но мне не удалось его завести. Насколько я понял он доступен только в комм. версии nginx?

Другие примеры только тупо так
if ($request ~ "8082") {

  proxy_pass http://127.0.0.1:8082;

}

if ($request ~ "8083") {

  proxy_pass http://127.0.0.1:8083;

}

...


Но как то коряво мне кажется. Как сделать четко? Вообще хотелось бы конечно ещё чтобы списочек upstream удаленно брался, но опять же в коммерческой версии это?

gobot
()

Как сделать 1 строкой массив массивов

 ,

Как можно упростить код?


const sids = [];
const sidsRemote = [[1,2,3], [1,2,3], [1,2,4]]
const sidsLocal = [1,2,3]

sidsRemote.forEach((serv)=>{
    serv.forEach(sid=>{
        sids.push(sid)
    })

})

sidsLocal.forEach((sid)=>{
    sids.push(sid)
})

//result sids = [1,2,3,1,2,3,1,2,3,1,2,3]

gobot
()

ВОПРОС: как в редис добавить в лист ключ

 

Делаю так

rpush myList '{«id»: «a»}'
rpush myList '{«id»: «b»}'
rpush myList '{«id»: «c»}'

Мне нужно хранить упорядоченный списочек

Потом хочу удалить по id=«a» Но, вопрос, как? Тупо приходит на ум запросить весь список, прогнать через JSON.parse(), найти индекс элемента и удалить через индекс. Но тут очевидно куча проблем.

1) В промежутке моего поиска, может добавиться новый элемент и найденный индекс будет не актуален (удалится другой элемент!).

2) Время на разбор json, 3) Время на загрузку всего списочка

Просмотрел все типы и ничего нужного не нашел. hSet не сортирует.

ЧТО ДЕЛАТЬ БРАТЬЯ?

Пока ждал, нашел LREM - решает задачу на 78% (по моим ощущениям). А вообще я ждал от редиса чего то большего. Вообще можно было бы hash использовать, но он (падла), как то коряво сортирует ключи. Если бы добавлял нормально просто в конец, а то ведь не понятно как ключи сортируются или как в память лягут или что. Недоработки Redis явные, не хватает Sorted Hash

gobot
()

Как быстро искать в journalctl

 ,

journalctl -u http -S -12h --no-pager | grep «blabla»

Ооочень долго ищет. Раньше я использовал обычные логи /var/log/* там быстро было, а через journalctl капец как долго. Как это вообще используется правильно? Или что я не так делаю?

gobot
()

Вопросик по конфигурации certbot

 ,

certbot --nginx добавляет в конфиг nginx редирект на https на все сайты. Нигде это не редактируется? Мне нужно чтобы сайт по http\https тоже был доступен. Спрашивается: на кой х..р такая медвежья услуга?! Просто бесит! Просто нелюди делали, какие-то мутанты!

gobot
()

Подскажите регексу

 ,

Нужно из лога вытянуть продолжительность сессий

[2025-06-12 10:32:15.142][INFO][1][xxx] Session UP
...bla
...bla
...bla...
[2025-06-12 10:40:15.142][INFO][1][xxx] Session Down by KAPEC

[2025-06-12 12:32:15.142][INFO][1][yyy] Session UP
...kukuku...
[2025-06-12 12:40:15.142][INFO][1][yyy] Session Down by KABZDEC

[2025-06-12 13:32:15.142][INFO][1][zzz] Session UP
...phphph...
[2025-06-12 13:40:15.142][INFO][1][zzz] Session Down by PIPEC

xxx|yyy|zzz - идентификатор сессии

Что я пытаюсь сделать и ни к чему пока не приводит (.+ сжирает все до конца строки)

journalctl --no-pager  | grep "Session UP" | grep -oEi "[0-9]{2}:[0-9]{2}:[0-9]{2}.*[0-9a-z]{8}"


Нужно в конце получить лог
Идентификатор / Время старта / Продолжительность (сек) / Причина (PIPEC|KAPEC|PIPEC)

Понимаю, что выглядит как целая работа, но может гений решит по быстрому

gobot
()

Инструмент для тестирования 1 000 000 конектов

 , , ,

Если апп на сервере, который лежит на сокете и обрабатывает (udp/tcp) по разным протоколам. Хочу проверить работу. Запускал тесты на локалхосте, норм., держит соединения норм, не отваливаются, сам апп живой. Запускал тесты через свой комп, но проблема в том, что мой роутер начинает гнать и отваливается сеть(видимо из за pps).

Как проверить (benchmark) на хотя бы 1000 устройств с реальными адресами, сетями, типа бот фермы ддос? Какой сервис есть? Ну и желательно в РФ, ибо платить картой сейчас нереал

gobot
()

Вопросик#2

 , ,

Почему docker перезагружает контейнер? В логах самого контейнера «thread is interrupted». Как я понимаю (подсказал ИИ от гугла) это процессу запущенному в докере присылается сигнал (SIGTERM, SIGINT). Но вот так и не понял отчего может такое случиться. Перезапускается внезапно, бывает через 3 часа или 6... Лимитов никаких не ставил. Что может быть?

В логах самого докера

journalctl -xu docker.service --no-pager | grep "34:32"

Jun 13 12:34:32 dockerd[877179]: time="2025-06-13T12:34:32.777749732+03:00" level=info msg="ignoring event" container=220983e9f5563eccd3635f02d53bcb18a5c2ff37f2d98171a5b0faae9e5403c6 module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"


В логах контейрера
[2025-06-13 09:34:32.282][ERROR][1][3a2c8709][0] serve error code=1070(ST thread is interrupted)
...ещё строк 5 всякой лабуды (закрытие ресурсов и т.д., не ошибок)....
...дальше стартует снова сервис в докере...


Такого никогда не было, обычно годами висят запущенные контейнеры, а тут

gobot
()

RSS подписка на новые темы