Посмотрите здесь:
https://askubuntu.com/questions/612840/adding-route-on-client-using-openvpn
D) Бонусный вариант! openvpn также имеет директиву up /down, которая позволяет вам запускать скрипт при подключении к vpn, что позволяет вам делать все, что вы действительно хотите. настройка днс, маршрутов и т. д. Но это требует от вас сохранения команд в другом файле.
Так что, если у вас было следующее в вашем конфигурационном файле клиента openvpn
скрипт-безопасность 2
up run-stuff-after-vpn-connect.sh
создайте файл с именем run-stuff-after-vpn-connect.sh (убедитесь, что он имеет разрешения на выполнение. И добавить:
/ Бен / ш
route add -net 172.16.0.0/24 dev tun0 добавит маршрут, как только будет запущен туннель
Таким образом, вы в основном помещаете свой маршрут в файл sh, например, my_route.sh (я предполагаю, что 192.168.193.1 - ваш локальный IP-адрес OpenVPN GW)
#!/bin/sh
/usr/sbin/ip route add 20.20.20.0/24 via 192.168.193.1 dev tap0
затем добавьте в файл конфигурации вашего клиента OpenVPN
up /your path to/my_route.sh
Это может не работать, поэтому вы также можете добавить маршрут через конфигурацию запуска systemd
[Unit]
Description=OpenVPN connection to %i
[Service]
Type=forking
ExecStart=/usr/bin/openvpn --cd /etc/openvpn --config /etc/openvpn/%i.conf --daemon openvpn@%i
ExecStartPost=/your path to/my-add-route.sh
ExecStop=/your path to/my-remove-route.sh
[Install]
WantedBy=multi-user.target