Ладно, кажется, я нашел решение.
Проверьте, какие маршруты настроены:
$ ìp показать маршрут
что в моем примере дает такой результат:
по умолчанию через 192.168.0.1 dev enp0s31f6 proto dhcp metric 100
по умолчанию через 192.168.200.68 dev wlp4s0 proto dhcp metric 600
169.254.0.0/16 dev enp0s31f6 метрика ссылки области 1000
192.168.0.0/24 dev enp0s31f6 ссылка на область действия ядра src 192.168.0.151 метрика 100
192.168.200.0/24 dev wlp4s0 proto kernel scope link src 192.168.200.78 метрика 600
Первые две строки здесь показывают шлюзы по умолчанию для моего Ethernet (enp0s31f6) и Wi-Fi (wlp4s0) соответственно.
Теперь, чтобы найти IP-адреса доменов, где меня всегда банят, я использую копать землю
команда следующим образом:
$ копать + короткий дискорд.ком
162.159.137.232
162.159.135.232
162.159.128.233
162.159.136.232
162.159.138.232
$ dig +короткий дискорд.gg
162.159.136.234
162.159.135.234
162.159.133.234
162.159.134.234
162.159.130.234
Затем добавьте маршрут для каждого из этих IP-адресов назначения через интерфейс Wi-Fi (используя шлюз по умолчанию для интерфейса Wi-Fi, который мы получили из первой команды):
sudo route add -host 162.159.137.232 gw 192.168.200.68
и т.д.
Чтобы делать это автоматически при каждом подключении Wi-Fi, если вы используете NetworkManager, вы можете добавить скрипт в /etc/NetworkManager/dispatcher.d
каталог. Например:
sudo nano /etc/NetworkManager/dispatcher.d/10-bloody-routes
10-
здесь в начале имени файла обозначается приоритет. Скрипты в диспетчер.d
каталоги запускаются в лексикографическом порядке по сетевым событиям (интерфейс подключен, отключен и т. д.)
Я ввел этот скрипт bash здесь, чтобы автоматизировать вышеупомянутый процесс:
#!/бин/баш
if [ "$1" == "wlp4s0" ] && [ "$2" == "up" ]; тогда
шлюз = `IP-маршрут | awk '/default/ { print $3 " " $5 }' | awk '/wlp4s0/ { print $1 }'`;
echo "Как дела, $gateway: "`date` >> /home/trollkotze/smackmybitch.up;
echo discord.com >> /home/trollkotze/smackmybitch.up;
для x в `копать +short a discord.com`; делать
echo route add -host $x gw $gateway >> /home/trollkotze/smackmybitch.up;
route add -host $x gw $gateway >> /home/trollkotze/smackmybitch.up;
сделано;
echo discord.gg >> /home/trollkotze/smackmybitch.up;
for x в `dig +short a discord.gg`; делать
echo route add -host $x gw $gateway >> /home/trollkotze/smackmybitch.up;
route add -host $x gw $gateway >> /home/trollkotze/smackmybitch.up;
сделано;
фи;
Как видно из скрипта, первый и второй аргумент — это имя интерфейса (в моем случае я ищу wlp4s0
) и событие (я ищу вверх
событие, когда интерфейс переходит в онлайн).
Я добавил некоторые журналы в файл в моем домашнем каталоге, чтобы убедиться, что все работает.
Всякий раз, когда я подключаю свой Wi-Fi, этот скрипт запускается и добавляет соответствующие маршруты в Discord через шлюз Wi-Fi по умолчанию.