我的笔记本电脑已连接到有线调制解调器以上网。我想在我的 Android 手机上访问互联网。
我可以通过 USB 数据线将我的 Android 连接到笔记本电脑,然后启用网络共享吗?
编辑:
操作系统:Ubuntu 12.04
答案1
您需要进行反向绑定。据我所知,手机必须已 root 才能进行此操作。
以下是 XDA Developers 的说明 - 操作方法:Ubuntu USB 反向网络共享
答案2
这是我找到的最接近“一键式”的解决方案。
先决条件
已取得 root 权限的 Android 设备
PC 上的 Root 访问权限
亚洲开发银行安装在 PC 上(
apt-get install android-tools-adb
基于 Debian 的发行版)已启用 USB 调试在 Android 上
程序
- 通过 USB 将 Android 设备连接到 PC
- 在 Android 设备上启用 USB 网络共享(设置)
运行以下脚本:
#!/bin/bash WAN="wlan1" # interface providing internet connection on the PC LAN="usb0" # usb interface on the PC AND="rndis0" # usb interface on Android LAN_IP="10.0.0.1" AND_IP="10.0.0.10" NETMASK="255.255.255.0" DNS1="8.8.8.8" DNS2="8.8.4.4" sudo su -c "echo 1 > /proc/sys/net/ipv4/ip_forward" sudo iptables -F -t nat sudo iptables -F FORWARD sudo iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE sudo iptables -A FORWARD -i $WAN -o $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i $LAN -o $WAN -j ACCEPT sudo ifconfig $LAN $LAN_IP netmask $NETMASK up adb shell su -c busybox ifconfig $AND $AND_IP netmask $NETMASK up adb shell su -c busybox route add default gw $LAN_IP adb shell su -c ndc resolver setifdns $AND "" $DNS1 $DNS2 adb shell su -c ndc resolver setdefaultif $AND adb shell ping -c4 $DNS1 adb shell ping -c4 google.com
完毕!
笔记
您可能需要调整接口名称
LAN
、WAN
和AND
。我发现有些应用程序无法识别网络连接,或者只能部分工作。我能够使用以下方法欺骗它们:虚假 Wifi 连接模块Xposed框架