Машина как шлюз между роутером и локальными устройствами
У меня есть машина, которую я хочу использовать в качестве шлюза между маршрутизатором.
Например:
- Несколько машин в сети хотят получить доступ www.google.com скажем
- Отправить свои запросы мне
- Я отправляю их на мой роутер
- Получать ответы от моего роутера
- Отправить их обратно клиентам
Как я могу сделать это в среде Unix (возможно, с использованием iptables)?
2 ответа
Вы захотите включить переадресацию IP, а затем либо настроить таблицы маршрутов, либо использовать таблицы IP для NAT. Вот информация о том, как настроить NAT'ing:
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. У вас есть два варианта:
- Настройте браузеры клиентов на всех компьютерах для использования этого прокси-сервера. В этом случае все запросы будут отправлены ими непосредственно на прокси-сервер, который отправит запрос на реальный сервер и отправит ответ обратно им.
- Прозрачно перенаправьте все исходящие HTTP-запросы на прокси-сервер, используя iptables на клиентском шлюзе.