2024-05-08

Самый простой способ организовать чат в сети

Как можно быстро послать сообщение в сеть и получить ответ? Например можно сформировать широковещательные UDP пакеты которые будут принимать все пользователи локальной сети. UDP (User Datagram Protocol) это протокол для посылки сообщений без гарании получаения.

Одним из самых простых способов принимать UDP сообщения из сети это воспользоваться командой "socat - udp-recv:2000". Эта команда будет выводить на экран все широковещательные сообщения на порт 2000 принимаемые вашей сетевой картой. 

Но чтобы принимать сообщения кто-то должен их сначала послать. Для того чтобы послать широковещательное сообщение в сеть в другом терминале запускаем "socat - UDP-DATAGRAM:255.255.255.255:2000,broadcast". Все что вы набираете на клавиатуре в этом окне будет упаковываться в UDP пакеты и отправится в сеть.

В первом терминале будет отображаться все что вы будете набирать во втором. Остальные пользователи сети если они будут слушать сеть также увидят сообщение которое вы послали и смогут послать сообщение вам.

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

Посколько в качестве транспорта используются пакеты UDP то гарантии получения сообщения тоже не предусмотрено.

 

Оставить комментарий

 
  2024-04-29

Как открыть VNC сессию на компьютере с Ubuntu

Каждый раз ищу эту инструкции и каждый раз удивляюсь, почему я до сих пор не добавил ее в блог?

Дано: у меня есть компьютер с Ubuntu который я умею будить дистанционно. На компьютере крутиться Ubuntu и я могу подключиться к нему через внутренний адрес OpenVPN. 

Задача: помимо консольных приложений я хочу запускать на нем также GUI приложения. Конечно, можно запускать приложения удаленно показывая их через локальный X11 сервер - Ubuntu позволяет это делать с легкостью, но проблема в том что я хочу запускать приложения полностью локально чтобы можно было запустить приложение и отключиться. Кроме того, трафик X11 сервера достаточно интенсивный и приложения запущенные таким образом основательно тормозят.

Решение:

Поэтому есть способ лучше - при помощи команды x11vnc. X11vnc это приложение которое транслирует текущую X11 сессию в VNC сессию.

Запускается сессия при помощи следующей команды:

x11vnc -display :0

После чего я просто подключаюсь к GUI сессии при помощи любого VNC клиента, например TightVNC

Важно иметь ввиду что способ будет работать только если X11 сессия уже авторизована, то есть компьютер уже включен и разблокирован!

 

Оставить комментарий

 
  2024-04-26

Страничка для создания встреч в google calendar

В Гугл Календаре теперь появилась возможность создавать страничку при помощи которой другие люди могут букать слоты в вашем календаре. То что раньше делал только Calendly теперь умеет обычный Календарь. Подозреваю, теперь Calendly придется сильно напрячься чтобы оставаться на рынке.

 

 

Оставить комментарий

 
  2024-04-07

Цифровая гигиена

Все мы используем пароли, без паролей в наше время не обойтись.

Как проверить ваш пароль на безопасность? Можно воспользоваться каким нибудь сервисом для проверки паролей например haveibeenpwned.com он подскажет где, когда и куда ваши пароли утекли. Но что-то мне страшновато передавать мой пароль на какие-то непонятные сайты, которые их собирают с непронятными целями.  Где гарантия что при проверке паролей создатели сервиса не проверят ваши пароли еще на каких нибудь сайтах, чтобы так сказать, проверить, нет ли у вас так чего интересного? 

Есть ли способ проверить был ли пароль скомпрометирован и при этом не передавать сам пароль третим лицам? Такой способ существует.

Для этого можно проверять не сам пароль, а его цифровую подпись. Алгоритм получается следующий. 

1. Создаем sha1 подпись интересуемого пароля, например qwerty123:  echo -n "qwerty123" | openssl sha1

2. От полученного хеша SHA1(stdin)= 5cec175b165e3d5e62c9e13ce848ef6feac81bff берем первые пять цифр подписи 5cec1

3. Полученные символы подставляем в конец API вызова https://api.pwnedpasswords.com/range/ получим  https://api.pwnedpasswords.com/range/5cec1

Сайт выводит нам все оставшиеся части хешей которые начинаются с данной комбинациии символов. Если мы находим среди этих комбинаций нашу 75b165e3d5e62c9e13ce848ef6feac81bff, значит наш пароль скомпрометирован!

Для пароля qwerty123 мы видим значение 75B165E3D5E62C9E13CE848EF6FEAC81BFF:4880569 - это значит что в базах данных со скомпрометированными паролями на данном сервисе он встречается почти пять миллионов раз!

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

PS. если вы хотите, чтобы команда не оставалась в истории командной строки в linux достаточно начать ее с пробела " echo -n "qwerty123" | openssl sha1".

 

Оставить комментарий

 
  2023-11-24

Как сделать checkbox в markdown

Чекбоксы - мегополезная штука при редактировании текстов на языке markdown. Можно, например, составлять списки дел и помечать сделанное в обычном текстовом файле. Пустой чекбокс выглядит в markdown как [ ] а отмеченный как [x].

Поскольку я веду заметки используя markdown, то часто составляю маркированные списки с чекбоксами. К сожалению, других вариантов, кроме отмеченного и не отмеченного чекбоксов в markdown нет, а мне хотелось бы иметь больше вариантов, например чекбокс который неактивен, или как-то еще выделить таск, который не получится сделать, например отметить его крестиком а не галочкой.

Оказывается, у github есть расширение спецификации markdown и можно воспользоваться кодами типа :white_check_mark: или :negative_squared_cross_mark: чтобы получить более интересные комбинации.

Существует проект, который показывает все возможные иконки, которые можно напечатать подобным образом.

К сожалению, в Gitlab эти иконки работают не все, но большинство тоже работают.

Проверил поддерживаются ли они в IntelliJ — облом, не поддерживаются. Obsidian тоже не понимает этого расширения. Microsoft Visual Code тоже не понимает. Надеюсь, в будущем поддержка будет добавлена, уж больно полезная эта фича.

Upd: в принципе расширения разметки не нужны, все эти иконки это Unicode символы, которые можно и как есть использовать, например вот так:  ✅ ❌ ✔️. Так что поддержки можно и не ждать а уже сразу начать использовать.

 

Оставить комментарий

 
  2023-07-22

Как убрать сториз в Telegram

Только я настроил Telegram так чтобы он был максимально неотвлекающем, так в нем появились сторисы. Сторисы мне совсем не интересны, но осуждать Дурова за эту штуку я не имею права — сторисы это дешевый дофамин и самый простой способ принести больше денег в проект. Сотрудникам нужно платить, а быстрые сообщения без рекламы сами себя не монетизируют. 

Но мне сторисы не нужны, поэтому первое, что захотелось сделать, отключить их нафиг.

К сожалению способа, как полностью отключить Stories в Telegram я не нашел, — в настройках такой опции нет. Однако, можно убрать их по одному для каждого сторисомейкера:

  • Удерживайте палец на кружочке со сториз
  • Выберите "Скрыть истории"
  • Повторите действие для всех сториз в "шапке".

После того как все сторисы убраны, Telegram опять выглядит как и раньше.

 

Оставить комментарий

 
  2023-06-06

Получение SMS сообщений в Telegram

Иногда бывает нужно пересылать входящие SMS сообщения в Telegram. Раньше в Play Market было полно приложений умеющих это делать, но последнее время они куда-то все подевались. Возможно, дело в искуственных ограничениях подобных приложений самим Play Market, возможно еще в чем-то.

К счастью, в Android можно установить приложения не только из Play Market. Я нашел на github вот такое простое приложение. Сайт приложения не открывается, но само приложение можно скачать с github и оно прекрасно работает и без сайта.

Приложение имеет максимально простой пользовательский интерфейс и требует для работы всего три параметра - ключ робота, ID канала и номер телефона.

Ключ робота выдается служебным роботом @BotFather, этот робот создает токены авторизации для всех остальных роботов в Telegram.

С ID канала интереснее. С роботами в Telegrаm можно работать напрямую а можно добавить робота в свою группу и взаимодействовать с ним оттуда. В данном случае подразумевается именно второй вариант.

Создаем новую группу в Telegram, добавляем в нее помимо себя, только что созданного робота. Чтобы узнать ID чата нужно кратковременно добавить в чат еще одного робота @RawDataBot - этот робот покажет нам ID чата которое и нужно использовать при настройке приложения. После того как мы узнали id чата робота @RawDataBot можно из чата удалить.

В качестве номера телефона я указал свой основной телефон.

Если все настроено правильно все новые SMS сообщения начнут приходить в созданный Telegram чат.

 

Оставить комментарий

 
  2021-04-22

Wine в Docker

Есть много способов запустить Windows программу на Linux или MacOS - можно установить виртуальную машину, например в VirtualBox, можно запустить исполнимый файл при помощи Wine. 

Оказывается, можно также запустить Windows приложение в специально подготовленном Docker контейнере, в котором уже установлен Wine.

На мой взгляд, способ более чем интересный.

Добрые люди уже собрали все зависимости и выложили на docker.hub - вот ссылка.

 

 

 

Оставить комментарий

 
  2021-06-19

OpenVPN за пять минут

В России очередной раз запретили сервисы VPN. Про бесполезность подобных запретов говорить бесполезно, потому что для того чтобы настроить свой собственный OpenVPN сервер достаточно пяти минут. Для этого есть удобный скрипт.

1. Регистрируем любой VDS сервер c линксом. Услуга платная но не сильно дорогая. Можно поднять инстанс на AWS, или на любом другом интернет провайдере за пределами нашей скрепной страны. На linode.com самый дешевый хостинг стоит 5 долларов в месяц. 

2. Заходим по ssh на только что созданный сервер и запускаем:

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

следуем инструкции - в результате на вашем сервере будет работающий openvpn сервер и файл client.ovpn для настройки первого клиента. Для создания новых файлов конфигурации для клиентов скрипт openvpn-install.sh нужно запустить еще раз.

3. Копируем готовый client.ovpn на ваш компьютер или мобильный телефон и поднимаем соединение при помощи любого openvpn клиента.

Под Андроид можно использовать вот этот клиент. Под Windows - вот этот.

Как только соединение успешно поднято весь трафик будет идти через ваш сервер в сети и ваш IP адрес будет определяться не как IP вашего Интернет провайдера а как IP адрес вашего сервера в сети.

 

Оставить комментарий

 
  2021-06-08

Перенос почты между imap почтовыми ящиками

После переезда на новый сервер встал вопрос как перенести письма со старого сервера на новый. Не скажу, что там было много полезного, но на всякий случай никогда не мешает иметь копии архивных документов из прошлого.

Стал думать как это сделать. Перенос папки с почтой на локальном диске оказался не самым рабочим вариантом - все файлы копировать было стремно а по папкам скопировать не удалось. 

Ни одной полезной linux утилиты я не нашел, зато попались несколько платных, не внушающих доверия.

В результате проблема решилась банальнейшим образом - поскольку оба сервера у меня живые - просто выделил папки в Thunderbird которые нужно было перенести на новый сервер и перетащил их на новый аккаунт! Вот так просто!

Все благополучно перенеслось! Это был последний шаг, необходимый мне для завершения процесса переезда, теперь старый сервер можно благополучно погасить и не платить в два раза больше за хостинг!

Кстати, очень рекомендую linode - пользуюсь этим хостинг провайдером уже много лет и мне у них все нравится! За пять долларов в месяц вы получите полноценный виртуальный выделенный сервер для своих проектов, с 1 GB RAM и 32 GB дискового пространства, для небольшого пет проекта вполне достаточно.

 

Оставить комментарий