7

Прежде всего позвольте мне объяснить проблему, которую я пытаюсь решить:

У меня есть телефон Android 2.2, который привязывает свое интернет-соединение через USB к ноутбуку под управлением Ubuntu 10.10. Я хочу поделиться этим подключением к Интернету через кабель Ethernet с другим ноутбуком, на котором установлена Ubuntu 10.10.

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

Я считаю, что у меня есть устройства для связи одним способом через пинг, но я не могу пойти другим путем. Вот где я считаю, что интернет-соединение блокируется.

Я сделал это с помощью Firestarter, который использует NAT, установленный на компьютере, к которому подключен телефон, и пользуясь следующим руководством: http://www.fs-security.com/docs/connection-sharing.

По сути, интерфейс, который дает соединение - это usb0, и я пытаюсь разделить соединение через eth0. Я просто следовал приведенному выше руководству, заменив экземпляры eth0 на usb0, etho1 на etho0. Единственное, что он говорит, чтобы сделать то, что я не могу сделать, это включить DHCP на телефоне Android, потому что, честно говоря, я не знаю, как.

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

Чтобы быть более конкретным, это то, что я сделал: через сетевые подключения GUI:

На первом ноутбуке (тот, который подключен к телефону)

IP-адрес: 192.168.0.1 Маска сети: 255.255.255.0 Шлюз по умолчанию (IP):

На втором латопе, снова через Сетевые подключения: IP-адрес: 192.168.0.2 Маска сети: 255.255.255.0 Шлюз по умолчанию: 192.168.0.1 * Мой файл /etc/resolv.conf на самом деле ничего не показывает, поэтому может возникнуть проблема.

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

Внизу рассказывается, как проверить настройки. Я могу пропинговать 192.168.0.2, как сказано в руководстве, и получить ответ. Однако я не могу зайти на google.com на ноутбуке, который должен получить общее подключение. Кроме того, на 2-м ноутбуке я могу пинговать до телефона. Тем не менее, я не могу пинг с телефона на 2-й ноутбук. Вот почему я верю, что не могу попасть в интернет.

Я в растерянности из-за того, что мне нужно сделать, чтобы это соединение заработало. Нужно ли подключать соединение между usb0 и eth0 на latop, к которому подключен телефон? или это то, что Firestarter уже делает?

** Примечание: я не могу пинговать со второго ноутбука на телефон, если выключаю Firestarter на машине, на которой он работает.

Если у кого-то есть идея, как заставить это работать, это будет очень цениться.

2 ответа2

1

Эти шаги являются своего рода низкоуровневыми и могут быть автоматизированы с помощью, например, NetworkManager в текущих дистрибутивах GNOME 3. Однако ниже приведены инструкции более низкого уровня, которые должны работать в самых разных дистрибутивах и версиях Linux:

Шаг 1: Получите интернет-соединение usb0 работающее нормально на коробке, напрямую подключенной через USB к телефону.

Шаг 2: Подключите кабель Ethernet между компьютерами.

Шаг 3: Используйте следующие команды на хост- компьютере в качестве пользователя root или wrap в sudo:
ifconfig eth0 192.168.0.1 (или выберите свой собственный IP-адрес в назначенных сегментах IP-сети LAN
ifconfig eth0 netmask 255.255.255.0

Шаг 4: Используйте следующие команды на клиентском компьютере (тот, у которого в настоящее время нет подключения к Интернету), от имени root или в sudo:
ifconfig eth0 192.168.0.2 (первые три числа должны быть одинаковыми; последнее должно отличаться от частного IP хост-компьютера)

ifconfig eth0 netmask 255.255.255.0

Шаг 5: Адаптированный здесь, выполните эти шаги как root или wrap в sudo на хост- компьютере:
echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

/sbin/iptables -A FORWARD -i usb0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

/sbin/iptables -A FORWARD -i eth0 -o usb0 -j ACCEPT

Если у вас есть существующие настройки (например, что и Firestarter), вам может потребоваться сбросить ваши iptables на хосте, прежде чем выполнить шаг 5:

iptables -F

Вы можете проверить свои существующие настройки, используя

iptables -L

Наконец: у вас, вероятно, уже есть частный IP-адрес в локальной сети от вашего соединения usb0 . Вы не можете использовать ту же IP-подсеть для NAT на NAT eth0 . Так что, если ваш usb0 имеет 192.168.0.10, вы не можете использовать что-либо из 192.168.0.x на eth0 на любом компьютере.

0

Нужно ли подключать через USB? Если Wi-Fi доступен хотя бы на одном компьютере, вы можете создать точку доступа Wi-Fi в Android, подключиться к Wi-Fi на одном из ноутбуков, а затем подключить два ноутбука вместе с Ethernet. Настройте "средний" ноутбук для маршрутизации трафика через соединение Wi-Fi. Например, в Windows вы можете настроить адаптер для общего доступа к интернету.

Ничто из того, что я упомянул выше, не будет работать с USB-модемом, поэтому вам лучше переключиться на WiFi.

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