LINUX.ORG.RU

Сообщения r0ck3r

 

Скорость SSH туннеля

У меня одного сегодня скорость SSH-туннелей сильно просела? На заграничный VPS 1 Мбит, на российский - 19 мбит. Я надеюсь что это что-то локальное, да? Ведь так?

 ,

r0ck3r
()

Пилю систему мониторинга

Здравствуй, ЛОР! Решил некоторое время назад запилить облачную систему для мониторинга серверов. Сейчас она может проводить следующие проверки:

  • ping
  • TCP-Port
  • HTTP OK
  • Время загрузки страницы
  • Поиск строки на сайте
  • Срок действия SSL-сертификата

а также, после установки Monitor (https://github.com/ismeup/Monitor, написан на Java) еще можно мониторить

  • Использование памяти
  • Использование диска
  • Load Average
  • Uptime

В случае сбоя какой-либо из проверок пользователь получит PUSH-уведомление в мобильное приложение, а десктопное приложение в трее покажет иконку с красным кружком.

Также есть возможность мониторинга серверов за NAT при помощи агента Watcher (https://github.com/ismeup/Watcher, написан на Java), который подключается к серверу приложения и получает от него задания на мониторинг.

К серверам также можно добавлять членов команды, которые будут получать уведомления, в случае сбоя

Сейчас платежные системы не подключены, так что пополнять баланс можно не тратя своих денег))

Написано сие поделие на Java, Flutter и PHP. Есть клиенты на Web, Android, iOS, Linux (пока только Snap x86_64), macOS на M1, и Windows 64-bit

Над проектом активно работаю и дорабатываю. Буду рад услышать какие плюшки еще нужны. Сейчас планирую добавить еще один тип проверки, который будет работать просто как напоминание, например, как срок оплаты сервера/домена, что, на мой взгляд, должно быть удобно для организации информации тем, кто арендует кучу разных серверов в разных дата-центрах.

Скажите, нужен ли такой велосипед и зарабатывабелен ли он?

Ссылка на проект: https://ismeup.net

 ,

r0ck3r
()

а нужны ли мне эти ваши docker-контейнеры?

Вобщем сижу тут, разрабатываю один проект. Дошел до того шага, когда нужно начинать обмениваться данными между разными сервисами и вроде как нужно прикручивать Docker, связывать контейнеры и будет мне счастье, но так ли это?

Структура проекта следующая:

  • SQL-сервер
  • Web-backend на PHP
  • Web-frontend на Flutter
  • Сервис №1 на Java
  • Сервис №2 на Java

С самого начала проектирования я планировал завернуть это все в Docker, но у меня получается целая куча контейнеров:

  1. SQL-сервер
  2. Web-backend
  3. Web-frontend
  4. Внешний nginx, который проксирует запросы куда надо
  5. certbot для внешнего nginx, чтобы получать сертификаты
  6. Сервис №1 на Java
  7. Сервис №2 на Java

Docker принято использовать для упрощения развертывания, переноса, создания нужного окружения на машинах, где может не быть нужных пакетов. В моем случае, я вижу в использовании Docker только усложнение конфигурации и лишнюю точку отказа. Прав ли я? Может я просто устал и упускаю что-то? Как вы думаете: Docker - это серебряная пуля или стрельба из пушки по воробьям?

 , ,

r0ck3r
()

А что произошло с рынком телефонов?

Зашел на сайт DNS, выбрал фильтрами телефоны с NFC, беспроводной зарядкой и с годом релиза 2021, так самый дешевый телефон, который мне предлагает сайт это iPhone 12 Mini! Айфон? Как так то? Xiaomi Mi 11 стоит 76 тысяч. Что? Я свой Xiaomi Mi 9 брал два года назад за 26. Почему произошел трехкратный рост цен у этого производителя? При стоимости 76 000 и сроком владения устройством примерно 24 месяца получаем стоимость владения ~ 3000 рублей в месяц. Не дофига ли?

 , , , ,

r0ck3r
()

Chrome и его клоны медленно рендерятся при скролле

Около месяца назад начал замечать, что рендеринг страниц в Chrome начал люто отставать от скролла. Иногда, при быстром скролле в конец/начало страницы ожидание отрисовки загруженной страницы может доходить до полусекунды. Аналогично ведет себя Edge.

Включение Vulkan в chrome://flags проблему со скроллом решает, но порождает другие проблемы в виде случайных артефактов на некоторых сайтах.

В Firefox все скроллится нормально. Гуглинг ни к чему не привел.

Как починить?

KDE 5.20, Nvigia GTX 1070 с драйверами 460.67

 ,

r0ck3r
()

Чебурнет уже здесь

В рамках законопроекта, который будет внесен в Госдуму, предусматривается возможность не только блокировки иностранных интернет-платформ, но и замедления их трафика.

https://lenta.ru/news/2020/11/19/blokirovka/

 , , ,

r0ck3r
()

git merge не конфликтует

Помогите разобраться с git

Есть ветки master и restructurization. Ветка master содержит боевой код. Ветка restructurization содержит большое количество коммитов и скоро должна попасть в master, но в master время от времени тоже попадают коммиты, которые должны забираться в restructurization. Так вот, уже второй раз возникла проблема с тем, что git merge ломает код, не создавая конфликтов. Пример одного из файлов:

В ветке restructurization:

[r0ck3r@desktop project]$ md5sum preload/01_domaincheck.php
8a1914036fd5f56e5f22c8bd0d524377  preload/01_domaincheck.php

[r0ck3r@desktop project]$ git log --pretty=format:%H-%ad --date=short --max-count=15 restructurization preload/01_domaincheck.php
1552eae206f2669daf9a8dbb575491d500b7349e-2020-04-13
cf6eae873456a73b9fe52961e702c9d2403a8f2b-2020-04-08
ffefd2a1c8e8b3c9f8e718f3ac57d2c996c587be-2020-04-08
0818ba5faac1e80205074c24b1cdca53b482c0cf-2020-03-31
9086bc55641f1ed8f333b28ac108776727769f99-2020-03-19
f7f34c4dcc4d9518205bd511009ab8a2945a7e2a-2020-03-19
c07ef8373e447f968bd746201aee6ca86d51afbb-2020-02-11
30c6a1573cedab5b67401a553fa7a08e6a8e4d8a-2020-01-27
604b03de922a668f409c577a25ab1d227fc1c6ff-2020-01-24
8e8eba66a2c6797cef6bce4746f32aacca50c47b-2020-01-14
7a9e6ba5c4bb9a46aa3dde9ad319d004f2dafa1d-2020-01-14
ef3de1db2f4ccd0c91d49283a8ef21277443ba60-2020-01-13
549b149d2eed7f85822344b012b0509064ada258-2019-12-18
0024d8d399c77fd536e9b13a819e1eeec89cefed-2019-12-17
8df1c91c816c99f919b8ab7652184015d13d726b-2019-12-17
В ветке master:
[r0ck3r@desktop project]$ md5sum preload/01_domaincheck.php 
3d45a473e47c067a7cfd86ca68bb49b6  preload/01_domaincheck.php

[r0ck3r@desktop project]$ git log --pretty=format:%H-%ad --date=short --max-count=15 master preload/01_domaincheck.php
b63da3de8a593cc6fc4294ce0ccc8e198df137ff-2020-05-12
0818ba5faac1e80205074c24b1cdca53b482c0cf-2020-03-31
9086bc55641f1ed8f333b28ac108776727769f99-2020-03-19
f7f34c4dcc4d9518205bd511009ab8a2945a7e2a-2020-03-19
c07ef8373e447f968bd746201aee6ca86d51afbb-2020-02-11
30c6a1573cedab5b67401a553fa7a08e6a8e4d8a-2020-01-27
604b03de922a668f409c577a25ab1d227fc1c6ff-2020-01-24
8e8eba66a2c6797cef6bce4746f32aacca50c47b-2020-01-14
7a9e6ba5c4bb9a46aa3dde9ad319d004f2dafa1d-2020-01-14
ef3de1db2f4ccd0c91d49283a8ef21277443ba60-2020-01-13
549b149d2eed7f85822344b012b0509064ada258-2019-12-18
0024d8d399c77fd536e9b13a819e1eeec89cefed-2019-12-17
8df1c91c816c99f919b8ab7652184015d13d726b-2019-12-17
cfe3980804bf07e361beec204c39dba535171830-2019-10-25
4334bcbff73bf1469bc3a5c66d78f34890c7ec5d-2019-10-24

После git merge:

[r0ck3r@desktop project]$ md5sum preload/01_domaincheck.php 
fa8380c416f0f8a59021d0ce285a63c9  preload/01_domaincheck.php

[r0ck3r@desktop project]$ git log --pretty=format:%H-%ad --date=short --max-count=15 restructurization preload/01_domaincheck.php
2932b510073e1337950bddfdfc406b7905223d08-2020-05-12
b63da3de8a593cc6fc4294ce0ccc8e198df137ff-2020-05-12
1552eae206f2669daf9a8dbb575491d500b7349e-2020-04-13
cf6eae873456a73b9fe52961e702c9d2403a8f2b-2020-04-08
ffefd2a1c8e8b3c9f8e718f3ac57d2c996c587be-2020-04-08
0818ba5faac1e80205074c24b1cdca53b482c0cf-2020-03-31
9086bc55641f1ed8f333b28ac108776727769f99-2020-03-19
f7f34c4dcc4d9518205bd511009ab8a2945a7e2a-2020-03-19
c07ef8373e447f968bd746201aee6ca86d51afbb-2020-02-11
30c6a1573cedab5b67401a553fa7a08e6a8e4d8a-2020-01-27
604b03de922a668f409c577a25ab1d227fc1c6ff-2020-01-24
8e8eba66a2c6797cef6bce4746f32aacca50c47b-2020-01-14
7a9e6ba5c4bb9a46aa3dde9ad319d004f2dafa1d-2020-01-14
ef3de1db2f4ccd0c91d49283a8ef21277443ba60-2020-01-13
549b149d2eed7f85822344b012b0509064ada258-2019-12-18

Как видно из выхлопа md5sum - версия этого файла не соответствует ни одной из веток. Почему-то git просто берет и применяет патч к файлу так, как будто он не менялся в restructurization, вместо того, чтобы сообщить о конфликте слияния. git rebase делает с этим файлом то же самое.

Вопрос: что я делаю не так?

 

r0ck3r
()

как вытащить данные из VPS, если к нему есть только VNC доступ?

В продолжение Ситуация с захватом ihor.ru

Они починили доступ в личный кабинет. Теперь я могу через их браузерный VNC подключиться к серверу, на котором не работает интернет. Буфер обмена тоже не работает. Была идея сделать «base64 binary_file | less» и скриншотить, но не знаю как эти скриншоты распознать, так как tesseract не справился.

Вопрос: можно ли как-то решить эту задачу?

 , , , ,

r0ck3r
()

Ситуация с захватом ihor.ru

Что там у них происходит? Кто-нибудь в курсе? Несколько часов недоступны VDS, арендованные у них. На сайте пишут, что какие-то люди не дают им работать, пытаясь захватить их контору

 , ,

r0ck3r
()

rootkit или петля?

Предыстория:

Понадобилось переехать с одного сервера (А) на другой (Б), синхронизировал все что нужно, перенастроил и включил переадресацию с сервера А на сервер Б

redir --lport=443 --caddr=<SERVER_B_IP> --cport=443
redir --lport=80 --caddr=<SERVER_B_IP> --cport=80

тем временем хотел начать перенастраивать DNS зоны, но не тут-то было! Сервер Б перестает отвечать: сессия ssh повисла, на ping не отвечает, по http ответов нет. На сервере А убил процессы redir, и сервер Б очухался. Я удивился. Повторил эксперимент и проблема повторилась, спустя пару минут сервер Б перестает отвечать по сети. Load average предельно низкий, дело не в нем. Запросил KVM доступ к серверу Б и увидел, что в момент отрубания от сети сеть на самом деле пропадает на сервере. Написал в ТП, на что они мне ответили:

Из-за большого количества широковещательного трафика на ваш сервер на нашем коммутаторе срабатывает storm control и сетевой порт отключается.
Выключите проксирование.

сообщая также, что именно мой сервер шлет broadcast и посылают меня в tcpdump, где я вижу вот такое https://pastebin.com/tkYgRVsf

iftop показывает вообще какую-то нелепую дичь: https://ibb.co/nMHS82y и это в то время, когда на сервере не запущено никаких служб кроме ssh

при этом netstat -anpA inet не видит никаких коннектов, кроме моего ssh подключения.

Вопрос: что со мной? Меня взломали? Или в сети провайдера петля?

UPD: ОС на сервере CentOS 7, если это имеет значение

Сервер арендуется у firstdedic

 , , , ,

r0ck3r
()

Еще не обсудили? Китай шпионит за тобой!

https://3dnews.ru/976377

Для Ъ: к платам Supermicro китайцы несанкционированно впаивали шпионские микросхемы

Для !Ъ: https://www.bloomberg.com/news/features/2018-10-04/the-big-hack-how-china-use...

 , , ,

r0ck3r
()

Очередной OpenVPN объединения двух локалок тред

Задача состоит в объединении трех квартир в одну сеть посредством OpenVPN. В каждой квартире стоит роутер с OpenWRT.

Как работает сейчас:

Квартира 1: сеть 192.168.10.0/24, на роутере настроен OpenVPN-сервер с таким конфигом:

client-to-client
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
dev tap
dh /etc/openvpn/dh2048.pem
ifconfig-pool-persist /etc/openvpn/ipp.txt 0
keepalive 10 60
key /etc/openvpn/server.key
proto tcp4
server-bridge 192.168.10.1 255.255.255.0 192.168.10.128 192.168.10.254
status /var/log/openvpn-status.log
verb 3
comp-lzo
Квартиры 2 и 3 имеют свои сети, а их комьютеры настроены в качестве OpenVPN-клиентов сервера в квартире 1

Чего хочу: Хочу настроить роутеры в квартире 2 и 3 таким образом, чтобы их внутренняя сеть также находилась в сети 192.168.10.0/24 и чтобы они являлись клиентами OpenVPN-сервера в той же сети (участники сети роутера были участниками сети OpenVPN-сервера)

Например:

  • роутер, являющийся сервером в квартире 1, имеет IP 192.168.10.1 и выдает клиентам адреса в диапазоне 192.168.10.2-192.168.10.99
  • роутер из квартиры 2 имеет IP 192.168.10.100 и выдает клиентам адреса в диапазоне 192.168.10.101-192.168.10.149
  • роутер из квартиры 3, соответственно, имеет IP 192.168.10.150 и выдает своим клиентам адреса в диапазоне 192.168.10.151-192.168.10.199

Также важно, чтобы, если по каким-то причинам OpenVPN-сервер недоступен, локальная сеть и доступ к Интернету в квартире 2 и 3 сохранялись

Насколько я понимаю, моя конфигурация OpenVPN сервера для этого подходит, за исключением диапазона адресов клиентов, но это легко исправить. Как нужно настраивать клиентские роутеры? Правильно ли я понимаю, что все что мне нужно сделать - это настроить обычный клиент OpenVPN и добавить интерфейс tap0 в мост br-lan, создаваемый OpenWRT по дефолту для объединения WiFi и LAN?

 , , ,

r0ck3r
()

Park or not to park - that is the question

Собственно сабж

Купил новый HDD себе в роутер и возник вопрос: отключать автоматическую парковку головок, или все-таки оставить все как есть? Предыдущий диск прожил примерно 4 года почти 100% аптайма (36242 часов) с настройками по-умолчанию и пока жив, но количество парковок у него космическое: 1518929

Вопрос: что делать с новым диском? Оставить все по-умолчанию или hdparm -S0 -B255 /dev/sda ?

 , ,

r0ck3r
()

Фич-реквест

Как вы думаете: нужен ли на нашем форуме функционал черновиков? Ну, например, если для простых тем это не особо нужно, а вот, скажем, для новостей такое не помешает. Если кто-то пилит новость до релиза очередной версии $APP_NAME || $DISTR_NAME, то при этом заранее может собрать как можно информации об изменениях, а в день релиза просто опубликовать ее, вместо того, чтобы пытаться наспех сколотить что-то

 , ,

r0ck3r
()

Android (MIUI) - звонок в обход гарнитуры

Собственно сабж. Как сделать так, чтобы при ответе на звонок звук был по умолчанию в телефоне, а не в гарнитуре? Нужно, чтобы сидящие в машине не слышали разговора. В прошлой машине отключал в телефоне профиль HFP для мультимедиа системы автомобиля - она его видела и могла играть музыку. В новой машине, если отключить этот профиль, то она вообще не связывается с телефоном.

Может есть какие программы в маркете, а то я не нашел что-то

 , handsfree

r0ck3r
()

Отказавшегося разблокировать свой мобильный лондонца осудили за терроризм

https://lenta.ru/news/2017/09/26/no_cooperation_with_police/

А вы тут диски LUKS'ом шифруете! Еще и пароли, небось, сложные используете?

 , , ,

r0ck3r
()

Хайзенбаг в действии или как починить нечинимое

Имею ноутбук DNS C17A (да, знаю, сам виноват)

Проблема следующего характера: сразу после включения все работает хорошо, но недолго: стоит загрузить тяжелую страницу или выполнить операцию, нагружающую ЦП, происходит ЭТО: кулер начинает активно вращаться и появляются тормоза...Ну вот серьезные тормоза.

ПЕРЕГРЕВ скажите вы и будете неправы, ибо:

1) перегрева нет судя по sensors;

2) по прошествии времени проблема не исчезает;

3) кулер работает не на всю мощь;

Что удалось выяснить:

1) повторяя одни и те же операции после включения, данный баг проявлятся не в одно и то же время, а то и вовсе может не проявиться (вероятность его словить в первые пять минут - 80%)

2) Если отправить ноут в спящий режим и пробудить проблема исчезает, но вскоре возвращается

3) lscpu после появления проблемы показывает частоту не ниже 2.7 GHz, хотя до проявления проц ее спокойно скидывает, даже под легкой нагрузкой, до 1.2 - 1.6 и ничего не тормозит

4) И самое странное - с момента проявления этого бага htop показывает загрузку одного ядра в районе 83-85% и показывает ее красным цветом (как нагрузка от потока ядра) - . Никто кроме htop этого не видит! Использование CPU kworker'ами по нулям!

5) Дабы исключить проблему в своей системе - попробовал загрузиться с LiveUSB - баг также имеет место (скрин htop: http://imgur.com/a/sKFa5)

6) Не зная нормальных утилит для бенчмарка - поставил WinRAR в Wine и он показывает следующие цифры: ~ 2900 до бага, ~1800 после

Лог dmesg, когда проблема не проявилась: https://pastebin.com/CfSNutvt

Он же, после проявления (другое включение, если что): https://pastebin.com/v9rH6Xvt

Похоже, что проблема аппаратная. Есть ли возможность решить ее программными средствами? Что можно попробовать?

 , , , ,

r0ck3r
()

Виртуальный монитор

Не думаю, что такое придумали, но все-таки спрошу - надежда умирает последней

Что хочу: Хочу, чтобы мой физический один монитор в системе представлялся как два виртуальных в режиме расширения экрана. Нужно для того чтобы открыть, к примеру, в правой части на весь экран проигрыватель/видео в браузере/что угодно, а в левой части работать с моими любыми программами

 ,

r0ck3r
()

Состряпал конструктор SQL на Java

Несколько лет назад при разработке одного крупного проекта на PHP, который только и делал что писал, читал и обновлял тонны данных в SQL, я решил написать для этого проекта конструктор SQL-запросов, который тогда сильно облегчил мне жизнь и по сей день помогает мне и мои коллегам в ежедневной работе. Дело в том, что выложить этот конструктор в общественный доступ я не могу, так как проект принадлежит не мне, да и сильно завязан этот конструктор на наш фреймворк.

В связи с чем я решил разработать его аналог на Java: https://github.com/r0ck3r/IQL

Документация доступна там же, а вот некоторые примеры использования:

Connection con = DriverManager.getConnection("jdbc:mysql://server/database", properties);

Вставка данных:

IQL iql = new IQL(con);  
iql.addTable("mytable");  
iql.setInsertRows("name %s", "register_date %d", "level %i");  
iql.insert("User1", "17.05.2017", 4);  
iql.insert("User2", "12.03.2016", 5);  
Statement st = iql.getStatement();

Сгенерирует следующее:

INSERT INTO `mytable`(`name`, `register_date`, `level`) VALUES ('User1', 1494968400, 4), ('User2', 1457730000, 5)

Обновление данных:

IQL iql = new IQL(con);  
iql.addTable("organisations");  
iql.setUpdateRows("name %s", "address %s");  
iql.update("New orgname", "New address");  
iql.whereId(112);  
PreparedStatement ps = iql.getStatement();
Сгенерирует следующее:
UPDATE `organisations` SET `name` = 'New orgname', `address` = 'New address' WHERE `organisations`.`id` = 112
при этом, если для операций обновления или удаления не указан where, то будет сгенерировано исключение

Пример выборки:

IQL iql = new IQL(con);
iql.addTable("domains").select("subdomain subdomain", "domain domain").where("domain %s", IQL.ISNTNULL);
iql.addTable("orgs").select("org_name name", "org_address address").where("org_name %s", IQL.LIKE, "%организация%");
iql.join(2, "id", 1, "org_id"); //присоединить к таблице №2 (orgs) таблицу №1 domains по полям id из orgs к org_id из domains
String SQL = iql.getSQL();

Создаст следующий SQL-код:

SELECT 
`domains`.`subdomain` AS `subdomain`, 
`domains`.`domain` AS `domain`, 
`orgs`.`org_name` AS `name`, 
`orgs`.`org_address` AS `address` 
FROM `orgs` 
JOIN `domains` ON `orgs`.`id` = `domains`.`org_id` 
WHERE 
`domains`.`domain` IS NOT NULL AND 
`orgs`.`org_name` LIKE '%организация%'

В общем, кому надо - используйте

 , , , ,

r0ck3r
()

Держите мой HelloWorld на Java

Собственно вот - мое первое приложение на Java и первый проект на GitHub (до этого писал только Web и гитхабом не пользовался)

Приложение - гуевый Wake-On-Lan, который умеет сохранять список компьютеров и позволяет выбрать сетевой интерфейс для отправки «магического» пакета

Почему я решил написать это приложение

Дело в том, что:

1) Я, являясь обладателем вендопланшета (не арм), не нашел приложений для WakeOnLan, которые бы корректно работали под офтопиком, а точнее нормально слали бы пакет, если в винде больше одного сетевого интерфейса

2) Хотел попрактиковаться в разработке на Java и получить комментарии многоуважаемых лоровцев, так как, повторюсь, это моя первая не Web разработка и я хотел бы выслушать критику насчет правильности реализации и понимания мной принципов построения графических приложения

Скриншот приложения: https://imgur.com/a/TyCxu

Репозиторий Github: https://github.com/r0ck3r/WoL

 , ,

r0ck3r
()

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