Сначала просмотрите это руководство: http://lartc.org/howto/lartc.rpdb.multiple-links.html (и / или другие руководства по использованию нескольких маршрутов по умолчанию).
Так что в вашем случае, я думаю, что решение будет настроить два сетевых интерфейса (по умолчанию eth0 и, например, eth0:1 с другим действительным IP-адресом от вашей локальной сети) для вашего сервера, а затем настроить маршруты так, чтобы по умолчанию весь трафик шел в vpn и трафик, исходящий из вторичного интерфейса, остается за пределами сети VPN. Затем с помощью ssh свяжите вторичный интерфейс с опцией -b.
ИЛИ настройте несколько маршрутов так, чтобы трафик со вторичного интерфейса направлялся в vpn, затем настройте прокси-сервер www, связанный (только) с вторичным IP-адресом. Затем используйте этот прокси-сервер с браузерами.
ИЛИ, если вы используете (только) wget, выполните вышеизложенное и используйте опцию --bind-address для привязки к вторичному интерфейсу.
ИЛИ менее общее решение, так как 20 декабря Лоран прокомментировал другой ответ, вы можете настроить конкретный IP-маршрут для серверов, к которым вы подключаетесь, без необходимости использовать несколько таблиц маршрутизации. Как это:
route add -host [the host you're connecting to] gateway [your gateway address]
Вот пример из реального мира. У меня установлено соединение vpn, адрес vpn - 23.21.xxx.yyy, а мой локальный внешний адрес - 91.157.xxx.yyy, а адрес локального внутреннего шлюза - 192.168.0.1.
root@dell64:~# curl -s ipchicken.com|egrep '[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+.*<br>'|sed 's/[0-9][0-9]*[.][0-9][0-9]* .*/xxx.yyy/'
23.21.xxx.yyy
root@dell64:~# route add -host ipchicken.com gateway 192.168.0.1
root@dell64:~# curl -s ipchicken.com|egrep '[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+.*<br>'|sed 's/[0-9][0-9]*[.][0-9][0-9]* .*/xxx.yyy/'
91.157.xxx.yyy
(Сайт ipchicken.com просто отображает ваш внешний IP-адрес, а grep фильтрует только строку с внешним IP-адресом, а sed заменяет последние части на xxx.yyy)