MyTetra Share
Делитесь знаниями!
Подключение компьютера с Linux к сети Интернет через USB-кабель и телефон с Android
Время создания: 25.08.2020 10:18
Текстовые метки: linux, android, андроид, телефон, интернет, сеть, подключение, usb, модем, кабель
Раздел: Компьютер - Linux - Сеть в Linux

Иногда нужно подключить какой-нибудь компьютер с Linux на борту к сети Интернет, причем никаких устройств кроме Android-смартфона и USB-кабеля под рукой нет. Хорошо если компьютер - это ноутбук с встроенным WiFi, тогда на смартфоне можно было бы поднять WiFi точку доступа (APN), и подключиться к ней. А что делать, если WiFi в компьютере просто нет? В такой ситуации можно подключиться к сети Интернет через Андроид-смартфон и USB-кабель.





Вначале надо соеденить USB-кабелем смартфон и комптьютер. Затем на смартфоне необходимо активировать USB-модем. В разных телефонах эта активация расположена в разных пунктах меню. Например, в Huawei Honor 6 включение USB-модема происходит так:



Настройки - Еще - Режим модема - USB-модем



В момент, когда USB-модем включается, на шине USB компьютера должно появиться новое USB-устройство. Увидеть его можно через команду dmesg, запускаемую от рута. В конце выхлопа этой команды должны быть примерно такие строки:



[ 5945.395052] usb 1-1.4: new high-speed USB device number 6 using ehci-pci

[ 5945.504945] usb 1-1.4: New USB device found, idVendor=12d1, idProduct=1050

[ 5945.504948] usb 1-1.4: New USB device strings: Mfr=2, Product=3, SerialNumber=4

[ 5945.504950] usb 1-1.4: Product: H60-L04

[ 5945.504952] usb 1-1.4: Manufacturer: HUAWEI

[ 5945.504954] usb 1-1.4: SerialNumber: X9L021493123456789

[ 5945.531053] usbcore: registered new interface driver cdc_ether

[ 5945.534466] rndis_host 1-1.4:1.0 usb0: register 'rndis_host'

at usb-0000:00:1a.0-1.4,

RNDIS device, 76:d4:94:e8:51:98

[ 5945.534494] usbcore: registered new interface driver rndis_host

[ 5945.537574] rndis_host 1-1.4:1.0 enp0s26u1u4: renamed from usb0



Из этой информации видно, что по USB-интерфейсу было подключено устройство usb0, которое для удобства пользователя было переименовано в enp0s26u1u4.


Далее надо дать команду ifconfig -a или ip addr, и посмотреть на сетевые устройства, которые видит Linux:



# ifconfig -a

enp0s26u1u4: flags=4098<BROADCAST,MULTICAST> mtu 1500

ether 5e:b8:41:95:5c:04 txqueuelen 1000 (Ethernet)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.1.95 netmask 255.255.255.0 broadcast 192.168.1.255

...


lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

...



# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1

...

2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

...

3: enp0s26u1u4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000

link/ether 5e:b8:41:95:5c:04 brd ff:ff:ff:ff:ff:ff



Здесь видно, что сетевое устройство enp0s26u1u4 присутсвует в системе, но еще не настроено для возможности передачи данных. Чтобы интернет заработал через это устройство, необходимо выполнить следующие команды (от рута):



ifconfig enp0s26u1u4 up

dhclient enp0s26u1u4



Все! После такой настройки, интернет через USB-кабель, подключенный к мобильному телефону, должен работать. Настройки USB-модема изменятся следующим образом:



# ifconfig -a

enp0s26u1u4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.42.208 netmask 255.255.255.0 broadcast 192.168.42.255

inet6 fe85::1cb8:41ff:fe95:c98 prefixlen 64 scopeid 0x20<link>

ether 5e:b8:41:95:5c:04 txqueuelen 1000 (Ethernet)

RX packets 31 bytes 3233 (3.1 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 61 bytes 11452 (11.1 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

...



Проверить соединение можно командой:



> ping udaff.com
PING udaff.com (185.31.208.114) 56(84) bytes of data.
64 bytes from udaff.com (185.31.208.114): icmp_seq=1 ttl=53 time=343 ms
64 bytes from udaff.com (185.31.208.114): icmp_seq=2 ttl=53 time=60.6 ms
64 bytes from udaff.com (185.31.208.114): icmp_seq=3 ttl=53 time=63.4 ms
64 bytes from udaff.com (185.31.208.114): icmp_seq=4 ttl=53 time=61.2 ms
64 bytes from udaff.com (185.31.208.114): icmp_seq=5 ttl=53 time=62.6 ms



Если ответы от сайта есть, значит все настроено и работает.



Внимание! Многие операторы сотовой связи блокируют траффик, идущий не с телефона, а с устройства, подключенного к телефону. Зачем операторы так поступают - это большая загадка. Операторы определяют такой траффик, обычно, по значению TTL. Для того, чтобы операторское оборудование не воспринимало траффик с компьютера как "неправильный", можно глобально изменить значение TTL на то, которое генерирует сам смартфон. TTL смартфона и компьютера отличаются на единицу. Как это сделать - тема для отдельной статьи.


Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования