• Какой роутер взять домой чтоб был гибкий к настройке?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Удобный и гибкий - Кинетик
    Непривычный в настройке но супер гибкий - микротик
    Ответ написан
    5 комментариев
  • Как перенести сервер windows на proxmox?

    @Drno
    Ну как долгий, но надежный вариант -
    снять образ виртуалки с помощью clonezilla \ rDriveImage
    создать новую виртулаку
    восстановить образ
    Ответ написан
    1 комментарий
  • Как из docker контейнера стучаться в другие сети?

    @mxelgin
    Чтобы из Docker-контейнера обращаться к другим сетям или сервисам, нужно учесть несколько моментов. Вот основные шаги и рекомендации:

    1. Подключение к внешним сетям
    Если вы хотите, чтобы ваш контейнер мог обращаться к внешним сетям (например, к другим контейнерам, которые находятся в разных сетях), убедитесь, что:

    Контейнер находится в той же сети, что и целевые сервисы.

    2. Создание сети в Docker Compose
    Можно создать пользовательскую сеть в docker-compose.yml, чтобы контейнеры могли видеть друг друга:
    version: '3'
    
    services:
      web:
        volumes:
          - ./web:/app
        env_file:
          - ./web/.env
        build: ./web
        ports:
          - '8000:8000'
        networks:
          - my_network
    
      other_service:
        image: some_image
        networks:
          - my_network
    
    networks:
      my_network:
        driver: bridge

    3. Обращение к сервисам
    Внутри контейнера вы можете обращаться к другим контейнерам по имени сервиса, указанному в docker-compose.yml. Например, если у вас есть другой сервис с именем other_service, вы можете обращаться к нему по адресу http://other_service:port.
    4. Обращение к внешним ресурсам
    Если вы хотите обращаться к ресурсам вне Docker (например, к API или к базе данных на внешнем сервере), просто используйте их IP-адрес или доменное имя. Например:

    environment:
      - API_URL=http://external.api.com

    5. Проверка сетевых настроек
    Если возникают проблемы с соединением, проверьте следующее:

    Убедитесь, что у контейнера есть доступ к интернету.
    Проверьте настройки брандмауэра на хосте.
    Убедитесь, что целевые сервисы доступны из контейнера.
    Пример
    Вот пример docker-compose.yml, который включает подключение к сети и другой сервис:

    version: '3'
    
    services:
      web:
        volumes:
          - ./web:/app
        env_file:
          - ./web/.env
        build: ./web
        ports:
          - '8000:8000'
        networks:
          - my_network
    
      db:
        image: mysql:5.7
        environment:
          MYSQL_ROOT_PASSWORD: example
        networks:
          - my_network
    
    networks:
      my_network:
        driver: bridge

    В этом примере контейнер web может подключаться к контейнеру db по адресу db:3306.
    Ответ написан
    Комментировать
  • Какое есть в linux решение для организации видеоконференций?

    @Miroslavux
    Big blue button
    Ответ написан
    Комментировать
  • Как сделать файл бинарным для гита?

    Lynn
    @Lynn
    nginx, js, css
    Ответ написан
    Комментировать
  • Как останавливать зависящие контейнеры от контейнера базы данных, если бд остановится/крашнится?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Поле depends_on определяет только последовательность запуска и удаления сервисов, к остановке отношения не имеет.
    Искомое вами поведение задаётся через healthcheck проверки доступности базы в backend и бэкенда во frontend... или простой docker compose -f путь/до/docker-compose.yaml stop, т.е. просто остановить все сервисы.
    Ответ написан
    Комментировать
  • Какое сетевое оборудование выбрать: Mikrotik или Zyxel?

    @Drno
    Конечно микротик. Хорошо и надежно
    Ответ написан
    Комментировать
  • Каким образом можно создать виртуальную сетевую папку в ubuntu?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Все просто.
    1) Делаете VPN (OpenVPN или WireGuard) между серверами
    2) Ставите на сервер дома NFS-сервер, и расшариваете папочку, пусть будет /mnt/share
    3) На удаленном сервере монтируете в какой нибудь каталог mount -t nfs /mnt/share 192.168.XXX.XXX:/mnt/share
    Ответ написан
    Комментировать
  • Как настроить маршрутизацию VLAN с использованием Debian в качестве роутера?

    @Bright144
    допустим у тебя на роутере интерфейсы:
    eth0(который выходить на интернет);
    eth1;
    eth2;
    eth3;
    eth4;
    Сначала политику FORWARD устанавливает на DROP с командой
    iptables -P FORWARD DROP
    и добавляем правило для всех установленного соединение
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    .
    Теперь мы хотим пропускать трафик из eth4 на eth1 добавляем правило iptables -A FORWARD -i eth4 -o eth1 -j ACCEPT
    и добавляем в таблицу nat такое правило
    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    .
    Это правило разрешает всем устройствам на eth4 доступ к устройствам на eth1. То есть подключенные устройства eth4 может постучатся к устройствам eth1, но устройства eth1 не может. Если хочешь сделать eth1 тоже мог постучаться к eth4 добавляешь такие же правило но поменяешь местами интерфейсов.
    Так ты можешь устанавливать правило для других интерфейсов.
    И чуть не забыл, у тебя должен быть включен ip forwarding. Раскомментируй на /etc/sysctl.conf net.ipv4.ip_forward=1, и примени команду sysctl -p
    Ответ написан
    9 комментариев
  • Как правильно подключить транк?

    @anton99zel
    29а класс средней школы №7
    Бывает Sip транк, бывает Sip клиент.
    Между тобой и Новофоном - транк
    Между Конечной точкой и тобой - Клиент
    register используется для регистрации твоего астериск на сервере оператора для подключения твоей конечной точки (одного выделенного номера).

    host, user,secret - для авторизации твоего сервера на стороне оператора для подключения множества неконечных точек для создания АТС на твоей стороне.
    Ответ написан
    1 комментарий
  • Ngixn как блокировать подобные запросы /?[a-z]{9}?

    @dodo512
    /path?query
    location работает только с /path, а GET параметры следует искать в $args.
    Или $request_uri там URI запроса целиком (с аргументами)
    if ($request_uri ~ "/\?[a-z]{9}") {
        return 403;
    }
    Ответ написан
    Комментировать
  • Как отследить где находится исполняемый файл, который нагружает сервер Linux?

    @kavabangaungava
    У меня была подобная проблема. Это майнер. Отловил с помощью lsof.
    Ответ написан
    Комментировать
  • Как посмотреть, через какой интерфейс произошло VPN соединение на Микротике?

    @TheBigBear Автор вопроса
    СтарОдмины мы
    Сам задал, сам отвечу
    Спасибо добрым людям с другого форума

    В PPP-профиль On Up надо скрипт добавить, который в лог будет писать:
    /log info "$"user", $"called-id""
    Ответ написан
    Комментировать
  • Как пустить трафик пользователя через резервный канал на miktotik?

    @Drno
    настраиваем отдельный порт под 2 провайдетра, настраиваем NAT
    далее в фаервол>>манг - делаем маркировку для нужного локального IP
    далее в ip>routes ставим роут 0.0.0.0 через нужный шлюз, с дистанцией больше основного инета. и там ставим маркикровку, которую указали в предыдущем действии

    В итоге икротик промаркирует траффик от указаного локального IP, и направит его в указаный шлюз
    Ответ написан
    Комментировать
  • Как работают маски /32 (255.255.255.255)?

    Mystray
    @Mystray
    NOC
    Ответ в общем случае - PPP.
    В чем суть маски и шлюза по умолчанию для обычного хоста? Определить, является ли адрес назначения в локальной сети (то есть сетевая часть получателя и отправителя совпадает) и, если получатель таки "не здесь", то отправить трафик "шлюзу по умолчанию", а он уже пусть разберется.
    В случае же PPP-соединения, которое есть "труба", в принципе нет "локальной сети", есть только некий удаленный хост, при чем только один, который находится на том конце трубы.
    С той стороны точно так же роутеру известно, что на противоположном конце конкретной трубы находится конкретный хост, и только один, потому ему тоже не надо заморачиваться с масками, то есть у нас отсутствует локалка.
    Так что получается х.х.х.х/32 ===PPP-соединение===y.y.y.y/32, оба хоста знают, кто находится на противоположном конце соединения, все счастливы, айпи-адреса можно раздавать независимо от того, в каком сегменте находится абонент, и не надо тратить лишние айпишники на "адрес сети", "адрес шлюза" и "широковещательный адрес".
    При этом марщрут по умолчанию тоже может бють не "на хост", а "в трубу", а уже с той стороны разберутся.
    Ответ написан
    Комментировать
  • Как работают маски /32 (255.255.255.255)?

    athacker
    @athacker
    Я вам даже больше скажу :-) Там IP-адреса могут быть даже из разных подсетей :-)

    Например, вам провайдер выдаст 192.168.1.1, а на серверной стороне будет IP 10.0.0.1. И что характерно -- всё будет работать :-)

    Дело в том, что L2TP строит туннель. Туннель -- это такая штука, которая "точка-точка". Т.е. фактически, в сети, которая доступна через поднятый L2TP-интерфейс, кроме вас и сервера, никого больше нет. И не будет :-) Поэтому нет смысла в туннеле делать маски длиннее /32. Любой трафик, который уходит через L2TP-интерфейс, будет попадать на сервер. А сервер уже дальше сам будет разбираться, что с этим трафиком делать -- либо маршрутизировать, либо дропнуть. Это так, если на пальцах совсем.
    Ответ написан
    Комментировать
  • Mikrotik Как разделить трафик wan и lan, для отправки одного через wireguard?

    karabanov
    @karabanov
    Системный администратор
    Сделай для Wi-Fi отдельный bridge и отдельный DHCP с отдельным пулом адресов.
    Интерфейс/сы wlan исключи из bridge который для LAN и добавь их в bridge, который для Wi-Fi
    Настрой NAT
    В настройках фаирвола с помощью Mangle промаркируй трафик из LAN и заворачивай только его в wireguard
    Ответ написан
    1 комментарий
  • Как пустить часть трафика через VPN?

    @MaDerer
    Лично мне известно о существовании двух вариантов доступа через роутеры. Инструкции уже не подскажу, так как занимался этим год-два назад.
    1. Через роутер Mikrotik.
    2. Через роутер с OpenWRT прошивкой.
    Суть обеих методов в том, что создаётся два соединения: основное и VPN. Все сайты, которые находятся в созданном списке заворачиваются на VPN. Остальные через обычный доступ.
    Я таким образом заворачиваю на Микротике нужные мне сайты на OpenVPN сервер, но достаточно долго возился по нескольким статьям, и когда у меня заработало, я сам не понял как. Точнее не понял, что я до этого делал не так, что у меня не работало.
    Ответ написан
    2 комментария
  • Как пустить часть трафика через VPN?

    Vindicar
    @Vindicar
    RTFM!
    Есть два подхода. В обоих случаях тебе нужен список заблокированных IP, его можно взять на антизапрете, например.
    Дальше вопрос, как пускать трафик.
    1. На хабре был материал про динамическую подгрузку маршрутов через BGP. Плюс - работает с любыми протоколами, и не требует дополнительной настройки со стороны проксируемого ПО. Минусы - ощутимо сложнее в понимании, на мой взгляд, да и с кроссплатформенностью могут быть проблемы. В статье приведена реализация на роутере Mikrotik.
    2. Использовать файл proxy.pac. Его можно сгенерировать скриптом типа такого:
    #!/bin/bash
    #!/bin/bash
    DNS_SERVER=8.8.8.8
    BLACKLIST_URL="http://antizapret.prostovpn.org/iplist.txt"
    #куда класть файл proxy.pac
    PACDIR=/var/www/html
    TMPLIST=/tmp/iplist.txt
    #домены, которые нужно пускать через прокси независимо от содержимого iplist.txt
    DOMAINS=(\
    rutracker.org \
    facebook.com \
    facebook.net \
    fbcdn.net \
    twitter.com \
    twitter.co \
    t.co \
    twimg.com \
    twitpic.com \
    periscope.tv \
    pscp.tv \
    )
    #качаем чёрный список
    wget -q --tries=10 -O "$TMPLIST" "$BLACKLIST_URL"
    # вытаскиваем IP наших прописанных доменов
    declare -a EXTRAIPS=()
    for domain in "${DOMAINS[@]}"
    do
            dig A "$domain" +short @$DNS_SERVER | grep -v '\.$' >>"$TMPLIST"
    done
    #в чёрном списке есть отдельные IP и есть подсети
    #также чёрный список очень длинный, поэтому кодируем его более компактно.
    IPLIST=`grep -Ex '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' "$TMPLIST" | awk '/^[0-9]+/ {split($1,b,/\./); printf("0x%02x%02x%02x%02x,", b[1],b[2],b[3],b[4]);}'`
    SUBNETLIST=`awk '/[0-9.]+\.[0-9]+\.[0-9]+\.[0-9]+\/[0-9]+/ {split($1,p,/\//); printf("[\"%s\", %s], ", p[1], p[2]);}' <"$TMPLIST"`
    #генерируем proxy.pac по шаблону
    #он проверяет домен на вхождение в фиксированные домены, а потом IP по списку.
    function templatePAC {
            NAME=$1
            shift
            DMNLIST=("$@")
            cat >"$PACDIR/$NAME" <<EOF
    function FindProxyForURL(url, host) {
      var domainblacklist = [
    EOF
            for d in "${DMNLIST[@]}"
            do
                    echo "  '$d'," >>"$PACDIR/$NAME"
            done
            cat >>"$PACDIR/$NAME" <<EOF
      ];
      var ipblacklist = [ $IPLIST ];
      var subnetblacklist = [ $SUBNETLIST ];
    
      function endsWith(str, suffix) {
        return str.indexOf(suffix, str.length - suffix.length) !== -1;
      }
      function numberToMask(n) {
        var m=[0,128,192,224,240,248,252,254,255];
        var r=[];
        for (var i=0; i<4; i++) {
          var p = (n > 8) ? 8 : n;
          r[i] = m[p];
          n -= p;
        }
        return r.join(".");
      }
      function maskMatch(ip, mask) {
        var m = numberToMask(mask[1]);
        return isInNet(ip, mask[0], m);
      }
    
      var blocked = false;
      for (var i=0; !blocked && (i<domainblacklist.length); i++)
        blocked = blocked || ((host == domainblacklist[i]) || endsWith(host, '.'+domainblacklist[i]));
      if (!blocked) {
        var ip = dnsResolve(host);
        for (var i=0; !blocked && (i<subnetblacklist.length); i++)
          blocked = blocked || maskMatch(ip, subnetblacklist[i]);
        blocked = blocked || (ipblacklist.indexOf(convert_addr(ip)) != -1);
      }
      if (blocked)
        return "PROXY ТУТ_ТВОЙ_ПРОКСИ:ПОРТ";
      else
        return "DIRECT";
    }
    EOF
    }
    # генерируем файл
    templatePAC proxy.pac "${DOMAINS[@]}"
    
    rm -f "$TMPLIST"

    Тогда можно отдавать этот proxy.pac любым веб-сервером (но лучше внутри VPN - если VPN не работает, то смысл в файле?), и настроить браузер на его использование.
    Минусы: работает только с браузерами, требует наличия вебсервера и полноценного прокси-сервера внутри VPN-сети (т.е. просто арендованный VPN не подойдёт, нужен VPS). Но мне показалось это проще в понимании, чем возня с BGP, да и требуется только наличие современного браузера и VPN клиента, без привязки к роутеру. Можно хоть на ноуте настроить, как я сделал.
    Ответ написан
    Комментировать