Назад | Перейти на главную страницу

маршрутизация на основе используемого интерфейса?

У меня два подключения к Интернету. По умолчанию eth0 и туннель vpn на tun0.

мой ip show route показывает:

default via 149.202.xxx.xxx dev eth0
10.8.8.0/24 dev tun0  proto kernel  scope link  src 10.8.8.234
149.202.xxx.0/24 dev eth0  proto kernel  scope link  src 149.202.xxx.yy

Шлюз для tun0 является 10.8.8.1 хотя я не хочу устанавливать его по умолчанию. Я бы хотел, например, использовать ping -I tun0 8.8.8.8, или curl --interface tun0 http://somewebsite.com и в этой конкретной ситуации я бы хотел использовать tun0 как мое исходящее соединение.

Является ли это возможным?

Вот что сработало для меня:

echo "10 vpn" >> /etc/iproute2/rt_tables
ip route add default via 10.8.8.1 dev tun0 table vpn
ip rule add from 10.8.8.234/32 table vpn
ip rule add to 10.8.8.1/32 table vpn
ip route flush cache

И доказательство:

$ curl ifconfig.co
149.202.xxx.xxx

$ curl --interface tun0 ifconfig.co
178.250.xxx.xxx