Маршрутизация HTTP через указанный c сетевой интерфейс - PullRequest
0 голосов
/ 27 февраля 2020

Я очень незнаком с Linux, так что простите меня, если на этот вопрос уже был дан ответ, я прочитал довольно много ответов, но я никогда не уверен, относятся ли они на самом деле к моему вопросу.

У меня есть безголовый Raspberry Pi, который автоматически подключается к Bluetooth моего телефона, мой телефон разделяет свой inte rnet доступ через модем. Я использую это первоначальное и надежное подключение к S SH к моей Raspberry Pi и использую рабочий стол с VN C viewer.

Я хотел бы подключиться к сети Wi-Fi, использующей портал авторизации, но браузер всегда использует соединение Bluetooth, поэтому он никогда не перенаправляет меня на страницу портала. Bluetooth-соединение предназначено только для того, чтобы иметь возможность использовать рабочий стол, чтобы я мог пройти через портал, тогда я хотел бы либо отключить Bluetooth, либо просто не использовать его, в основном из-за низкой пропускной способности, которую он обеспечивает.

I Я добавил wlan0 в качестве интерфейса приоритета с ifmetri c, но это не сработало.

Я думал, что принудительное подключение всех HTTP-соединений через интерфейс wlan0 может решить проблему, но может быть проще Кстати, не стесняйтесь говорить мне.

Можете ли вы объяснить "простыми" терминами лучший способ добиться этого?

1 Ответ

0 голосов
/ 29 февраля 2020

Конечно, есть несколько решений. Самое простое - убедиться, что существует только один правильный маршрут по умолчанию.

Существует 3 ситуации:

  1. Вы подключены только через Bluetooth через s sh
  2. Вы подключены через Bluetooth и через Wi-Fi, но еще не через spla sh
  3. Вы находитесь через spla sh

Каждый из них потребует различной конфигурации сети.

В 1 ваша конфигурация сети, вероятно, будет быть:

  • некоторый IP-адрес (назовем его IP-bt) и маску сети
  • Шлюзом по умолчанию является ваш телефон

С route -n вы можете проверить это.

Во 2, конфигурация сети будет немного зависеть от сети Wi-Fi, но в целом ваша конфигурация сети будет:

  • у вас все еще будет IP -bt
  • у вас будет новый адрес на адаптере wifi (который мы называем IP-wifi)
  • шлюзом по умолчанию должен быть шлюз в сети wifi.

Если вы подтвердите это с помощью route -n, вы все равно можете увидеть маршрут с пунктом назначения 0.0.0.0 к вашему телефону. Вы можете удалить этот маршрут. Ваш телефон должен быть подключен напрямую к сети, и поэтому ваш сеанс s sh не должен прерываться.

Если gw по умолчанию не подключен к сети Wi-Fi, вы все равно можете удалить маршрут, который устанавливает телефон по умолчанию gw.

В возрасте до 3 gw по умолчанию должен быть в сети Wi-Fi, а не на телефоне. Вы по-прежнему сможете пользоваться своим телефоном, поскольку он напрямую подключен.

В этом сценарии следует обратить внимание на то, что ваш телефон будет выполнять роль сервера DHCP. Это означает, что время от времени ваша аренда DHCP будет обновляться sh, и маршрут Bluetooth по умолчанию может появиться снова. Отключение Bluetooth предотвратит это.

Второе решение - использовать ifmetric. Вместо того, чтобы сделать wlan0 более низким показателем c, сделайте свой Bluetooth более высоким показателем c. Снова подтвердите с помощью route -n, что метрики соответствуют вашим ожиданиям. С помощью traceroute проверьте, как движутся пакеты.

Третий и наиболее сложный вариант - установить Quagga и настроить правильную маршрутизацию.

...