Как включить общий доступ в Интернет через USB Ubuntu 20.04 на android 6.0.1 и 10

Подключение к Интернету в Ubuntu осуществляется через кабель Ethernet.
Я хочу подключить два устройства и совместно использовать Интернет из Ubuntu в Samsung Galaxy Note Edge [SM-N915FY; android: 6.0.1] и Samsung Galaxy Note 9 [SM-N960F; android 10] с помощью кабеля USB . Я прочитал все предыдущие темы о совместном использовании Интернета, все устал, но я не смог поделиться данными.

В Подключения - Модуль системных настроек -> вкладка IPv4 изменен метод на Общий доступ к другим компьютерам , но все еще не работает.

Конечно, я получил разрешение на доступ с ПК по телефону.
На обоих Samsung Notes нет опции обратного модема. Также надоело включать Отладку по USB .

0
задан 10 August 2020 в 18:37

1 ответ

У меня есть способ но немного сложно. Вам потребуются:

  • Android с опцией «Общий доступ к Интернету через USB-ПК» (не классический USB-модем)
  • iptables или nftables (для masquerade/SNAT)
  • tcpdump
  • iproute2
  • DNS-сервер на вашем Linux (dnsmasq быстро настраивается)

1/ На вашем устройстве Android: перейдите в «Настройки» >> «Сетевое подключение» >> «Модем и переносная точка доступа» >> «Интернет-ресурс USB-PC». Скажите «ОК» или выберите любую предложенную ОС (обычно это разные версии Windows), это не имеет значения, пока функциональность включена. => теперь ваш смартфон немедленно попытается подключиться к Интернету, но ваша система Linux еще не готова. Вам нужно будет получить следующую информацию: подсеть и шлюз по умолчанию, который будет использовать ваш смартфон. Это можно сделать с помощью tcpdump

2/ На вашем Linux: используйте tcpdump для захвата трафика с сетевого интерфейса USB (включено, когда общий доступ к Интернету через USB ПК активирован с Android). Вы увидите много тех, у кого есть XXXX. Этот IP-адрес является шлюзом по умолчанию, к которому пытается подключиться Android. добавьте этот IP-адрес и правильную маску подсети в интерфейс привязки (ip-адрес sudo add XXXXX dev XXXX) или используйте диспетчер сети

3/ включите маскирование с помощью iptables:

sudo iptables -A POSTROUTING -o usb_thethering_interface -j MASQUERADE

4/ убедитесь, что ваш DNS-сервер работает в Linux .

Должно работать нормально

0
ответ дан 13 November 2020 в 07:11

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

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