Обновить
4
0.2
Сергей@Semy

Пользователь

Отправить сообщение

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели115K

Современный мир пресыщен различной информацией, и в наше непростое время её важно уметь не только находить и сохранять. Многие наверняка заметили, что в на YouTube, кроме мусора, котиков и прочих бесполезных вещей (которые мы иногда не прочь посмотреть) есть масса полезного материала по самым различным темам. И иногда этот материал неплохо было бы сохранить себе на будущее, чтобы не зависеть от переменчивых настроений в мире.

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

Восстановление открытых файлов но удаленных c файловой системы linux

Время на прочтение2 мин
Охват и читатели35K
Всех с прошедшим новым годом!
В этой заметке я бы хотел поделиться как можно восстановить открытый файл в linux.

Предыстория


Зашел человек на канал посвященный debian в jabber и сказал что взломали его jabber-bot и выполнили команду:
$ rm -rf /*

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

ChatGPT без VPN за 10 минут (и установка нативного приложения)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели152K

Уверен, многие читатели Хабра знакомы с этим способом, ведь он существует не первый день. Чтобы сэкономить ваше время, я скажу всего два слова: comss DNS.

Все остальные - велком под кат :-)

Читать далее

Что такое Lua: почему стоит его попробовать и как встроить в программу на Go

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.2K

Lua — это лёгкий, быстрый и гибкий скриптовый язык, который появился в 1993 году. Он написан на C и чаще всего используется не как самостоятельный язык, а как встраиваемый инструмент для других приложений.

Если вы играли в World of Warcraft и устанавливали аддоны, вы уже сталкивались с Lua. Redis исполняет Lua-скрипты внутри себя. Lua используется в Nginx через модуль ngx_http_lua_module, который позволяет писать обработчики HTTP-запросов. В NeoVim плагины тоже можно писать на Lua. Короче говоря — язык не из популярных топов, но крайне полезен и встраиваем во многие инфраструктурные решения.

Я опишу главные особенности языка и приведу небольшой пример использования из Go.

Читать далее

Разработка DHCP-сервера на Python

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели5.2K

Привет, Хабр!

Сегодня мы рассмотрим, как создать собственный DHCP‑сервер на Python. Суть сервера проста — он динамически раздаёт IP‑адреса устройствам в сети, избавляя нас от головной боли статической конфигурации.

Суть сервера будет заключаться в том, чтобы «подставлять» IP‑адреса устройствам, заходящим в сеть. Сервер будет ловить DHCP‑запросы от клиентов, выбирать свободный IP из заранее подготовленного пула и подтверждать выдачу.

Читать далее

14 интересных фич Python (возможно, не совсем pythonic)

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели15K

Python — один из самых широко используемых языков программирования в мире. Однако из-за его простоты, позволяющей быстро сделать что-то, он остаётся также одним из самых недооценённых.

Если загуглить лучшие 10 продвинутых хитростей Python, то вы найдёте кучу постов или статей на LinkedIn с обзором тривиальных (но всё же полезных) вещей типа генераторов или кортежей.

Я пишу на Python уже двенадцать лет, и за это время нашёл кучу очень интересных, недооценённых, уникальных или (как может кто-то сказать) «не-pythonic» хитростей, позволяющих по-настоящему расширить границы возможного для Python.

Именно поэтому я решил собрать список из 14 лучших таких фич с примерами и дополнительными ресурсами на случай, если вы захотите изучить их глубже.
Читать дальше →

Звезда Пшибыльского: что в ней происходит?

Время на прочтение10 мин
Охват и читатели3.6K

Иногда под моими публикациями оставляют превосходные комментарии, причём читателя может привлечь какой-то второстепенный факт или сюжетный экскурс, лишь дополняющий статью. Такие комментарии мне особенно ценны, поскольку я вижу, что человек дочитал текст и воспринял его критически или эмоционально.

Один из таких комментариев оставил уважаемый @3epka к статье о поисках «острова стабильности» в глубинах таблицы Менделеева, высказавшись об астероиде Полигимния. А буквально вчера вечером я обнаружил ещё более резкий комментарий уважаемого @Panzerschrek с закономерным вопросом о том, существуют ли какие-либо естественные процессы, приводящие к возникновению элементов из Острова Стабильности. Я тоже задумывался о такой проблеме. Наука, растущая из сократовской майевтики и аристотелевского научного метода, основывается не только на опыте и наблюдении, но и на тщательном сравнении образцов с эталоном. Если же образец не вписывается в выборку, либо эталон нельзя смоделировать в лаборатории, то наука начинает пробуксовывать, чем то и дело не преминут воспользоваться уфологи, астрологи и креационисты.

Читать далее

Что такое Ansible и как применяется в DWH-проектах? Сравнение Ansible с Puppet, Chef, SaltStack

Время на прочтение11 мин
Охват и читатели4.4K

В статье рассказываем, что такое Ansible и как инструмент может применяться в проектах DWH: от автоматического развертывания и настройки компонентов до восстановления после сбоев и централизованного управления параметрами.

Сравниваем Ansible с другими инструментами для автоматизации управления инфраструктурой: Puppet, Chef, SaltStack.

Читать далее

go:linkname в Go

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2K

Привет, Хабр!

В этой статье рассмотрим //go:linkname — неофициальной, но невероятно мощной фиче Go, которая позволяет вызывать приватные функции и обращаться к закрытым переменным других пакетов.

Читать далее

Оптимизация Go map{-}{-}

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели1.7K

Хеш-таблица(мапа) — одна из самых популярных структур данных, потому что поиск по ключу происходит за O(1). Причем ключ может быть любым любым типом, элементы которого можно сравнивать (Comparable Trait).

Я столкнулся с тем, что мапа не такая быстрая по бенчмаркам на языке GO, хотя теоретическая сложность алгоритма О(1).

Давайте рассмотрим следующую задачу и способы ее решения.

Читать далее

Состав TLS-сертификата на примере «шестидневного» варианта от Let's Encrypt

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели1.9K

Посмотрим, как устроен современный TLS-сертификат со "сверхкоротким" сроком действия. В статье описано значение основных полей и ряд неочевидных особенностей, с этими полями связанных - формат серийного номера, SCT-метки и другие занимательные элементы.

Читать далее

Bash-скрипты, часть 6: функции и разработка библиотек

Время на прочтение9 мин
Охват и читатели329K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Занимаясь разработкой bash-скриптов, вы рано или поздно столкнётесь с тем, что вам периодически приходится использовать одни и те же фрагменты кода. Постоянно набирать их вручную скучно, а копирование и вставка — не наш метод. Как быть? Хорошо бы найти средство, которое позволяет один раз написать блок кода и, когда он понадобится снова, просто сослаться на него в скрипте.



Оболочка bash предоставляет такую возможность, позволяя создавать функции. Функции bash — это именованные блоки кода, которые можно повторно использовать в скриптах.
Читать дальше →

Используем Xray как VPN

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели71K

Так как я любитель selfhosted, у меня есть домашняя инфраструктура:

Orange Pi - медиасервер;

Synology - файлопомойка;

Neptune 4 - 3д принтер с веб интерфейсом и видео с камеры. И хотелось бы иметь безопасный доступ к ней снаружи через телефон и ПК, но при этом иметь выход в интернет не в РФ. Раньше для этих нужд я использовал OpenVPN, но теперь на него полагаться не стоит. Поэтому я начал изучать документацию к отличному инструменты от китайских товарищей - Xray!

Что понадобится:

Сервер с внешним IP с инфраструктурой. У меня - Orange Pi, далее - Bridge

Сервер, к которому хотим получить доступ - Server

Сервер вне РФ для выхода в интернет. Далее - Proxy

Клиент на ваш вкус. Далее - Client

Клиент и сервер на Linux - Xray-core, который можно поставить через оффициальный скрипт установки Xray

Клиент на андроид - v2rayNG

Еще клиенты можно найти в репозитории Xray-core

За базу берем файл конфигурации VLESS-TCP-XTLS-Vision-REALITY и начинаем читать документацию к Xray

Маршрутизация происходит на клиенте. Если клиент обращается к домену xray.com, например, то направляем траффик в Bridge, а для всех остальных соединений - в Proxy. Затем Bridge направляет траффик к Server, если клиент обращался к server.xray.com.
Выглядит так:

Читать далее

Поддержка AmneziaWG в Wiresock Secure Connect: маскировка WireGuard-трафика или избыточность?

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.3K

В каком-то смысле эта статья является продолжением цикла материалов о реализации WireGuard-клиента на базе Cloudflare BoringTun и пользовательского пакетного фильтра на Windows. В этой статье мне еще раз хотелось бы поговорить о блокировках WireGuard-протокола и имеющихся возможностях по противодействию этим ограничениям. Одним из таких решений является AmneziaWG — надстройка над WireGuard, созданная в рамках проекта Amnezia VPN. В этом материале мы подробно разберём её особенности, подход к реализации и практическую применимость.

Читать далее

lazyjournal — ленивый интерфейс для поиска и анализа логов

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели3.1K

Ранее, я уже писал статью о различных способах, которые мне приходилось использовать для чтения логов, и к какому решению в итоге пришел. Хотя прошло не так много времени, с тех пор приложение не переставало развиваться. Узнав о том, что на Хабре проходит сезон Open source, мне показалось это отличным поводом подчеркнуть, что именно стало причиной для создания данного инструмента, а также рассказать немного подробнее про основные и новые функции.

Читать далее

Сравнение Go и Python для веб-скрейпинга

Время на прочтение9 мин
Охват и читатели5.1K

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

Покоряем сетевой стек Linux: декапсулируем пакеты с помощью eBPF на скорости 6Mpps+

Время на прочтение15 мин
Охват и читатели7.5K

Когда переход на VXLAN в облачных сетях грозил нарушить работу системы анализа трафика, нам нужно было найти решение, позволяющее сохранить точный сбор статистики при экстремальных нагрузках и измененной структуре заголовков пакетов. Я — Александр Шишебаров, старший разработчик в команде сетевых функций облака Selectel. Разрабатываю все, что связано с сетью: балансировщики, виртуальные роутеры, сети, глобальный роутер и так далее.

В этой статье рассказываю о том, как мы использовали eBPF для перехвата и декапсуляции VXLAN-пакетов прямо в ядре, обеспечив корректный сбор статистики без значительных изменений в архитектуре системы. Разберем, какие требования привели нас к этому решению, как его внедряли и каких результатов удалось достичь. Также расскажу, что такое eBPF, как работает технология, как начать с ней работать и на каких этапах сетевого стека Linux можно перехватывать пакеты с ее помощью. Подробности под катом!
Читать дальше →

Мониторим потребление памяти в Linux-системе

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели8.8K

Сколько себя помню, меня всегда привлекали счётчики памяти в Linux: смотришь в условный htop – в плане потребления CPU вроде всё +/- понятно, а вот память всегда считалась как-то не так, как ты это на первый взгляд ожидаешь, и долгое время у меня было довольно наивное и ошибочное представление о механизмах её работы.

Со временем некоторые вещи прояснялись, приходило понимание, как именно оно работает под капотом (до определённой степени). В какой-то момент возникла рабочая необходимость понять, куда уходит память на реальной системе – и этот случай в очередной раз показал, что местами оно устроено довольно неочевидно, и на этот вопрос не всегда просто дать ответ. Ну а помимо рабочей необходимости у меня дома давно стоит сервер, обвешанный метриками, и всегда хотелось высветить себе их в понятной форме, чтобы потом в реальном времени наблюдать, как ведёт себя система, когда в ней происходят те или иные процессы.

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

Читать далее

FreeBSD. Условная маршрутизация средствами PF

Время на прочтение13 мин
Охват и читатели11K
  1. Файрвол PF в ОС FreeBSD
  2. FreeBSD. Фильтрация трафика PF
  3. FreeBSD. трансляции, тэги и якоря в PF
  4. FreeBSD. Условная маршрутизация средствами PF <- Вы здесь
  5. FreeBSD. Путь сетевого пакета внутри ядра


Введение


В предыдущих статьях мы разобрали базовые элементы конфигурации PF. Создали конфигурации, способные защитить сервер в Интернет и простейший офис.


В этой статье разберем возможности PF и FreeBSD в части продвинутой маршрутизации. Policy Based Routing (PBR), Source Based Routing (SBR), условная маршрутизация, маршрутизация на основе политик, все эти понятия, по сути, равнозначны и описывают одну возможность. Выбирать маршруты, либо таблицы маршрутизации для трафика на основе правил фаервола.


Можно, к примеру, отправить разные локальные сети через разных провайдеров, либо устроить распределение трафика между ВПН каналами. Рассмотрим оба эти варианта.


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

Читать дальше →

Чиним замедление YouTube на уровне роутера

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели419K

Всех категорический приветствую. Буквально первого августа, прямо в ночь, стал у меня жутко лагать YouTube. Естественно, мне это сильно не понравилось. Ну, что же, давайте разбираться, почему и как это исправить в условиях моей личной сети.

Что случилось?

Хорошо описано произошедшее здесь, на Хабре. Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI). И если это googlevideo.com то начинают твориться "интересные вещи". Можно проверить это локально коммандами из статьи.

$ curl https://speedtest.selectel.ru/100MB -o/dev/null

Читать далее

Информация

В рейтинге
2 644-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность