Мой маршрутизатор (192.168.1.1) подключенный к Интернету через PPPoE. Серверу (192.168.1.20) установили клиент OpenVPN, и все другие компьютеры добираются 192.168.1.20 от DHCP как шлюз по умолчанию. Моему телефону IP не нужна VPN, вот почему я установил, это - шлюз по умолчанию к 192.168.1.1 вручную. Это работает прекрасное.
Я могу сделать что-то похожее с сервером для создания передачи установленной на нем для загрузки потоков до 192.168.1.1? Я незнаком с iptables (я только что вставил копией правила настроить NAT на сервере для совместного использования соединения VPN).
Сделать это более простым: как я могу добавить правило iptables для передачи всех непередаваемых пакетов от сервера до 192.168.1.1 вместо того, чтобы использовать соединение VPN?Заранее спасибо!
Я провел несколько часов и наконец нашел решение. Не так, как советовали раньше, но все еще работает.
route del -net 0.0.0.0 netmask 128.0.0.0 dev tun0
Я просто удаляю маршрут шлюза по умолчанию, созданный клиентом openvpn. Таким образом, весь трафик с машины отправляется на 192.168.1.1 именно так, как мне нужно.
Но роса под NAT маскирует другие устройства в моей сети, остается за пределами VPN.
Я добавил эту строку в /etc/rc.local
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Простой способ сделать это должно использовать отдельного пользователя для выполнения клиента потока, затем использование iptables просто отмечает пакеты и направляет их соответственно.
iptables -t mangle -A OUTPUT -m owner --uid-owner custom_user -j MARK --set-mark 11
, После того как Вы сделали это, затем необходимо направить пакеты с той меткой вдоль нетуннелированного шлюза:
ip rule add fwmark 11 table 11
ip route add 0.0.0.0/0 table 11 dev whatever_dev_here
Замена whatever_dev_here
с именем устройства для Вашего локального соединения.