GNU/Linux >> Znalost Linux >  >> Linux

Android – Jak nastavíte internetový pass-through (reverse-tether) na linuxu?

Následující chvíli funguje, ale pouze pro prohlížeč.

Když připojíte telefon přes usb a zvolíte Internet pass-through, měli byste získat nové zařízení RNDIS (usb0 nebo usb1). Pro ubuntu upravte /etc/network/interfaces a přidejte následující řádky:

iface usb0 inet dhcp
iface usb1 inet dhcp

Tím se IP přiřadí automaticky při přidání zařízení. Pokud síťová adresa není přiřazena automaticky usb0 nebo usb1, musíte to udělat ručně.

Poté musíte nastavit NAT na vašem linuxovém počítači. Něco jako:

sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo echo 1 > /proc/sys/net/ipv4/ip_forward 

Potřebujete také server DNS:

sudo apt-get install bind9

Funguje to několik minut, ale po chvíli telefon přestane hledat HTC Sync a odpojí se.

Pro odemknuté telefony

Pokud máte rootovaný telefon, můžete se připojit trvale (mně fungovalo fre3vo). Proveďte následující pomocí adb.

Povolit režim USB pro síť a adb:

adb shell echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch

Přiřaďte IP zařízení usb0 v telefonu:

adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up

Přidejte výchozí trasu. IP by měla být IP přiřazená k usb0 v linuxu:

adb shell route add default gw 192.168.99.1 dev usb0

Nastavte DNS server. Toto je otevřený server DNS společnosti Google, ale pokud máte server DNS, může to být IP adresa vašeho počítače s linuxem:

adb shell setprop net.dns1 8.8.8.8

Vytvořil tento malý bash pro automatizaci všeho. Stačí připojit telefon v režimu nabíjení k počítači a spustit tento bash.

#!/bin/bash
/opt/android-sdk-update-manager/platform-tools/adb shell 'echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch'
sleep 1
/opt/android-sdk-update-manager/platform-tools/adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up
sleep 1
/opt/android-sdk-update-manager/platform-tools/adb shell setprop net.dns1 8.8.8.8

get_ip ()
{
ifconfig usb0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep .
}

echo "waiting for IP on computer usb0"
while [[ `get_ip` < 192 ]];do sleep 2; done
ip=`get_ip`
echo "IP adress is $ip "
/opt/android-sdk-update-manager/platform-tools/adb shell route add default gw $ip dev usb0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Linux
  1. Jak změnit Shell v Linuxu

  2. Jak zjistit, který Shell používáte v Linuxu

  3. Jak nastavit proměnnou $Path v Linuxu

  1. Jak nastavit proměnnou $PATH v Linuxu

  2. Jak nastavit nebo změnit název hostitele systému v systému Linux

  3. Jak programově nastavíte hardwarové hodiny v Linuxu?

  1. Jak nastavit/vytvořit proměnné prostředí a prostředí v Linuxu

  2. rbash – Nastavení omezeného prostředí v Linuxu

  3. Jak trvale nastavit $PATH na Linux/Unix?