Задать вопрос
  • Какой оптимальный способ попасть в домашнюю сеть снаружи?

    Vamp
    @Vamp
    Сергей, да. Причем девайсы соединяются непосредственно друг с другом, если такая возможность есть. Например, если у одного из девайсов белый ip, либо если удалось пробить NAT. Так что наличие и отсутствие белого ip сильно роли не играет. Если все же прямой коннект недоступен, то трафик (зашифрованный) идёт через публичный промежуточный релейный сервер, принадлежащий tailscale/zerotier.

    В моем случае коннект между рабочим и домашним компьютером идёт через варшавский релей сервер tailscale. Скорость не очень, но зато работает из коробки без дополнительных настроек. Мне хватает. Если вдруг tailscale начнет блокировать свои релеи для пользователей из РФ, то я просто куплю VPS в РФ и сделаю из него релей сервер. Либо на домашний комп куплю у провайдера услугу "белый статический ip" и сделаю релей сервер из него. Тогда и пинги, и скорость будут получше. Добавление своих релей серверов поддерживается из коробки как у tailscale, так и у zerotier.
    Написано
  • Какой оптимальный способ попасть в домашнюю сеть снаружи?

    Vamp
    @Vamp
    Сергей, они практически одинаковые. Различия только в деталях. Для себя я выбрал tailscale, потому что у меня на работе полностью обрезан UDP. А tailscale, в отличии от zerotier, умеет работать через TCP.

    Tailscale под капотом использует wireguard, который РКН отлично умеет определять и блокировать. У zerotier своя собственная реализация шифрованного туннеля, так что вероятность блокировки существенно ниже.

    Zerotier имеет пакет под RouterOS, так что можно легко и просто поднять zerotier ноду на роутерах от mikrotik. Это плюс, но не очень большой, так как для шифрования достаточно широкой полосы нужно мощное железо, которым домашние версии роутеров не могут похвастать. Пакет под OpenWRT есть у обоих.

    Контрольную панель zerotier можно захостить на своём оборудовании (на выделенном сервере, например), тем самым замкнув всю инфраструктуру на себя. У tailscale такая фича официально не поддерживается, но с костылями и некоторыми сложностями это всё же возможно (см headscale).

    Оба решения развиваются компаниями из США, поэтому могут быть блокировки РФ с их стороны. Tailscale уже применяет ограничения на своём apt репозитории (приходится пускать трафик к нему через прокси), но контрольная панель всё ещё работает. Здесь zerotier выглядит выгоднее с возможностью перенести панель управления сетью к себе.

    В случае проблем дебажить tailscale проще, так как у него логи понятнее и документация удобнее.
    Написано
  • Что за "ключи шифрования" которые требуют у администрации Телеграм?

    Vamp
    @Vamp
    Я это всё к тому, что существование каких-то там репозиториев на гитхабе вовсе не гарантия, что приложения в сторах, которыми пользуются буквально все, не собраны из кода с некоторыми "дополнениями".

    Никита Геннадич, специально для Вас телеграм составил инструкцию как самостоятельно проверить, что бинарник из плэймаркета/апстора, которым пользуются буквально все, в точности соответствует каким-то там исходникам на гитхабе.

    Занятно. что код якобы "оффициального" клиента для ведра лежит в репе какого-то ноунэйма без всяких упоминаний связи с организацией: https://github.com/DrKLO

    Этот "ноунэйм" - победитель конкурса на создание приложения телеграм на андроид. Нет ничего удивительного в том, что код находится в репозитории автора.
    Написано
  • Почему axios не передает IP клиента на сервер API?

    Vamp
    @Vamp
    Станислав, чтобы убрать эту ошибку закомментируйте директивы limit_req или увеличьте лимиты для зоны one.
    Написано
  • Низкая скорость отдачи с VPS на конкретный хост?

    Vamp
    @Vamp
    dnstkrv, три варианта:

    1. Маршрут кривой. Один из хопов на маршруте перегружен или сбоит, из-за чего скорость просела.
    2. ТСПУ.
    3. Ростелеком продал вам несимметричный канал. То есть скорость аплоада по тарифу в два раза меньше даунлоада.

    Я больше склоняюсь к 1. Но и 2 может относиться к 1, так как ТСПУ - тоже хоп на маршруте и тормоза могут быть там.

    Попробуйте арендовать VPS в другой локации или у другого хостинга. Если маршрут поменяется, но тормоза останутся, то останется 2 или 3.
    Написано
  • Низкая скорость отдачи с VPS на конкретный хост?

    Vamp
    @Vamp
    Трейс PC1->PC2 в два раза короче, чем в обратную сторону. Потерь пакетов нет, пинг 6 мс.

    Трейс PC2->PC1 выглядит хуже, но не смертельно.

    Раз уж речь про домашний ПК, то велика вероятность, что скорость режет ТСПУ ростелекома. Попробуйте повторить тест, скачав/закачав файл через SSH и по HTTP.
    Написано
  • Как правильно должно быть развернута инфрастуктура с Docker, Kubernetes?

    Vamp
    @Vamp
    UlarSur, могу посоветовать официальные гайды. Я начинал именно с них.

    https://docs.docker.com/guides/
    https://kubernetes.io/docs/tutorials/
    https://docs.redhat.com/en/documentation/openshift...

    А дальше гуглить примеры и бэст практики. Какие-то конкретные посоветовать не могу.
    Написано
  • Как правильно должно быть развернута инфрастуктура с Docker, Kubernetes?

    Vamp
    @Vamp
    Просто я не совсем понимаю так правильно и так делается ?

    UlarSur, правильный подход тот, в котором у команды больше опыта и компетенций. Не стоит ломать существующую инфру ради новомодных технологий.

    Допустим я беру физический сервер, накатываю на него линукс, там устанавливаю доккер и устанавливаю контейнеры, этого достаточно ?

    Обычно так и делается, да.

    Допустим я развернул заббикс на сервере с помощью контейнеров, как в данном случае ведется масштабирование сервера ?

    Никак. Докер сам по себе не влияет на масштабирование, балансировку и отказоустойчивость. Это всего-навсего альтернативный способ запуска процесса в системе. Точно такой же как и через systemd юниты, например. Всем остальным занимаются оркестраторы - kubernetes, openshift. Вот они уже решают на какой ноде запустить контейнер, в каком количестве, как балансировать поступающий трафик на них, где переподнять контейнеры с упавшей ноды и так далее.

    Как увеличивается выделенный объем данных ?

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

    Как снимается бэкап ?

    Обычно если у приложения есть какие-то данные, то их монтируют через volume в какую-нибудь папку на хосте, которую уже потом можно забэкапить как обычно вы бэкапите любую другую папку. Например, docker run -v /opt/docker/nginx:/var/log/nginx nginx:1.25.3-alpine Nginx будет писать в свою папку /var/log/nginx, которую он видит внутри контейнера. А снаружи на хосте эти логи будут доступны в папке /opt/docker/nginx
    Написано
  • Как дождаться завершения процесса, запущенного через proc_open?

    Vamp
    @Vamp
    хмммм, может ли приложение закрыть свои STDIN/STDOUT до своего завершения?

    AUser0, может. Обычно это делают демоны, которые хотят "отсоединиться" от терминала и продолжить работу в бэкграунде. Сомневаюсь, что ТС запускает демона, поэтому дождаться закрытия STDIN/STDOUT - это отличный вариант.
    Написано
  • Почему происходит два пустых вывода при чтении с клавиатуры?

    Vamp
    @Vamp
    RobinBobinBarabek, потому что System.out.println добавляет свой собственный перевод строки в дополнении к вашему.
    Написано
  • Что делать, если YandexBot/3.0 шлет запросы с 1251 url ecnode?

    Vamp
    @Vamp
    Andry, не нужно отключать. Соберите список таких ссылок и сделайте 308 редирект на правильную версию. Так вы не потеряете трафик из поисковика и с других сайтов, на которых расположены ваши старые ссылки.
    Написано
  • Есть ли в java оператор аналогичный ?: в php?

    Vamp
    @Vamp
    mitaichik, рано или поздно и такой сахар появится в java. Но надеюсь, что сделают как в котлине.
  • Как получить доступ к серверу за NAT-ом?

    Vamp
    @Vamp
    Sanes, окей, как знаете ¯\_(ツ)_/¯
    В Китае наверное тоже так думали...
  • Как получить доступ к серверу за NAT-ом?

    Vamp
    @Vamp
    Sanes, эта цитата никак не опровергает мой тезис. Да, в целях борьбы с запрещёнными ресурсами, будут блокироваться VPN протоколы.

    VPN-протоколы могут подпадать под ограничения Роскомнадзора

    Вот эта фраза четко и недвусмысленно даёт понять, что у РКН есть техническая возможность детектировать и блокировать VPN протоколы.
  • Как получить доступ к серверу за NAT-ом?

    Vamp
    @Vamp
    va_k, Sanes, я так понимаю, вам двоим было лень почитать новость по ссылке, что я давал.

    Поэтому специально для вас цитата с сайта минцифры:

    Москва, 17 октября 2023 года – Компании, которые используют в своей работе VPN-сервисы для удалённого доступа сотрудников или объединения серверов в одну сеть, могут испытывать трудности из-за блокировок запрещённых ресурсов. VPN-протоколы могут подпадать под ограничения Роскомнадзора, но блокировку можно снять, если сервис нужен для рабочих целей.

    Что делать, чтобы снять ограничения
    Если компания сталкивается с трудностями при работе с VPN, нужно обратиться в Роскомнадзор.

    ...

    Что указать в обращении:

    • название компании
    • IP-адреса
    • типы используемых VPN-сервисов и протоколов


    Роскомнадзор проверит информацию и внесёт IP-адреса компании в «белый список», разблокировав для них доступ к VPN.
  • Как получить доступ к серверу за NAT-ом?

    Vamp
    @Vamp
    Sanes, уже год как РКН тестирует блокировку VPN протоколов - время от времени в сети появлялись сообщения, что отваливается то openvpn, то wireguard, то ещё что. Причём именно протокол блокировался, а не какой-то конкретный VPN сервис.

    А теперь вот официально белые списки подъехали: https://habr.com/ru/news/768130/
  • Как на самом деле работает параллелизм?

    Vamp
    @Vamp
    Sazoks, под user-level тредом на этой картинке понимается инстанс класса threading.Thread (на примере библиотеки threading в Python), а под kernel-level понимается тред, которая создаёт сама операционная система (далее я буду такие треды называть "нативными").

    Если питоновская библиотека threading на каждый инстанс класса threading.Thread создаёт нативный тред (вариант b на картинке), то здесь можно говорить о настоящей многопоточности и параллельном выполнении кода (так как ОС шедулит только свои нативные потоки на разные ядра процессора и знать не знает ни про какие threading.Thread объекты).

    Но если на все инстансы threading.Thread имеется только один нативный тред (вариант а), то такая программа будет считаться однопоточной, так как в любой момент времени будет работать только один инстанс threading.Thread. Это как раз и есть грин треды. Для ОС существует только один тред, и пользовательский код, который в нём выполняется, уже сам решает в каком порядке и как долго будет выполняться код из всех имеющихся в программе объектов threading.Thread.

    Я плохо знаю python, но насколько я понял, в нём нет настоящей многопоточности. То есть питоновские треды работают по модели грин тредов (вариант а с картинки).

    На самом деле ваша картинка вносит путаницу, так как использует термин kernel space не совсем правильно. На картинке имеется ввиду, что процессы и kernel-level ("нативные" в моём описании) треды - это структуры, которые создаёт и которыми управляет сама ОС, а не то, что эти треды выполняются в привилегированном режиме, согласно упоминаемой мной кольцевой архитектуре безопасности.