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