Назад | Перейти на главную страницу

Машина как шлюз между маршрутизатором и локальными устройствами

У меня есть машина, которую я хочу использовать в качестве шлюза между маршрутизаторами.

Например:

  1. Несколько компьютеров в сети хотят получить доступ к www.google.com, допустим,
  2. Присылайте мне свои запросы
  3. Я отправляю их на свой роутер
  4. Получать ответы от моего роутера
  5. Отправьте их клиентам

Как я могу сделать это в среде unix (возможно, используя iptables)?

Вам нужно включить переадресацию IP, а затем либо настроить таблицы маршрутизации, либо использовать таблицы IP для NAT. Вот информация о том, как настроить NAT:

  • echo 1 > /proc/sys/net/ipv4/ip_forward

  • редактировать /etc/sysctl.conf и измените строку, в которой говорится net.ipv4.ip_forward = 0 к net.ipv4.ip_forward = 1

  • /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Я считаю, что вы можете просто отказаться от линии MASQUERADE, если вам нужна пересылка, а не NAT.

Помимо вашего конкретного примера HTTP-запроса, остальные ваши данные указывают на то, что вам нужен реальный шлюз, а не только прокси.

Мне кажется, нужно запускать HTTP-прокси-сервер типа squid. У вас есть два варианта:

  1. Настройте браузеры клиентов на всех машинах для использования этого прокси-сервера. В этом случае все запросы будут отправляться ими напрямую на прокси-сервер, который отправит запрос на реальный сервер и отправит им ответ.
  2. Прозрачно перенаправляйте все исходящие HTTP-запросы на прокси-сервер с помощью iptables на клиентском шлюзе.