Легальные VPN-сервисы в РФ
В июле отправил официальный запрос в РКН с просьбой предоставить список VPN-сервисов, которые выполняют требования российского законодательства, но при этом позволяют обращаться к зарубежным ресурсам, официально не предоставляющим услуги в РФ.
Ведь обещали не блокировать сервисы, которые соблюдают законодательство РФ и не предоставляют доступ к ресурсам, которые запрещены в РФ.
Сегодня получил ответ:
Как-то так...
В июле отправил официальный запрос в РКН с просьбой предоставить список VPN-сервисов, которые выполняют требования российского законодательства, но при этом позволяют обращаться к зарубежным ресурсам, официально не предоставляющим услуги в РФ.
Ведь обещали не блокировать сервисы, которые соблюдают законодательство РФ и не предоставляют доступ к ресурсам, которые запрещены в РФ.
Сегодня получил ответ:
Обращение (вх. № 06-01-19-1740/16 от 15.06.2026) с просьбой предоставить список VPN-сервисов для использования ресурсов, которые не запрещены в РФ, но официально не предоставляют услуги в РФ, поступившее в Управление Роскомнадзора по Республике Татарстан (Татарстан) (далее по тексту – Управление) с Платформы обратной связи Единого портала государственных и муниципальных услуг, рассмотрено в рамках представленных полномочий.
Управление не располагает информацией об VPN-сервисах, удовлетворяющих условиям, указанным в обращении.
Рекомендуем знакомиться с новостями в области связи, информационных технологий на официальных сайтах Минцифры РФ (digital.ru) и Роскомнадзора (rkn.gov.ru).
Как-то так...
РКН и блокировки
Месяц назад потерял доступ из РФ к одному из серверов в другой стране (писал тут).
Из любопытства отправил запрос в РКН. Сегодня получил ответ.
Для себя вижу так: AmneziaVPN будет блокироватся независимо от целей (потому что машина использовалась для доступа к ресурсам для разработки ПО, которые вроде бы не запрещены в РФ).
Возможно я ошибаюсь.
Месяц назад потерял доступ из РФ к одному из серверов в другой стране (писал тут).
Из любопытства отправил запрос в РКН. Сегодня получил ответ.
Рассмотрели в рамках компетенции, установленной Положением о Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций, утвержденным постановлением Правительства Российской Федерации от 16.03.2009 № 228, Ваше обращение по вопросу отсутствия доступа к сетевому адресу (IP-адресу) 179.43.XX.XX и сообщаем.
Доступ к упомянутому IP-адресу ограничен в связи с размещением на нём информационных ресурсов, посредством которых обеспечивается доступ к информации или информационным ресурсам в сети «Интернет», доступ к которым ограничен на территории Российской Федерации: «Amnezia», «Tlist».
Дополнительно информируем, ограничение доступа к средствам обхода блокировок осуществляется с использованием оборудования технических средства противодействия угрозам (далее – ТСПУ) в порядке, предусмотренном п. 14 Правил централизованного управления сетью связи общего пользования, утвержденными постановлением Правительства Российской Федерации от 27.10 2025 № 1667, в рамках реагирования на угрозу безопасности функционирования на территории Российской Федерации сети «Интернет» и сети связи общего пользования (пп. «в» п. 4 Правил).
Для себя вижу так: AmneziaVPN будет блокироватся независимо от целей (потому что машина использовалась для доступа к ресурсам для разработки ПО, которые вроде бы не запрещены в РФ).
Возможно я ошибаюсь.
Про алгоритмы и костыли
Когда-то давно на одном сайте была поисковая строка и появилась задача: фильтровать поисковые запросы. Чтобы если ищут что-то непотребное - не выдавать результат.
Сначала попробовали завести массив регулярных выражений и фильтровать по нему. Массив этот стал расти и тупо перебор выражений стал занимать достаточно много времени и создавать заметную нагрузку на сервер. Нужно было другое решение.
В итоге родилось решение, которое выглядит довольно спорно, но на тот момент оно нас полностью устроило. Вместо перебора регулярных выражений мы стали нормализовывать поисковый запрос и на основе нормализованной версии просто проверять наличие флага в key-value базе (использовали тогда memcachedb, сейчас бы я взял redis).
Собственно основные споры вызывал алгоритм нормализации. Он выглядел примерно так:
Главный минус такого подхода - он работает со словами, и при изменении формы слова он даёт промахи. Но в тот момент это было не критично, а вот скорость нас порадовала.
Когда-то давно на одном сайте была поисковая строка и появилась задача: фильтровать поисковые запросы. Чтобы если ищут что-то непотребное - не выдавать результат.
Сначала попробовали завести массив регулярных выражений и фильтровать по нему. Массив этот стал расти и тупо перебор выражений стал занимать достаточно много времени и создавать заметную нагрузку на сервер. Нужно было другое решение.
В итоге родилось решение, которое выглядит довольно спорно, но на тот момент оно нас полностью устроило. Вместо перебора регулярных выражений мы стали нормализовывать поисковый запрос и на основе нормализованной версии просто проверять наличие флага в key-value базе (использовали тогда memcachedb, сейчас бы я взял redis).
Собственно основные споры вызывал алгоритм нормализации. Он выглядел примерно так:
// Приводим всё к нижнему регистру
$query = to_lower_case($query)
// Разбиваем на слова (отбрасывая все спецсимволы)
$words = split_to_words($query)
// Сортируем слова по алфавиту
$words = sort($words)
// Отбрасываем дубли
$words = uniq($words)
// Собираем нормализованный вариант
$normalized_query = join('_', $words)
Главный минус такого подхода - он работает со словами, и при изменении формы слова он даёт промахи. Но в тот момент это было не критично, а вот скорость нас порадовала.
Альтернативные мобильные платформы
Нашёл тут у себя старенькую Nokia 6300 4G, работающую на KaiOS 2.5. Вставил симку, зарядил, включил. Работает. Зашёл в магазин приложений - работает. Даже какие-то приложения обновились.
Устройство до сих пор интересное. Есть много простых игр, клиенты социальных сетей, приложения для чтения книг и офисных документов.
Для себя увидел только два минуса: разъём MicroUSB, который в эпоху Type-C выглядит устаревшим и неудобным, и всего 512MB RAM, из-за которых устройство сильно никуда не торопится.
Однако быстрый поиск показал что на отечественных маркетплейсах есть устройства мощнее (например Blackview N1000). А недостающее ПО если уж очень захочется можно и самому попробовать дописать. SDK довольно простой.
Нашёл тут у себя старенькую Nokia 6300 4G, работающую на KaiOS 2.5. Вставил симку, зарядил, включил. Работает. Зашёл в магазин приложений - работает. Даже какие-то приложения обновились.
Устройство до сих пор интересное. Есть много простых игр, клиенты социальных сетей, приложения для чтения книг и офисных документов.
Для себя увидел только два минуса: разъём MicroUSB, который в эпоху Type-C выглядит устаревшим и неудобным, и всего 512MB RAM, из-за которых устройство сильно никуда не торопится.
Однако быстрый поиск показал что на отечественных маркетплейсах есть устройства мощнее (например Blackview N1000). А недостающее ПО если уж очень захочется можно и самому попробовать дописать. SDK довольно простой.
Образование здорового человека
В Казанском университете на базе факультета журналистики работает студенческий телеканал "Универ ТВ". Не единственный, но один из немногих в России. У меня большое уважение вызывает ещё один факт: частные компании обеспечивают трансляцию этого канала сильно за пределами университета. Например Таттелеком транслирует его в составе основного пакета КТВ. Причём сразу в SD и HD.
А Радиотелеком добавил "Универ ТВ" в свой пакет эфирных каналов в DVB-T, транслируемый в крупных городах Татарстана. По-моему тут два уникальных для РФ факта: частный эфирный мультиплекс и студенческий канал в нём. Подозреваю что второе отчасти связано с тем что учредитель Радиотелекома сам начинал с факультета журналистики.
Т.е. у студенческого канала есть зрители сильно за пределами университета. Студенты не просто делают программы, они их делают для реального зрителя. По-моему всё это очень круто.
Считаю что таким и должно быть образование.
В Казанском университете на базе факультета журналистики работает студенческий телеканал "Универ ТВ". Не единственный, но один из немногих в России. У меня большое уважение вызывает ещё один факт: частные компании обеспечивают трансляцию этого канала сильно за пределами университета. Например Таттелеком транслирует его в составе основного пакета КТВ. Причём сразу в SD и HD.
А Радиотелеком добавил "Универ ТВ" в свой пакет эфирных каналов в DVB-T, транслируемый в крупных городах Татарстана. По-моему тут два уникальных для РФ факта: частный эфирный мультиплекс и студенческий канал в нём. Подозреваю что второе отчасти связано с тем что учредитель Радиотелекома сам начинал с факультета журналистики.
Т.е. у студенческого канала есть зрители сильно за пределами университета. Студенты не просто делают программы, они их делают для реального зрителя. По-моему всё это очень круто.
Считаю что таким и должно быть образование.
👍2
GNOME Commander 2
Некоторое время назад воскрес gnome-commander. Его переписали на rust, перенесли на GTK4, добавили плагинов. И неожиданно стало хорошо. Мне очень понравилось.
Обычно использую Krusader, но он выглядит как-то уж очень громоздко. Хотя конечно поддержка KIO и KPart это приятно. Но в GNOME Commander есть поддержка сетевых соединений в виде отдельного диалога с закладками. Мне этого достаточно. Ну и встроенный просмотрщик вполне функционален и без KPart.
Готовый пакет нашёл только в Сизифе (ребята из Базальт - молодцы), так что в Debian пришлось собирать из исходников. Но никаких проблем со сборкой не возникло и всё работает хорошо.
Вобщем рекомендую.
Некоторое время назад воскрес gnome-commander. Его переписали на rust, перенесли на GTK4, добавили плагинов. И неожиданно стало хорошо. Мне очень понравилось.
Обычно использую Krusader, но он выглядит как-то уж очень громоздко. Хотя конечно поддержка KIO и KPart это приятно. Но в GNOME Commander есть поддержка сетевых соединений в виде отдельного диалога с закладками. Мне этого достаточно. Ну и встроенный просмотрщик вполне функционален и без KPart.
Готовый пакет нашёл только в Сизифе (ребята из Базальт - молодцы), так что в Debian пришлось собирать из исходников. Но никаких проблем со сборкой не возникло и всё работает хорошо.
Вобщем рекомендую.
👀1
Midninght Commander и архивы
Я немного знаю как устроена работа с архивами в Midninght Commander. В разное время я добавлял поддержку форматов WIM и Brotli, а так же исправлял поддержку ARJ и ALZ. Так что думаю что могу рассказать про всё это.
За работу с архивами отвечают скрипты, которые на большинстве дистрибутивов расположены в /usr/lib/mc/extfs.d. Эти скрипты имеют довольно простой интерфейс:
Если какой-то метод не поддерживается то скрипт возвращает код возврата, отличный от нуля.
Хорошая новость в том что скрипты можно писать на любом языке. И сейчас есть скрипты на shell, python, perl, awk. Отсюда такой список зависимостей у mc.
Плохая: файлы в/из архива копируются по одному. Для solid-архивов (например rar, 7zip) на большом количестве файлов это приводит к заметному замедлению операций.
Ещё одна плохая новость: если архиватор запрашивает пароль или выдаёт ещё какой-то запрос - с большой долей вероятности получается дедлок.
Я немного знаю как устроена работа с архивами в Midninght Commander. В разное время я добавлял поддержку форматов WIM и Brotli, а так же исправлял поддержку ARJ и ALZ. Так что думаю что могу рассказать про всё это.
За работу с архивами отвечают скрипты, которые на большинстве дистрибутивов расположены в /usr/lib/mc/extfs.d. Эти скрипты имеют довольно простой интерфейс:
script list $arcname
script copyout $arcname $filename $dest
script copyin $arcname $filename $src
script rm $arcname $filename
script rmdir $arcname $dirname
script run $arcname $filename
script mkdir $arcname $dirname
Если какой-то метод не поддерживается то скрипт возвращает код возврата, отличный от нуля.
Хорошая новость в том что скрипты можно писать на любом языке. И сейчас есть скрипты на shell, python, perl, awk. Отсюда такой список зависимостей у mc.
Плохая: файлы в/из архива копируются по одному. Для solid-архивов (например rar, 7zip) на большом количестве файлов это приводит к заметному замедлению операций.
Ещё одна плохая новость: если архиватор запрашивает пароль или выдаёт ещё какой-то запрос - с большой долей вероятности получается дедлок.
❤2
Хитрые планы сотовых операторов
Есть у российского МТС такая довольно удобная штука: "Группа Семья". Идея в том что связь оплачивает один человек ("глава семьи"), а остальные участники ("члены семьи") пользуются услугами из пакета основного участника и сами ничего не оплачивают.
Случайно выяснил что если участник группы подаст заявление на перенос номера к другому оператору то он автоматически исключается из группы и переводится на тариф с помегабайтной(!) оплатой трафика.
Если вспомнить что процедура MNP занимает около восьми суток и требует чтобы в момент переноса баланс абонента был положительным получаем интересную историю: возможность отказать в переносе по техническим причинам (ноль или минус на балансе).
Восхищён находчивостью того кто это придумал.
Есть у российского МТС такая довольно удобная штука: "Группа Семья". Идея в том что связь оплачивает один человек ("глава семьи"), а остальные участники ("члены семьи") пользуются услугами из пакета основного участника и сами ничего не оплачивают.
Случайно выяснил что если участник группы подаст заявление на перенос номера к другому оператору то он автоматически исключается из группы и переводится на тариф с помегабайтной(!) оплатой трафика.
Если вспомнить что процедура MNP занимает около восьми суток и требует чтобы в момент переноса баланс абонента был положительным получаем интересную историю: возможность отказать в переносе по техническим причинам (ноль или минус на балансе).
Восхищён находчивостью того кто это придумал.
😁2
PWA это хорошо
Даже будучи тимлидом команды мобильных разработчиков я говорил что во многих случаях мобильные приложения - зло. Как минимум в тех случаях когда они являются по сути фронтендами для некоторого API: интернет-магазины, сервисы доставки и т.д. Их вполне можно заменить на PWA (Progressive Web App): по сути сайты в браузере, адаптированные к мобильным экранам.
При этом я считаю что удалять какие-либо приложения (ну кроме зловредных) из каких либо каталогов по политическим причинам - как минимум не правильно. И вот то что сейчас происходит - очень плохо. Даже не по тому что удалили какие-то приложения, а потому что создали прецедент и фактически признали приемлемость такой цензуры.
И вот тут снова на сцену выходят PWA. Для доставки их пользователям не нужны каталоги и значит и удаление из каталогов не так уж страшно. А ещё такие приложения не привязаны к конкретной ОС. И наши российские сервисы к этому приходят, хотя и не совсем по своей воле. Сначала веб-версии банковских приложений были адаптированы для мобильных браузеров. А теперь вот и наш национальный мессенджер стал работать в мобильных браузерах.
Даже будучи тимлидом команды мобильных разработчиков я говорил что во многих случаях мобильные приложения - зло. Как минимум в тех случаях когда они являются по сути фронтендами для некоторого API: интернет-магазины, сервисы доставки и т.д. Их вполне можно заменить на PWA (Progressive Web App): по сути сайты в браузере, адаптированные к мобильным экранам.
При этом я считаю что удалять какие-либо приложения (ну кроме зловредных) из каких либо каталогов по политическим причинам - как минимум не правильно. И вот то что сейчас происходит - очень плохо. Даже не по тому что удалили какие-то приложения, а потому что создали прецедент и фактически признали приемлемость такой цензуры.
И вот тут снова на сцену выходят PWA. Для доставки их пользователям не нужны каталоги и значит и удаление из каталогов не так уж страшно. А ещё такие приложения не привязаны к конкретной ОС. И наши российские сервисы к этому приходят, хотя и не совсем по своей воле. Сначала веб-версии банковских приложений были адаптированы для мобильных браузеров. А теперь вот и наш национальный мессенджер стал работать в мобильных браузерах.
👏1
Немного на злобу дня
Тут в чате родного жилого массива стали обсуждать то что 281-ФЗ запрещает рекламировать. Не удержался и высказался по этому поводу:
К сожалению все остальные варианты так или иначе со временем перестанут работать...
Тут в чате родного жилого массива стали обсуждать то что 281-ФЗ запрещает рекламировать. Не удержался и высказался по этому поводу:
Самый лучший VPN будут раздавать 20-го сентября на избирательных участках. По паспорту. Называется "Бюллетень". Если в нём ручкой проставить правильные настройки и опустить в урну то возможно все необходимые сервисы со временем заработают.
К сожалению все остальные варианты так или иначе со временем перестанут работать...
👍3😁1
WebDAV-сервер на коленке
Понадобился мне WebDAV-сервер и я опять столкнулся с тем что выбор готовых решений довольно ограничен. В итоге нагуглил dufs (название меня позабавило) и он мне понравился. Для себя увидел только один недостаток: отсутствие маппинга пользователей. Т.е. вот под каким uid/gid запустил - так под ним и будет читать/писать. Но в моих сценариях это не критично.
Запустил в контейнере. Если кому вдруг надо то вот мой docker-compose.yml:
И config.yaml:
Можно ещё добавить SSL, но в моём случае за это отвечает отдельный фронтенд.
Понадобился мне WebDAV-сервер и я опять столкнулся с тем что выбор готовых решений довольно ограничен. В итоге нагуглил dufs (название меня позабавило) и он мне понравился. Для себя увидел только один недостаток: отсутствие маппинга пользователей. Т.е. вот под каким uid/gid запустил - так под ним и будет читать/писать. Но в моих сценариях это не критично.
Запустил в контейнере. Если кому вдруг надо то вот мой docker-compose.yml:
services:
dufs:
image: sigoden/dufs
restart: always
ports:
- 5000:5000
environment:
DUFS_CONFIG: "/cfg/config.yaml"
user: "1999:1999"
volumes:
- "./logs:/logs"
- "./cfg:/cfg"
- "/volume1/Films:/data/Films"
И config.yaml:
serve-path: '/data'
bind: 0.0.0.0
port: 5000
path-prefix: /
hidden:
- 'tmp'
- '*.log'
- '*.lock'
- '.*'
auth:
- 'moose:[CENSORED]@/:rw'
allow-all: false
allow-upload: true
allow-delete: true
allow-search: true
allow-symlink: true
allow-archive: false
allow-hash: false
enable-cors: false
render-index: true
render-try-index: true
render-spa: true
log-format: '$remote_addr "$request" $status $http_user_agent'
log-file: /logs/dufs.log
compress: low
Можно ещё добавить SSL, но в моём случае за это отвечает отдельный фронтенд.
👍2🔥1
Простой мониторинг
Есть у меня потребность мониторить доступность всяких личных железок. Буквально проверять доступность по ICMP. В ряде случаев проверять TCP-порт. Долго использовал Zabbix, но для моих задач он казался слишком громоздким.
В итоге нашёл Uptime Kuma. Проект открытый. Написан преимущественно на JS. Можно скачать пакет для популярных дистрибутивов или docker-compose.yml. Я выбрал последнее.
Сам сервис умеет проверять доступность TCP-порта, отправлять HTTP/HTTPS-запросы и проверять ответы, и многое другое. Оповещения о доступности/недоступности так же может отправлять самыми разными способами. Есть даже поддержка нашего национального мессенджера. Я для себя настроил отправку сообщений в VK Messenger. Хосты можно объединять в группы, назначать им тэги.
Вобщем если требуется что-то простое то стоит попробовать.
Есть у меня потребность мониторить доступность всяких личных железок. Буквально проверять доступность по ICMP. В ряде случаев проверять TCP-порт. Долго использовал Zabbix, но для моих задач он казался слишком громоздким.
В итоге нашёл Uptime Kuma. Проект открытый. Написан преимущественно на JS. Можно скачать пакет для популярных дистрибутивов или docker-compose.yml. Я выбрал последнее.
Сам сервис умеет проверять доступность TCP-порта, отправлять HTTP/HTTPS-запросы и проверять ответы, и многое другое. Оповещения о доступности/недоступности так же может отправлять самыми разными способами. Есть даже поддержка нашего национального мессенджера. Я для себя настроил отправку сообщений в VK Messenger. Хосты можно объединять в группы, назначать им тэги.
Вобщем если требуется что-то простое то стоит попробовать.
👍1🔥1
Exclave Proxy client
Захотелось мне странного: аналог ocproxy на телефон. Морально приготовился писать своё решение, но в недрах F-Droid нашёл Exclave Proxy client. Это ровно то что нужно: умеет подключаться к различным серверам, поддерживая множество протоколов.
При этом умеет работать в режиме "Только SOCKS5-прокси", без перенаправления всего трафика устройства в туннель. Порт можно указать в настройках.
Т.е. можно подключаться к офисному серверу через какой-нибудь wireguard, указывать в настройках браузера локальный SOCKS5-прокси и ходить на внутренние ресурсы браузером, а весь остальной трафик будет ходить напрямую. При этом приложения, которые почему-то просят выключить VPN, не будут этого делать, так как он по сути не включен.
Захотелось мне странного: аналог ocproxy на телефон. Морально приготовился писать своё решение, но в недрах F-Droid нашёл Exclave Proxy client. Это ровно то что нужно: умеет подключаться к различным серверам, поддерживая множество протоколов.
При этом умеет работать в режиме "Только SOCKS5-прокси", без перенаправления всего трафика устройства в туннель. Порт можно указать в настройках.
Т.е. можно подключаться к офисному серверу через какой-нибудь wireguard, указывать в настройках браузера локальный SOCKS5-прокси и ходить на внутренние ресурсы браузером, а весь остальной трафик будет ходить напрямую. При этом приложения, которые почему-то просят выключить VPN, не будут этого делать, так как он по сути не включен.
👍1
IPv6 и будущее
Прошла новость что Китай к 2030-му году планирует 38% своего трафика гнать через IPv6. Беглый поиск в интернет дал такие результаты: в целом по миру 40-60% трафика идёт через IPv6. При этом в РФ на IPv6 приходится по разным оценкам от 10 до 15%.
Насколько я знаю в РФ из крупных провайдеров "из коробки" IPv6-адреса предоставляет только МТС и только на мобильном интернете. Протокол teredo в РФ не работает: соединение устанавливается, но трафик не ходит.
Впервые с IPv6-only сервисами я столкнулся ещё лет десять назад, когда наш сервис не мог доставить письмо пользователю из-за того что его сервер работал только по IPv6. С тех пор время от времени сталкиваюсь с подобным и в последнее время всё чаще.
Это я к чему: если смотреть в будущее то возможен такой сценарий: весь мир переходит на IPv6, а отдельная страна остаётся на IPv4 и оказывается в изоляции, формально имея доступ к глобальному интернету, но не имея доступа к IPv6-only ресурсам. И даже всякие блокировки не нужны.
Очень хочется чтобы этот сценарий не случился.
Прошла новость что Китай к 2030-му году планирует 38% своего трафика гнать через IPv6. Беглый поиск в интернет дал такие результаты: в целом по миру 40-60% трафика идёт через IPv6. При этом в РФ на IPv6 приходится по разным оценкам от 10 до 15%.
Насколько я знаю в РФ из крупных провайдеров "из коробки" IPv6-адреса предоставляет только МТС и только на мобильном интернете. Протокол teredo в РФ не работает: соединение устанавливается, но трафик не ходит.
Впервые с IPv6-only сервисами я столкнулся ещё лет десять назад, когда наш сервис не мог доставить письмо пользователю из-за того что его сервер работал только по IPv6. С тех пор время от времени сталкиваюсь с подобным и в последнее время всё чаще.
Это я к чему: если смотреть в будущее то возможен такой сценарий: весь мир переходит на IPv6, а отдельная страна остаётся на IPv4 и оказывается в изоляции, формально имея доступ к глобальному интернету, но не имея доступа к IPv6-only ресурсам. И даже всякие блокировки не нужны.
Очень хочется чтобы этот сценарий не случился.
Некоторые нюансы внедрения IPv6
Иногда кажется что IPv6 внедрить легко: получаем адреса, поднимаем у себя на сервере и добавляем AAAA-записи в DNS. Но это только начало.
В процессе внедрения IPv6 вылезает много всякого интересного. Например задача: рейт-лимиты в API с привязкой к IP-адресу. Для IPv4 тут проблем особых нет (ну кроме боли у тех кто сидит через провайдерский NAT). В случае IPv6 как минимум следует учитывать что:
- Teredo: не просто позволяет получить IPv6-адрес, но и на каждый IPv4-адрес предоставляет подсеть /96, которую разумно считать за один адрес.
- 6to4: так же позволяет получить IPv6-адрес, предоставляет сеть /48 на каждый IPv4. И здесь так же разумно будет при расчёте лимитов считать всю подсеть как один адрес.
Хранение в БД:
- В MySQL функция INET_ATON не поддерживает IPv6, вместо неё можно использовать INET6_ATON, которая поддерживает и IPv4 и IPv6, но возвращает уже не INT, а VARBINARY(16).
- В PostrgreSQL к счастью есть тип inet, созданный как раз для хранения сетевых адресов
Ну и отдельный привет тем кто хранит адреса как строки. У этих людей свой путь)
Иногда кажется что IPv6 внедрить легко: получаем адреса, поднимаем у себя на сервере и добавляем AAAA-записи в DNS. Но это только начало.
В процессе внедрения IPv6 вылезает много всякого интересного. Например задача: рейт-лимиты в API с привязкой к IP-адресу. Для IPv4 тут проблем особых нет (ну кроме боли у тех кто сидит через провайдерский NAT). В случае IPv6 как минимум следует учитывать что:
- Teredo: не просто позволяет получить IPv6-адрес, но и на каждый IPv4-адрес предоставляет подсеть /96, которую разумно считать за один адрес.
- 6to4: так же позволяет получить IPv6-адрес, предоставляет сеть /48 на каждый IPv4. И здесь так же разумно будет при расчёте лимитов считать всю подсеть как один адрес.
Хранение в БД:
- В MySQL функция INET_ATON не поддерживает IPv6, вместо неё можно использовать INET6_ATON, которая поддерживает и IPv4 и IPv6, но возвращает уже не INT, а VARBINARY(16).
- В PostrgreSQL к счастью есть тип inet, созданный как раз для хранения сетевых адресов
Ну и отдельный привет тем кто хранит адреса как строки. У этих людей свой путь)
🤓1
Полезная утилита: zswap-cli
При использовании zswap рано или поздно становится интересно оценить эффективность работы zswap. При использовании debugfs какую-то информацию можно получить командой:
Но как минимум не хватает информации о степени сжатия.
Вобщем поиск в интернет привёл меня к zswap-cli. В репозиториях Debian и AltLinux не нашёл, но сборка из исходников не вызвала каких либо проблем. Утилита позволяет настраивать zswap и смотреть статистику. В том числе о степени сжатия, реальном размере не сжатых данных в пуле и т.д.
Ссылка на github: https://github.com/xvitaly/zswap-cli
При использовании zswap рано или поздно становится интересно оценить эффективность работы zswap. При использовании debugfs какую-то информацию можно получить командой:
grep -r . /sys/kernel/debug/zswap
Но как минимум не хватает информации о степени сжатия.
Вобщем поиск в интернет привёл меня к zswap-cli. В репозиториях Debian и AltLinux не нашёл, но сборка из исходников не вызвала каких либо проблем. Утилита позволяет настраивать zswap и смотреть статистику. В том числе о степени сжатия, реальном размере не сжатых данных в пуле и т.д.
Ссылка на github: https://github.com/xvitaly/zswap-cli
👍1
Qt Book Reader 0.1.1
Опубликовал небольшое обновление своего пет-проекта. Это баг-фикс релиз. Из изменений могу отметить:
* Поправлены баги с оглавлением для некоторых FB2 и EPUB-файлов
* Небольшие исправления в диалоге настроек
* Корректное отображение версии приложения при сборке из пакетов
* Исправлено несколько утечек памяти
* Добавлена поддержка Qt 6.10+
* По просьбам пользователей с Ubuntu Forum изображения выравниваются по центру
* Небольшие оптимизации
Ссылки:
* github: https://github.com/moose-kazan/qbr
* PPA для LTS-версий Ubuntu: https://launchpad.net/~bulvinkl/+archive/ubuntu/ppa
Опубликовал небольшое обновление своего пет-проекта. Это баг-фикс релиз. Из изменений могу отметить:
* Поправлены баги с оглавлением для некоторых FB2 и EPUB-файлов
* Небольшие исправления в диалоге настроек
* Корректное отображение версии приложения при сборке из пакетов
* Исправлено несколько утечек памяти
* Добавлена поддержка Qt 6.10+
* По просьбам пользователей с Ubuntu Forum изображения выравниваются по центру
* Небольшие оптимизации
Ссылки:
* github: https://github.com/moose-kazan/qbr
* PPA для LTS-версий Ubuntu: https://launchpad.net/~bulvinkl/+archive/ubuntu/ppa
👍4
Книги для взрослых
Подарили мне сертификат в один книжный магазин. В числе моих приобретений есть книга по React.JS. Я хоть и неизлечимый бэкендщик, но давно хочу попробовать себя в разработке фронтенда.
Сильно повеселила метка "18+" на книге. Что этим хочет сказать цензор? Что разработка фронтенда полна наркомании? Или что фронтенд - удел содомитов? Или что React.JS это не православно и вообще бездуховно?
Теряюсь в догадках...
Подарили мне сертификат в один книжный магазин. В числе моих приобретений есть книга по React.JS. Я хоть и неизлечимый бэкендщик, но давно хочу попробовать себя в разработке фронтенда.
Сильно повеселила метка "18+" на книге. Что этим хочет сказать цензор? Что разработка фронтенда полна наркомании? Или что фронтенд - удел содомитов? Или что React.JS это не православно и вообще бездуховно?
Теряюсь в догадках...
😁1
451 градус по Фаренгейту
Обнаружил что если зайти из РФ на сайт каталога свободного ПО для Android F-Droid и попробовать открыть страницу приложения Outline или Tinc Mesh VPN то страница не открывается с ошибкой 451.
При желании можно найти и другие подобные страницы в этом каталоге. Но в мобильном приложении F-Droid такой цензуры нет и всё можно вполне успешно скачать и установить.
В 21-м веке книги не жгут. Пожароопасно и не экологично. Поэтому теперь просто блокируют доступ к ним.
Обнаружил что если зайти из РФ на сайт каталога свободного ПО для Android F-Droid и попробовать открыть страницу приложения Outline или Tinc Mesh VPN то страница не открывается с ошибкой 451.
При желании можно найти и другие подобные страницы в этом каталоге. Но в мобильном приложении F-Droid такой цензуры нет и всё можно вполне успешно скачать и установить.
В 21-м веке книги не жгут. Пожароопасно и не экологично. Поэтому теперь просто блокируют доступ к ним.
🔥1😁1👀1
Интересная идея
Понадобилось мне тут для себя написать небольшую утилиту. Надо было запустить демона с правами суперпользователя и время от времени посылать ему команды от простого пользователя.
Сначала стал думать над разделением инструмента на два бинарника: собственно демон и клиент, и организовывать взаимодействие между ними через D-Bus. Но моя лень очень настаивала что я не хочу разбираться с D-Bus и вообще делать его зависимостью.
В итоге переспав с задачей я пришёл к очень хорошему на мой взгляд решению: прикрутить веб-интерфейс к демону и слать команды через него. Не надо тянуть D-Bus, не надо писать отдельный UI. Сначала я подумал "чего ж никто раньше так не делал?", а потом вспомнил CUPS, который управляется через веб-интерфейс.
Вобщем на мой взгляд хорошая идея. Запомню и буду использовать.
Понадобилось мне тут для себя написать небольшую утилиту. Надо было запустить демона с правами суперпользователя и время от времени посылать ему команды от простого пользователя.
Сначала стал думать над разделением инструмента на два бинарника: собственно демон и клиент, и организовывать взаимодействие между ними через D-Bus. Но моя лень очень настаивала что я не хочу разбираться с D-Bus и вообще делать его зависимостью.
В итоге переспав с задачей я пришёл к очень хорошему на мой взгляд решению: прикрутить веб-интерфейс к демону и слать команды через него. Не надо тянуть D-Bus, не надо писать отдельный UI. Сначала я подумал "чего ж никто раньше так не делал?", а потом вспомнил CUPS, который управляется через веб-интерфейс.
Вобщем на мой взгляд хорошая идея. Запомню и буду использовать.
👍2🔥1