Pull to refresh

Comments 9

Расскажите кто-нибудь, пожалуйста, как на Винде настроить клиент OpenVPN так, чтобы игрушки и некоторые сайты напрямую работали? Иначе приходится вместо OpenVPN всякой неправильной экзотикой пользоваться.
Вычислять айпишники серверов игрушек и добавлять исключения. Проще их пушить с сервера.
Скрытый текст
Маршрутизация, в общем случае, работает на уровне IP-адресов и подсетей, а не на уровне отдельных программ или доменов.
Сделать доступ через VPN только к отдельным подсетям можно, добавив следующую строку в конфигурационный файл ovpn:
route-nopull

Далее добавлять отдельные IP-адреса или диапазоны командой route:
route network/IP [netmask]


Пример:
route-nopull
route 8.8.8.8 255.255.255.255

Также можно исключить отдельные диапазоны адресов, чтобы они работали не через VPN.
Пример:
route 8.8.8.8 255.255.255.255 net_gateway

В этом случае добавлять route-nopull не нужно.

Узнать IP-адреса отдельных доменов можно консольной командой nslookup. Пример:
$ nslookup ya.ru
Server:         192.168.101.1
Address:        192.168.101.1#53

Non-authoritative answer:
Name:   YA.RU
Address: 87.250.250.242
Name:   ya.ru
Address: 2a02:6b8::2:242

IPv4-адрес ya.ru — 87.250.250.242.
VPN соединие создается, в общем, для доступа к ресурсам находящимся в «серых» сетях. Адресация их известна. Поэтому, на мой взгляд, правильнее указывать маршруты со стороны сервера (OpenVPN имеет довольно развитые возможности для указания клиенту всяких настроек). Т.е. при подключении сервер передает клиенту маршруты на сети, за которые он «отвечает». Клиент применяет эти настройки и получает частные маршруты на указанные сети. Все остальное ходит через шлюз по умолчанию.
> С tcp есть вторая проблема — один клиентский tcp пакет скорее всего не влезает в один пакет vpn-канала.

Это не проблема tcp, это проблема любогл vpn, каким бы он ни был, tcp, udp, ipsec, gre — все они добавляют заголовки и уменьшают mtu.
Смысл в том, что нет смысла запускать клиентское tcp-подключение в tcp канале. Одного tcp у клиента достаточно, чтобы производить корректную доставку пакетов.

Путаница с моделью OSI. UDP в данном случае используют только потому, что при потере данных их перезапросит протокол более высокого уровня. Разницу в скорости между udp и tcp можно будет увидеть только на сильно загруженной линии.
Для общего развития статья годная. Для реальной работы есть плагин для openvpn к webadmin.

webadmin это webmin? Оно, возможно, и есть, но для реальной работы ставить эту навороченую систему на сервер, который выполняет функцию VPN-шлюза, по-моему как раз не имеет смысла. Для управления сервером OpenVPN, если обычная консоль почему-то не нравится, есть заточенные под него решения вроде родного (коммерческий) или Pritunl (FOSS).

Заметка тем, кто решится сделать подобное для большого количества пользователей:
1. -w для iptables
2. Цепочка на каждого пользователя
Sign up to leave a comment.

Articles