LINUX.ORG.RU
решено ФорумAdmin

Трафик некоторых сайтов в обход WireGuard

 , ,


0

1

Хочу пустить трафик некоторых сайтов (не приложений) в обход VPN. Вот текущий конфиг клиента:

[Interface]
Address = 10.0.0.2/24
DNS = 1.1.1.1
PrivateKey = (hidden)

[Peer]
PublicKey = pcvQhx3nES/UbcCd1YfQxfjidkBpZQE0UsLUBdp+43o=
AllowedIPs = 0.0.0.0/0
Endpoint = ip:port

К сожалению противоположной по значению AllowedIPs фунции я не нашёл (то есть можно задать список ip которые будут заворачиваться в тунель, но нельзя задать список ip которе НЕ будут этого делать). Я так понял надо настроить таблицу маршрутизации. Но не знаю как это сделать. В man wg-quick есть такой пример:

A combination of the `Table', `PostUp', and `PreDown' fields may be used for policy routing as well. For example, the following may be used to send SSH traffic (TCP port 22) traffic through the tunnel:
[Interface]
Address = 10.192.122.1/24
PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
ListenPort = 51820
Table = 1234
PostUp = ip rule add ipproto tcp dport 22 table 1234
PreDown = ip rule delete ipproto tcp dport 22 table 1234

[Peer]
PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=
AllowedIPs = 0.0.0.0/0

Но я опять же понял как сделать так чтобы фильтруемый ip rule трафик заворачивался в тунель, а как наоборот сделать не знаю.

Сайты это расплывчатое понятие, адрес в браузере один, а страница может тянуть контент с кучи других url'ов. Но, если вы точно знаете список ip-адресов, на которые пакеты должны идти мимо тунеля, то нужно просто править основную таблицу маршрутизации. ip rule вам и не нужен.

Без тунеля смотрите вывод команды ″ip route″, запоминаете, что у вас в строке ″default″ (маршрут по умолчанию) там «via ШЛЮЗ dev ИНТЕРФЕЙС″. Потом для каждого ip-адреса добавляете маршут:

ip route add IP-АДРЕС via ШЛЮЗ dev ИНТЕРФЕЙС

mky ★★★★★ ()