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

Подключайтесь из WAN, пока активно соединение OpenVPN Client

Я уже некоторое время пытаюсь заставить это работать, но все еще безуспешно. Надеюсь, вы сможете мне с этим помочь.

У меня есть машина (Raspberry Pi), в которой есть:

Пока все хорошо, все работает как положено. Моя конфигурация следующая: После установки tun0 я применяю следующие правила iptable:

iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
iptables -I FORWARD -i tun0 -o eth0 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

а таблица маршрутизации выглядит так:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.2.0     192.168.2.2     255.255.255.0   UG    0      0        0 tun0
192.168.2.2     0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Теперь я хотел бы добавить клиент OpenVPN и настроить его как подключение к Интернету по умолчанию для системы. После того, как соединение установлено (tun1), поставщик услуг VPN применяет новую маршрутизацию, но я теряю возможность подключаться к своим службам из WAN с использованием моего внешнего IP-адреса.

В этой ситуации маршрутизация выглядит так:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.159.0.145    128.0.0.0       UG    0      0        0 tun1
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
10.159.0.1      10.159.0.145    255.255.255.255 UGH   0      0        0 tun1
10.159.0.145    0.0.0.0         255.255.255.255 UH    0      0        0 tun1
45.86.203.67    192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
128.0.0.0       10.159.0.145    128.0.0.0       UG    0      0        0 tun1
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.2.0     192.168.2.2     255.255.255.0   UG    0      0        0 tun0
192.168.2.2     0.0.0.0         255.255.255.255 UH    0      0        0 tun0

(IP, который я получаю от поставщика VPN, динамический)

Насколько я понимаю, это потому, что мой сервер теперь отправляет ответы через tun1, а не через eth0. Я читал о маршрутизации на основе политик, но все еще не могу заставить ее работать должным образом. Мне удалось маршрутизировать всю сеть, входящую с 192.168.1.1 (маршрутизатор), и соединение из WAN начало работать, но в этой ситуации я не могу подключиться с других машин в LAN.

Заранее благодарим вас за любые советы, как правильно решить эту проблему. Ура

Я изолировал свою проблему от наличия всего 2 активных соединений WAN, а затем, немного покопавшись, мне удалось заставить ее работать. Как только VPN установил соединение, я звоню:

echo 200 WAN >> /etc/iproute2/rt_tables

ip rule add from 192.168.1.131 table WAN priority 900
ip rule add iif eth0 table WAN priority 1000

ip route add default via 192.168.1.1 dev eth0 table WAN
ip route add 192.168.1.0/24 dev eth0 proto static scope link src 192.168.1.131 table WAN

Теперь мой шлюз по умолчанию - TUN1 (коммерческий VPN), но я все еще могу подключиться, используя свой внешний IP-адрес или с других машин в той же локальной сети 192.168.1.0/24.

Последняя оставшаяся проблема, которую я заметил, заключается в том, что теперь я не могу подключиться к своему VPN-серверу (TUN0), который я размещаю на порту 1194 UDP.

Все остальные службы, использующие TCP, доступны, только те, которые не используют UDP - что я здесь пропустил?