Проксировать весь трафик от B к A

Чтобы ответить на заданный вопрос (, так как на него больше нигде нет ответа)

"How do I expose environment variables passed to /sbin/init to applications started by it?"

требуется немного раздражающий bash и чрезвычайно полезная функция файловой системы linux /proc:

# Import our environment variables from systemd
for e in $(tr "\000" "\n" < /proc/1/environ); do
        eval "export $e"
done

Это читается как /proc/1/envion, что является средой, присвоенной PID 1, но ограниченной нулями. Он использует 'tr' для замены нулей новыми строками, а затем выполняет итерацию по этим строкам и оценивает их с добавленным перед ними "экспортом", чтобы они были видны дочерним процессам.

Отсутствие -открытых -переменных окружения -является еще одной «особенностью» systemd, и они не считают это ошибкой.

0
30.09.2018, 16:42
1 ответ

Вы можете использовать A в качестве шлюза. Включите IP-переадресацию на машине A и настройте для нее исходящий трафик NAT.

Краткий обзор:

  1. Настройте адреса интерфейсов, соединяющих A и B на (обоих хостах ). Проверьте, отправив эхо-запрос между обоими хостами, используя эти адреса.

  2. Включить маршрутизацию:

    sysctl net.ipv4.ip_forward=1
    

    (также проверьте, нет ли ограничивающих правил в цепочке FORWARDтаблицы filter)

  3. Добавить правила NAT на хосте A (при условии, что eth0подключен к Интернету):

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
  4. Настройте DNS на хосте B.

0
28.01.2020, 04:13

Теги

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