Я пытаюсь настроить Linux-сервер, который изначально должен был находиться только в одной «серверной подсети». Однако я вынужден использовать прокси для доступа к службам HTTP / HTTPS в этой подсети, что вызывает множество проблем с моими веб-приложениями, которым требуется доступ к API через HTTPS.
К счастью, Сервер подключен ко второй «клиентской подсети», которая предлагает неограниченный доступ к службам HTTP / HTTPS. Я настроил обе сетевые карты, и теперь я получил подсеть сервера на eth0 и клиентскую подсеть на eth1.
Я читал о похожих проблемах, и самое близкое, что я нашел, было следующее: https://askubuntu.com/questions/104400/how-to-put-all-traffic-and-on-one-interface-and-some-traffic-on-another-interfac Я выполнил инструкции и соответственно изменил порты и интерфейсы (шлюз eth0 является шлюзом по умолчанию):
iptables -t mangle -A OUTPUT -p tcp --dport 443 -o eth0 -j MARK --set-mark 1
ip rule add fwmark 1 table 1
ip route add 0.0.0.0/0 table 1 dev eth1
Однако, похоже, это не работает.
Мне было интересно, это ли фактически возможно, с технической точки зрения, даже создать определенные правила маршрутизации, которые позволяют направлять локальный исходящий HTTP / HTTPS-трафик через другую подсеть.
Я знаю, что этот пост действительно старый, но совсем недавно я решил эту проблему, используя другой подход, который включает маршрутизацию исходной политики: Не удается проверить связь с многосетевой Linux-машиной на нестандартном интерфейсе.
Хост подключен к двум сетям. «Подсеть клиента» позволяет получить доступ к внешним ресурсам, однако к ее клиентам нельзя получить доступ извне. К клиентам в «подсети сервера» можно получить доступ извне сети, однако они не могут получить доступ к каким-либо ресурсам за пределами своей собственной сети.
---
|"Client Subnet"
------ eth0 | 3.3.0.10
| Host |-----------
| |-----------
------ eth1 |"Server Subnet"
| 123.123.0.10
---
Я установил шлюз клиентской подсети в качестве шлюза по умолчанию и настроил маршрутизацию исходной политики, как показано в ответе из сообщения выше. Затем сервер вел себя так, как хотелось.
echo 13 eth1 >> /etc/iproute2/rt_tables
ip route add default via 123.123.0.1 table eth1
ip rule add from 123.123.0.10 lookup eth1