Перенаправление портов iptables не работает

awk '
{
    for (i=1;i<=NF;++i)
        if      ($i == 1) ++one[i]
        else if ($i == 0) ++zero[i]
}
END { 
    for (i=1;i<=NF;++i)
        c += (one[i]>0 && zero[i]>0)
    print c
}' file

Это подсчитывает единицы и нули в двух отдельных массивах, oneи zero. Они имеют одну запись на столбец во входном файле.

В конце переменная cбудет суммой количества столбцов, в которых есть как минимум один 1и один 0. Код предполагает, что количество столбцов в последней строке ввода такое же, как и в других строках входных данных.

Результатом этого с данным примером является 3.

0
16.09.2019, 15:00
1 ответ

Как пытались описать @msp9011 и @user4556274, ваш сервер должен прослушивать «любой адрес» вместо адреса «127.0.0.1». Таким образом, в зависимости от программного обеспечения вашего веб-сервера, вы можете изменить так называемый «адрес прослушивания» на:

  • заменить 127.0.0.1 ничем, т.е.удалить конфигурацию
  • заменить 127.0.0.1 на 0.0.0.0, что означает прослушивание любого IP
  • добавить конфигурацию 0.0.0.0, чтобы переопределить значение по умолчанию 127.0.0.1
  • что-то в этом роде, проверьте свою документацию на предмет «прослушивания» или «привязки» адреса и как сделать так, чтобы он НЕ прослушивал только локальный адрес

Если вы расскажете нам больше о том, какое программное обеспечение веб-сервера у вас есть, мы, возможно, сможем помочь с более подробной информацией об описанной выше процедуре.

Тем не менее, в случае успеха эта строка в вашем текущем выводе netstat:

tcp        0      0 127.0.0.1:8082          0.0.0.0:*               LISTEN      4163/centrifuge

должно выглядеть так, если вы успешно обновили конфигурацию:

tcp        0      0 0.0.0.0:8082            0.0.0.0:*               LISTEN      4163/centrifuge

Документация, процитированная @user4556274, означает, что если новое соединение приходит с интерфейсом, имеющим локальный IP-адрес 123.456.78.9, то цель ПЕРЕНАПРАВЛЕНИЯ изменит порт назначения на 8082, а хост назначения на 123.456.78.9 (т.е. НЕ 127.0.0.1 ). Поскольку ваша конфигурация прослушивает только 127.0.0.1, она не будет видеть пакеты с любым другим адресом назначения. Адрес 0.0.0.0 является особым и означает, что он будет прослушивать все адреса.

2
28.01.2020, 02:29

Теги

Похожие вопросы