Не уверен, что это то, что вам нужно, но в своей функции вы можете использовать команду namei
для проверки целевого файла перед созданием символической ссылки.
$ touch file1
$ ln -s file1 file2
$ ln -s file2 file3
$ namei file3
f: file3
l file3 -> file2
l file2 -> file1
- file1
$ echo $?
0
$ rm file1 # break first symlink
$ ls -l
$ namei file3
f: file3
l file3 -> file2
l file2 -> file1
file1 - No such file or directory
$ echo $?
1
Мне удалось это понять. Я добавил маршрут к соединению с помощью nmcli
nmcli con modify "<connection name>" +ipv4.routes "<ip>/24"
Это будет зависеть от используемой вами VPN. как сказал @roaima, если это openvpn, вы можете добавить его в конфигурацию клиента как route [ip] 255.255.255.0 [gateway]
. Где «ip» — это подсеть, которую вы хотите маршрутизировать, а gateway — это шлюз вашего сетевого интерфейса vpn.
Для таких вещей, как wireguard, вот обсуждение на Reddit:
https://www.reddit.com/r/WireGuard/comments/cwz0fe/route_traffic_for_wireguard_subnet_through/
для других vpns (expressvpn и т. д. )это может быть невозможно.