Это сработает если шлюз по умолчанию на OpenVPN будет через твой сетевой интерфейс.
Сейчас попытаюсь нарисовать.
Предположим я имя адрес 193.169.37.18 обращаюсь к 95.90.10.3
Тогда имеем такой ip заголовок (упращенно):
+++++++++++++++++++++++++++++++++
| Source IP (SIP) 193.169.37.18 |
+++++++++++++++++++++++++++++++++
| Destination IP (DIP) 95.90.10.3 |
+++++++++++++++++++++++++++++++++
Когда ты делаешь DNAT ты подменяешь DIP
И в твоем случае получается следующие:
+++++++++++++++++++++++++++++++++
| Source IP (SIP) 193.169.37.18 |
+++++++++++++++++++++++++++++++++
| Destination IP (DIP) 2.2.2.2 |
+++++++++++++++++++++++++++++++++
С одной стороны да ты добился цели.
Пакет уйдет на адресс 2.2.2.2.
Но как он сможит ответить?
Если он даже имеет свое подключение к internet.
И он оташлет ответ на мой адрес 193.169.37.18.
То мой хост не ждет пакетов с адреса VPN сервера, а ждет от 95.90.10.3
По этому тебе необходимо делать DNAT и SNAT
И тогда имея :
+++++++++++++++++++++++++++++++++
| Source IP (SIP) 193.169.37.18 |
+++++++++++++++++++++++++++++++++
| Destination IP (DIP) 95.90.10.3 |
+++++++++++++++++++++++++++++++++
iptables -t nat -A PREROUTING -p udp -m udp --dport 4780 -s 95.90.10.3 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -p udp --dport 4780 -s 2.2.2.2 -j SNAT --to-source 2.2.2.1 (Тут твой ip от VPN сервера)
Получим:
+++++++++++++++++++++++++++++++++
| Source IP (SIP) 2.2.2.1 |
+++++++++++++++++++++++++++++++++
| Destination IP (DIP) 2.2.2.2 |
+++++++++++++++++++++++++++++++++
"Есть в демократии что-то такое,
до чего неприятно касаться рукою."
----------------------------------------------------------------------------------------------------------------
"Когда в обществе нет цветовой дифференциации штанов — то нет цели! А когда нет цели…"