Для настройки VPN на Linux с выбором определенных приложений или сайтов для работы через него, вы можете использовать функции iptables и маршрутизации трафика.
Перед началом настройки VPN, вам необходимо установить VPN-клиент провайдера xeovo.com на вашей системе. Они должны предоставить вам файлы конфигурации VPN (для протоколов OpenVPN или WireGuard).
1. Установите необходимые пакеты:
```
sudo apt-get install openvpn wireguard iptables curl
```
2. Создайте файл конфигурации для VPN в директории /etc/openvpn/ или /etc/wireguard/, в зависимости от используемого протокола VPN.
3. Установите права доступа к файлу конфигурации:
```
sudo chmod 600 /etc/openvpn/[config_file].ovpn
sudo chmod 600 /etc/wireguard/[config_file].conf
```
4. Подключитесь к VPN, используя команду:
```
sudo openvpn --config /etc/openvpn/[config_file].ovpn
sudo wg-quick up /etc/wireguard/[config_file].conf
```
5. Проверьте, что VPN-туннель активен и работает:
```
curl ifconfig.co
```
Вывод должен показывать IP-адрес, назначенный VPN-сервером.
6. Добавьте правила маршрутизации для маркировки пакетов, которые должны проходить через VPN-туннель:
```
# Для OpenVPN
sudo iptables -t mangle -A OUTPUT -o tun0 -j MARK --set-mark 0x1
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
# Для WireGuard
sudo iptables -A OUTPUT -m mark --mark 0x1 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
```
7. Создайте таблицу маршрутизации для маркированных пакетов:
```
sudo ip rule add fwmark 0x1 table 100
```
8. Добавьте маршруты в таблицу маршрутизации для пакетов, которые должны идти через VPN-туннель:
```
# Для OpenVPN
sudo ip route add default via [VPN_server_ip] table 100
# Для WireGuard
sudo ip route add [VPN_network] via [VPN_server_ip] table 100
```
Замените [VPN_server_ip] на IP-адрес VPN-сервера и [VPN_network] на IP-подсеть, используемую VPN-сервером.
9. Добавьте правила iptables для проброски пакетов через таблицу маршрутизации:
```
sudo iptables -t nat -A PREROUTING -i [interface] -p tcp -j DNAT --to-destination [VPN_server_ip]
sudo iptables -t nat -A PREROUTING -i [interface] -p udp --dport [VPN_port] -j DNAT --to-destination [VPN_server_ip]
```
Замените [interface] на имя вашего сетевого интерфейса (например, eth0) и [VPN_port] на номер порта VPN-сервера.
10. Теперь вы можете определить приложения или сайты, которые нужно направлять через VPN-туннель, добавив маршруты для соответствующих IP-адресов или доменов в таблицу маршрутизации 100. Например:
```
sudo ip route add [app_or_website_ip] via [VPN_server_ip] table 100
sudo ip route add [app_or_website_domain] via [VPN_server_ip] table 100
```
После настройки правил маршрутизации и маркировки пакетов, только выбранные прилож