Android 网络共享
网络共享 是一种通过智能手机的网络连接,使您的电脑可以访问互联网的方式。自 Android 2.2 "Froyo" 起,原生支持 USB 网络共享和 Wi-Fi 热点网络共享。USB #反向网络共享,即通过您的电脑使您的智能手机访问互联网,也是可行的。
原生方式
USB 网络共享
USB 网络共享自 Android 2.2 "Froyo" 起可用,通常比 Wi-Fi 提供更可靠的连接,同时比蓝牙更快。由于 USB 网络共享是一种有线方法,因此对于相当的连接质量,它也比无线方法消耗更少的电量。
- 通过 USB 将手机连接到电脑(USB 连接模式 -- 手机门户、存储卡或仅充电 -- 并不重要,但请注意,在网络共享期间您将无法更改 USB 模式)
- 从手机启用网络共享选项。这通常通过以下方式完成
- 设置 > 无线和网络 > 互联网共享 (或网络共享与便携式热点,对于更新的版本)
- 设置 > 更多... > 网络共享与移动热点 > USB 网络共享
- 安装 usb_modeswitch 软件包。有关更多信息,请参见 移动宽带调制解调器#模式切换。
- 按照 网络配置 进行操作。
如果您正在使用蜂窝数据套餐,并且最近进入了新的计费周期,您可能需要重启手机。
使用 systemd-networkd 和 udev
使用 systemd-networkd,您可以自动调整网络,以便在插入手机时使用手机作为网关。
/etc/udev/rules.d/90-android-tethering.rules
# Execute pairing program when appropriate ACTION=="add|remove", SUBSYSTEM=="net", ATTR{idVendor}=="18d1" ENV{ID_USB_DRIVER}=="rndis_host", SYMLINK+="android"
您可能需要根据您的手机调整 idVendor
属性。您可以使用 udevadm 进行检查
$ udevadm info /sys/class/net/enp0s26u1u2
然后创建相应的 systemd-networkd 文件
/etc/systemd/network/50-enp0s26u1u2.network
[Match] Name=enp0s26u1u2 [Network] DHCP=yes
Wi-Fi 热点
对于运行 Android 2.2 "Froyo" 或更高版本的设备,可以使用 Android 手机作为 Wi-Fi 热点(连接到 3G/4G 移动互联网连接)。
通过以下方式之一启用它
- 设置 > 无线和网络 > 互联网共享 > Wi-Fi 热点
- 设置 > 更多... > 网络共享与移动热点 > 移动 Wi-Fi 热点
- 在某些手机上,这种方法会迅速耗尽电池电量,并且容易引起剧烈发热,这与 USB 不同。
- 在某些手机上,只能共享移动数据,而不能“桥接” Wi-Fi 信号。
通过蓝牙网络共享
Android(从至少 4.0 开始,可能更早)可以在接入点模式下提供蓝牙个人区域网络 (PAN)。
NetworkManager 可以执行此操作并自行处理网络初始化;有关更多详细信息,请查阅其文档。
或者:配对并确保您可以连接您的计算机和 Android 设备,如 蓝牙 中所述,然后,替换 Android 设备的地址(此处给出为 AA_BB_CC_DD_EE_FF
),执行
$ dbus-send --system --type=method_call --dest=org.bluez /org/bluez/hci0/dev_AA_BB_CC_DD_EE_FF org.bluez.Network1.Connect string:'nap'
这将创建一个网络接口 bnep0
。最后,在此接口上配置网络连接;Android 默认提供 DHCP。
使用 EasyTether 进行 USB 网络共享
获取 easytether linux 客户端软件。设置和运行它的命令如下。
# pacman -U easytether-0.8.5-2-x86_64.pkg.tar.xz # easytether-usb # dhcpcd tap-easytether
确保您的手机上安装了 EasyTether android 应用程序,以便它可以连接。注意:Lite 应用程序禁用了一些连接,您必须拥有付费应用程序才能获得完整功能。因此,建议改用 AziLink 设置。
反向网络共享
反向网络共享是通过电脑为 Android 提供互联网连接。gnirehtetAUR 提供反向网络共享。
像上面提到的那样,通过 USB 将您的手机连接到您的电脑并启动
$ gnirehtet run
使用 SOCKS 代理进行网络共享
使用此方法,网络共享是通过从手机到电脑的端口转发来实现的。这仅适用于浏览。对于 Firefox,您应该在 about:config
(地址栏) 中将 network.proxy.socks_remote_dns
设置为 true
所需工具
- android-tools 和 android-udev 软件包
- 从您的手机到电脑的 USB 连接线
- Tetherbot, Proxoid, 或 Android Proxy Server 三者之一
步骤
Tetherbot
Tetherbot 是一个实验性的 SOCKS 代理和端口跳板,它应该允许您使用 T-Mobile G1 手机的互联网连接(EDGE、3G 或 Wifi)将您的笔记本电脑连接到互联网。 它已停止维护,其网站已关闭,但仍然可以从 Wayback Machine[1] 访问,其 APK 也可以从中下载。
为了通过 Tetherbot 进行 SOCKS 代理以将您的浏览器连接到互联网,请执行以下操作
- 对于您的手机,打开应用程序Tetherbot,拒绝电话和存储权限,然后按Start Socks按钮
- 将端口转发到您的本地计算机
# adb forward tcp:1080 tcp:1080
- 现在转到您的 Web 浏览器的代理设置,设置手动代理配置,代理主机地址为
localhost
,端口为1080
,其余留空。
Proxoid
按照以下链接中演示的说明进行操作。
Android Proxy Server
目前在 Google Play 商店 中可用,并支持 HTTP/HTTPS、Socks5、Shadowsocks 和 TCP Relay 代理。
要启动 SOCKS 代理以将您的浏览器连接到互联网,请执行以下操作
- 打开应用程序Android Proxy Server,并启用Socks5 Proxy勾选框
- 将端口转发到您的本地计算机
# adb forward tcp:1088 tcp:1088
- 现在转到您的 Web 浏览器的代理设置,设置手动代理配置,代理主机地址为
localhost
,端口为1088
,其余留空。