Я отправляю весь трафик через Wireguard VPN, но мне нужно настроить исключение. Пакеты, направленные на мой собственный общедоступный IP-адрес, должны проходить через шлюз системы по умолчанию.
Он работает как задумано, если я добавлю это в маршруты ядра: route add X.X.X.X gw 192.168.1.254
. Но, конечно, здесь я жестко кодирую шлюз своего маршрутизатора, и он не будет работать, если я подключусь к любой другой сети. Как я могу обобщить это поведение, чтобы я всегда отправлял пакеты, направленные на X.X.X.X через шлюз по умолчанию? Возможно, лучше использовать iptables, чем добавлять маршруты ядра?
Вы можете использовать переменную:
defaultGW=$(/sbin/ip route | awk '/default/ { print $3 }')
затем:
route add X.X.X.X gw $defaultGW
Возможно, вам стоит начать использовать ip route
, это современная альтернатива route
.