Объявить переменную при запуске скрипта bash

Создайте файл irc_route.sh, который содержит:

#!/bin/bash
# script to make connections to irc.irchighway.net go via DEV.
DEV=eth0 
GW=$(ip route list | sed "s/.* via \([0-9.]*\) dev $DEV.*/\1/;t;d"|head -1)
route add -host irc.irchighway.net gw $GW $DEV

Измените DEV на интерфейс, с которого вы получаете свое интернет-соединение (может быть, любой из wlan0, eth1, eth0, ppp0) , Затем запустите скрипт с помощью sudo bash irc_route.sh, вы можете проверить результаты, выполнив ip route list до и после.

IP-адрес шлюза по умолчанию для интернет-трафика на устройстве DEV хранится в переменной GW, который затем используется для маршрутизации всего трафика, идущего на сервер irc.irchighway.net через GW по умолчанию вместо вашего OpenVPN-соединения.

Чтобы сделать эту работу для всех серверов IRCHighWay, вам нужно будет получить Список всех серверов.

server_list.txt:

 irc.irchighway.net
 caliburn.pa.us.irchighway.net

Сценарий:

#!/bin/bash
# script to make connections to irchighway go via DEV.
DEV=eth0 
GW=$(ip route list | sed "s/.* via \([0-9.]*\) dev $DEV.*/\1/;t;d"|head -1)
cat server_list.txt| xargs -iSERVER route add -host SERVER gw $GW $DEV

Существует «более легкое» решение, вы можете отметить порты и маршрут, основанные на этом, см. в руководстве по iproute2, но я этого не использовал. И есть некоторые проблемы с такой маршрутизацией, если вы не знаете, что делаете.

1
задан 11 August 2014 в 03:13

0 ответов

Другие вопросы по тегам:

Похожие вопросы: