2

Есть офисная сеть (с одним роутером). Я пытаюсь подключить (веб-браузер, telnet) Android-устройства к моему хосту (оба подключены к одному и тому же маршрутизатору через Wi-Fi).

Настройки роутера:

IP: 192.168.1.1
Mask: 255.255.255.0

На хосте назначения

#ifconfig
eth2   inet addr:192.168.1.108  Bcast:192.168.1.255  Mask:255.255.255.0

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth2
192.168.1.0     0.0.0.0         255.255.255.0   U     2      0        0 eth2

Мой адрес хоста: 192.168.1.108

Адрес устройства Android: 192.168.1.105

Когда я пытаюсь пропинговать мой хост с Android (2.x/4.x) (планшетный ПК /мобильный), выводятся следующие сообщения:

From 192.168.1.105: icmp_seq=xx Destination Host Unreachable

Я попытался отследить маршрут к хосту с помощью инструмента "traceroute" на двух устройствах Android. Одно устройство показало свой собственный адрес, но после нескольких попыток оно показало адрес назначения и имя хоста. Затем я попытался подключиться к веб-службе, работающей на целевом хосте, и он подключился.

Затем через некоторое время он не мог подключиться снова, и traceroute показала тот же "собственный" адрес и имя хоста.

Мне не удалось заставить другое устройство Android показывать имя хоста назначения с помощью "traceroute".

Такое же поведение было с предыдущим маршрутизатором Wi-Fi.

В чем дело? Почему они думают, что «192.168.1.108» принадлежат другой сети?

3 ответа3

3

Проблема в том, что Android не добавляет основную таблицу маршрутов в свою файловую систему.

В этом случае проверка связи с Android может работать только с параметром -I interface_number , например:

 ping -I eth3 192.168.0.108

Но пинговать Android извне не получается.

Чтобы решить эту проблему, необходимо добавить основную таблицу маршрутов:

ip rule add from all lookup main pref 1

Вы можете найти основную таблицу маршрутов:

ip rule

0:      from all lookup local

1:      from all lookup main

10000:  from all fwmark 0xc0000/0xd0000 lookup 99

13000:  from all fwmark 0x10063/0x1ffff lookup 97

15000:  from all fwmark 0x0/0x10000 lookup 99

16000:  from all fwmark 0x0/0x10000 lookup 98

17000:  from all fwmark 0x0/0x10000 lookup 97

И запись маршрута:

ip route list table main

192.168.0.0/24 dev eth3  proto kernel  scope link  src 192.168.0.105
1

В Linux есть несколько таблиц маршрутизации. Мой Android Phone использует "скрытую" таблицу с номером 2.

Таблица 0 показывает вам все записи:

ip route show table 0

Вы можете попробовать добавить свой хост в таблицу 2:

ip route add table 2 192.168.1.108 via 192.168.1.1

Дополнительную информацию можно найти здесь: http://linux-ip.net/html/routing-tables.html

0

Не уверен, что это ваша проблема, но некоторые маршрутизаторы Wi-Fi и точки доступа имеют функцию под названием "Разделение станций" или "Беспроводная изоляция", которая не позволяет подключенным устройствам общаться друг с другом. Когда эта функция включена, точка доступа не будет маршрутизировать пакеты между различными подключенными устройствами: только между устройствами и портом восходящей линии связи.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .