У меня есть 3 сетевых интерфейса: lo
, new0
и new1
. Я использую new1
для доступа в интернет.
Мой компьютер сошел с ума несколько дней назад и попытался получить доступ к Интернету lo
. (Локальный). Когда я ifconfig lo down
, он отправляет пакеты на new0
.
Я хочу, чтобы он использовал new1.
Как я могу это сделать? (Я не могу изменить свой metric
, оба застряли на 1)
РЕДАКТИРОВАТЬ: я могу получить доступ к ssh
, скачать торренты и использовать другие протоколы. (Но http
и https
не работают, мгновенный «Сервер не найден» без времени загрузки в браузере.)
Приоритизация интерфейсов для общего трафика сделана управление маршрутными метриками .
Каждый маршрут связал параметры, такие как числа транзитных участков и пропускная способность. См. netstat -nr
и" metric
" опция в странице справочника для route
команда.
Для очень простого управления метрического использования инструмент ifmetric :
sudo apt-get update
sudo apt-get install ifmetric
Когда-то установленное использование это для изменения метрического значения для интерфейса отошлите этот http://manpages.ubuntu.com/manpages/vivid/man8/ifmetric.8.html
Метрика может измениться на нескольких местах. Лучше всего работа для меня является конфигурацией в etc/network/interface
auto lo
iface lo inet loopback
auto new0
iface new0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
up route add default gw aaa.aaa.aaa.aaa metric 10
down route del default gw aaa.aaa.aaa.aaa
auto new1
iface new1 inet static
address yyy.yyy.yyy.yyy
netmask yyy.yyy.yyy.yyy
up route add default gw bbb.bbb.bbb.bbb
down route del default gw bbb.bbb.bbb.bbb
На этом пути, когда интерфейс new0
поднимитесь принесет маршрут к шлюзу aaa.aaa.aaa.aaa
с метрикой 10. Интерфейс new1
поднимите маршрут к bbb.bbb.bbb.bbb
с более низкой метрикой и трафиком будет направлен в том интерфейсе.
Если Вы делаете sudo ifdown new1
на отключают кабель от маршрута карты, будет удален и маршрут к aaa.aaa.aaa.aaa
будет новый оптимальный маршрут для трафика.
Когда снова brin интервал new1
маршрут будет снова добавлен и bbb.bbb.bbb.bbb
снова будет Ваш оптимальный маршрут.
Редактирование 1
Приоритет маршрута не является тем же как маршрут на основе целевого порта.
Но я даю Вам пример для маршрутизации трафика для ssh, port 22
и можно реализовать для порта, для которого Вы нуждаетесь
Давайте начнем с iptable. Здесь мы возьмем ssh
как сервис для маршрутизации. Использовать mangle
таблица iptable для изменения ssh
пакеты.
sudo iptables -t mangle -A OUTPUT -p tcp –dport 22 -j MARK –set-mark 0×1
Мы отмечаем все пакеты с целевым портом 22
как ’0×1 ′.
Теперь сохраните и перезапустите iptables
.
service iptables save
service iptables restart
Удалить эту запись из iptables
мы можем использовать -D
вместо -A
.
Затем, создайте новую таблицу маршрутизации IP в /etc/iproute2/rt_table
просто дав запись
100 sshtable
Запишите правило для ssh
пакеты.
ip rule add fwmark 0×1 lookup sshtable
Добавьте маршрут за новой таблицей sshtable
. Здесь мы будем использовать ’192.168.1.1 ′ в качестве шлюза для ssh
. Адрес ’192.168.1.1 ′, в этом примере будет адресом шлюза для new2
Весь другой трафик пройдет шлюз по умолчанию иначе new1
, который виден выставочной команде маршрута IP.
Мы копируем все записи кроме записи шлюза по умолчанию от основной таблицы.
sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table sshtable $ROUTE; done
Добавьте запись шлюза по умолчанию для ssh
пакеты к таблице sshtable
sudo ip route add default via 192.168.1.1 table sshtable
Использовать ip route show table sshtable
показать все маршруты в sshtable
.
Вот именно.. мы сделали это!!!
Повторите все для imap
на порте 465
или hhtp
на порте 80
или https
на порте 443
...