Как направить определенный IP-адрес через системный шлюз по умолчанию?

Как направить определенный IP-адрес через системный шлюз по умолчанию?

Я отправляю весь трафик через 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.

Связанный контент