Задать вопрос
  • Как сконфигурировать NGINX для редиректа с IP на домен?

    Lynn
    @Lynn
    nginx, js, css
    Нужно «настоящий» сервер описать отдельно, а всё остальное пусть редиректит в него.

    Примерно так:
    server {
        listen 443 ssl;
        server_name toorrp4.fvds.ru;
    
        # тут конфигурация сервера
    }
    
    # а тут редиректим всё остальное
    server {
        listen 443 default_server ssl;
        return 301 https://toorrp4.fvds.ru$request_uri;
    }
    Ответ написан
    Комментировать
  • Как ограничить список почтовых адресов на которые может быть отправлена почта с определенного почтового ящика в Postfix?

    @mezhuev
    Системный администратор
    Вам нужно создать новый restriction class, делается это примерно так:
    1. /etc/postfix/sender_access:
      foo@example.com restrictive
      bar@example.com restrictive

    2. /etc/postfix/recipient_access:
      director@example.com OK
      support@example.com OK
      example.org OK

    3. /etc/postfix/main.cf:
      restrictive =
        check_recipient_access hash:/etc/postfix/recipient_access
        reject
      smtpd_restriction_classes = restrictive
      smtpd_recipient_restrictions =
        …
        check_sender_access hash:/etc/postfix/sender_access
        …



    После этого с адресов foo@example.com и bar@example.com можно будет писать только director@example.com, support@example.com и на любой адрес в домене example.org. Подробности в RESTRICTION_CLASS_README. При каждом изменении recipient_access и sender_access не забываем выполнять postmap /path/to/file.
    Ответ написан
    1 комментарий
  • Можно ли сделать в конфигурации nginx редирект из URL с многократными слэшами на без слэшей?

    Lynn
    @Lynn
    nginx, js, css
    UPD: подставлять $uri в редирект это весьма плохая идея.

    Третий пункт невозможен по определению. path в запросе есть всегда.

    Для остального вот улучшенный вариант решения от AUser0

    map $uri $clean_uri {
        default $uri$is_args$args;
        "~(?'_'.+)/$" $_$is_args$args;
    }
    
    server {
        if ($request_uri != $clean_uri) {
            return 302 $clean_uri;
        }
    }


    Примеры:
    $ curl -s -o /dev/null -w '%{http_code}: %{redirect_url}\n' http://localhost:7777///foo
    302: http://localhost:7777/foo
    $ curl -s -o /dev/null -w '%{http_code}: %{redirect_url}\n' http://localhost:7777/foo//bar/
    302: http://localhost:7777/foo/bar
    $ curl -s -o /dev/null -w '%{http_code}: %{redirect_url}\n' http://localhost:7777///foo?q=42
    302: http://localhost:7777/foo?q=42
    $ curl -s -o /dev/null -w '%{http_code}: %{redirect_url}\n' http://localhost:7777/foo//bar/?q=42
    302: http://localhost:7777/foo/bar?q=42
    $ curl -s -o /dev/null -w '%{http_code}: %{redirect_url}\n' http://localhost:7777/foo
    200: 
    $ curl -s -o /dev/null -w '%{http_code}: %{redirect_url}\n' http://localhost:7777/foo?q=42
    200:
    Ответ написан
    1 комментарий
  • Нужно правильно отформатировать текст в программе notepad++, был бы очень благодарен за помощь?

    @dodo512
    Найти: (\S)\r?\n(\S)
    Заменить на: $1 $2

    https://regex101.com/r/WE1miV/1
    Ответ написан
    Комментировать
  • Нарисованная дверь с динамическим ip, или почему пакеты не приходят ко мне?

    15432
    @15432
    Системный программист ^_^
    Провайдер имеет некоторый пул "белых" IP адресов, торчащих наружу. Также есть "серые" адреса, раздаваемые по WAN абонентам. К сожалению, в мире жёсткая нехватка IPv4, поэтому провайдерам невыгодно каждому абоненту давать реальный белый IPv4, а куда удобнее производить трансляцию адресов (NAT), когда на одном белом может сидеть много абонентов. В этом случае при каждом создании соединения (TCP/UDP) за пользователем резервируется конкретное значение номера порта.

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

    Если кратко, ответ на ваш вопрос - бесплатно не будет. Или платите за услугу, или переходите к другому провайдеру, раздающему реальные белые адреса.
    Ответ написан
    Комментировать
  • Почему не работает ping с одного роутера на другой?

    ValdikSS
    @ValdikSS
    Вы подключили первый роутер в WAN-порт второго, получив две независимые сети (даже если у них совпадает адресация). Подключите LAN-порт второго роутера в LAN-порт первого. На втором отключите DHCP, DNS, NAT.
    Ответ написан
    Комментировать
  • Скрипт для ubuntu который перезапускает сервис/службу при снижения входящего трафика?

    hint000
    @hint000
    у админа три руки
    [ $(( ( $(cat /sys/class/net/eth0/statistics/rx_bytes) - $(sleep 10; cat /sys/class/net/eth0/statistics/rx_bytes) )/-10 )) -lt 5000 ] && echo need restart

    Это в CRON на каждую минуту, а echo need restart заменить на команду рестарта сервиса. 5000 (байт в секунду) заменить на желаемую величину.

    Скрипт берёт значение системного счётчика принятых байтов, ждёт 10 секунд, снова берёт значение счётчика, вычитает одно из другого, затем делит разность на те самые 10 секунд (на -10, т.к. вычитали большее из меньшего), получается среднее значение за 10 секунд. Остаётся сравнить с пороговым значением.
    Ответ написан
    6 комментариев
  • Что именно дают миллиарды транзисторов в процессоре для работы программы?

    nava2002
    @nava2002
    Инженер
    220px-CMOS_Inverter.svg.png
    Это элементарная цифровая ячейка "инвертор" - 2 транзистора.
    ВСЕ остальные логические и функциональные модули во ВСЕЙ цифровой технике состоят из таких ячеек.
    Вот почему чем больше транзисторов тем сложнее чип и тем больше он греется ну и все дальше по списку.
    Ответ написан
  • Как быстро и легко зашифровать трафик?

    @Everything_is_bad
    http и https можно поднимать на любом порту, просто его придется явно указывать в отличие от дефолтных. Самое просто это делать через проксирование в нормальные веб-серверы, nginx и подобные.
    Ответ написан
    1 комментарий
  • Как с помощью обработчика форм PHP отправлять сообщения о новой созданной заявки в беседу от бота telegram?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Форма отправляется на сервер, далее либо курлом вызывается второй скрипт, либо (если скрипт отправки в тг находится в рамках одного приложения) второй скрипт подключается инклудом после обработчика и обрабатывает форму своим способом.
    Ответ написан
    8 комментариев
  • Как залить большой файл sql в базу?

    @Akina
    Сетевой и системный админ, SQL-программист.
    захожу через putty по SSH и гружу по
    mysql -u****** -p****** ******* < *******.sql

    Напрасно.
    Загрузи CLI, а уж потом в нём грузи дамп командой SOURCE.
    Во-первых, не будет тайм-аута, интерактивно клиент, в отличие от безынтерфейсного, не воспринимается как померший, ибо постоянно льёт в выходной поток. Во-вторых, будешь видеть диагностику загрузки (особенно если запустишь CLI с ключом --tee).
    Ответ написан
    Комментировать
  • Как включить сервер, если не работает кнопка turn on?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Извлечь карту и проверить работоспособность сервера без карты, особенно блока питания. Бывает, что железка работает долго без перерыва и проблем, а стоит выключить и попытаться включить - все ломается. Если без карты работает - то дальше проверять в других слотах, если все так же - то проверить карту на другой машине. Имеет смысл продуть слоты воздухом, а на карте протереть контакты ластиком/спиртом.
    Ответ написан
    3 комментария
  • Почему pause в cmd скрипте не предотвращает закрытие окна?

    black1277
    @black1277
    Вольный стрелок
    Вот так будет работать как функция
    @echo off
    
    set "path_bin_1=d:\TEMP\test.exe"
    call :testname
    
    echo "%path_bin_1%"
    echo "%filename%"
    
    pause
    
    exit
    REM тело функции располагаем в конце после оператора exit чтобы предотвратить выполнение в потоке.
    
    :testname
    echo "%path_bin_1%"
    for /F "delims=" %%a in ("%path_bin_1%") do (
        set file=%%~fa
        set filepath=%%~dpa
        set filename=%%~nxa
    )
    exit /B

    exit /B возвращает управление сразу после того места где был вызов процедуры
    goto теперь не нужен - убрали тело функции за оператор exit
    После pause можно писать другой код и опять вызывать call :testname
    Ответ написан
    4 комментария
  • Какой эмулятор Android (или другой мобильной ОС) лучше всего подойдет, чтобы пользоваться банковскими приложениями?

    @Drno
    С ПК лучше использовать офф сайты банков
    Ответ написан
    Комментировать
  • Найдем формулу или скрипт для слияния двух частей строки?

    @dodo512
    Найти: (?i)^(\w*?)(\w+?)(\w*);(\2)$
    Заменить: $1$4$3
    https://regex101.com/r/swTAQs/1
    Ответ написан
    Комментировать
  • Как объяснить провайдеру какая у меня проблема с интернетом так, что бы что бы это исправили?

    ValdikSS
    @ValdikSS
    Полагаю, свитч провайдера перешел в режим хаба по какой-то причине (рассылает полученные пакеты на все порты без фильтрации), т.к. вы видите в touch unicast-трафик других IP-адресов. Кто-то скачивает файл через L2TP на полной скорости, и эти данные приходят всем клиентам на все порты свитча.

    Вам нужно объяснить поддержке, что их свитч (скорее всего, в вашем доме) неисправен либо программно, либо аппаратно, и «перешел в режим хаба. Когда кто-то качает файл, у всех остальных маленькая скорость. На мой порт приходит L2TP-трафик других IP-адресов.».
    Ответ написан
    5 комментариев
  • Как настроить авторитативный сервер DNS?

    hint000
    @hint000
    у админа три руки
    Кеширующий сервер висит на порту 53 и все неизвестные запросы отправляет на сервера forwarders, а все запросы к основной зоне - на авторитативный сервер на порту 5353
    В том и проблема, что на внешний запрос у вас отвечает не авторитативный сервер, а кеширующий. Ответ от кеширующего не может считаться авторитативным.

    Нужен непосредственный доступ извне к авторитативному серверу.
    Ответ написан
    9 комментариев
  • Как работает двойное тире "--"?

    karabanov
    @karabanov
    Системный администратор
    man bash

    -- signals the end of options and disables further option processing. Any arguments after the -- are treated as filenames and arguments. An argument of - is equivalent to --

    Сообщает, что опции у запускаемой команды закончились и дальше будут только позиционные аргументы, характерный пример использования найти подстроку -v с помощью grep в текстовом файле: grep -- -v file.txt, если не добавить --, то grep воспримет -v, как свою опцию, а не подстроку для поиска.

    Это способ корректно обработать управляющие символы не прибегая к "понапихать кучу апострофов и кавычек в несколько слоев".
    Ответ написан
    2 комментария
  • Как через cmd можно удалить любой файл в автозагрузках?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    for /F "skip=2 tokens=2*" %j in ('reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Startup"') do set STARTUP="%k"
    for /F "tokens=3*" %j in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Startup"') do set COMMONSTARTUP="%k"
    
    cd %STARTUP%
    cd %COMMONSTARTUP%
    Ответ написан
    Комментировать
  • Как лучше всего хранить многострочный текст в .cmd или .bat файле?

    wisgest
    @wisgest
    Не ИТ-специалист
    Вкратце (возможно, когда-нибудь дополню ответ, если вспомню какие либо тонкости и соберусь с силами).

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

    Пример.
    echo ^
    Hello,^
    
        world!

    выведет
    Hello,
        world!

    Если использовать отложенное раскрытие переменных, то можно вывести текст, сохранённый в переменной:
    setlocal enabledelayedexpansion
    set A=^
    Hello,^
    
      world!
    echo !A!

    В тексте надо удваивать знаки процента, экранировать символом ^ специальные символы (его самого, символы перенаправления, соединения команд, закрывающую скобку (внутри составных команд), желательно, кавычку…), дважды экранировать восклицательные знаки при отложенном раскрытии переменных, если текст между ними может быть воспринят как имя переменной… В общем, упражняйтесь.

    Ещё можете посмотреть тему CMD/BAT: Возможность создания heredoc. Также, например, в теме CMD/BAT: Пакетные макросы с параметрами рассматривается создание переменных (CR и LF), содержащих символы перевода строки и возврата каретки:
    spoiler
    :: Определяет переменную ВОЗВРАТ КАРЕТКИ (используется как !CR!)
    for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"
    
    :: Определяет переменную ПЕРЕВОД СТРОКИ (используется как !LF!)
    set LF=^
    
    
    :: Две пустые строки сверху важны - не удалять!
    Ответ написан
    Комментировать