Android手机通过USB数据线共享Linux电脑网络

2023-05-16

这里要讲述的是手机通过usb数据线共享电脑(linux系统)的网络来自由上网。通过USB数据线将手机与电脑相连, 再分别在电脑和手机上虚拟出一个网络接口用于网络通信, 这很类似于VPN与虚拟机上网的原理。 好处是不论台式还是笔记本都适用, 只要有USB接口,并且可以一边充电、一边拷数据、一边上网。

借用一下 eexpress的图做个说明:



三、设置过程

  1. 强制启动internet传输模式:

    经过我反复研究发现android手机中的某些文件可以设定usb的工作模式,例如:

    /sys/devices/platform/msm_hsusb/usb_function_switch 的值设为“6”的话,usb工作在adb和rndis模式,这里的rndis模式等同于前面所讲的internet传输模式。/sys/devices/virtual/android_usb/android0/f_rndis/on 或者/sys/class/android_usb/f_rndis/on 的值为“1”的话,单独开启rndis模式。我在这里使用最后那个文件来强制启动rndis,这里需要手机具有root权限。

在手机的模拟终端或者adb shell中以root权限运行如下命令打开internet传输模式:

1
echo 1 >  /sys/class/android_usb/f_rndis/on

2. linux电脑设置:

经过上一步后,电脑会再次获得网络硬件usb0,进一步还需做如下设置:

1
2
3
4
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i usb0 -o eth0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo ifconfig usb0 192.168.99.80 netmask 255.255.255.0

命令依次的含义是:打开IP转发,允许usb0到eth0的包通过防火墙,在服务器上设置了对于客户端的NAT,设置usb0网卡的ip地址(此地址任意,但需与手机相应地址一致)。



3.android手机设置:

在手机的模拟终端或者adb shell中以root权限运行如下命令设置手机网络参数:

1
2
3
ifconfig usb0 192.168.99.81 netmask 255.255.255.0 up
route add default gw 192.168.99.80 dev usb0
setprop net.dns1 8.8.8.8

命令依次的含义是:启动usb0网设备并设置ip地址,设置网络路由(网关),设置dns地址。


注意此处的网关(192.168.99.80)必须同电脑的usb0的地址一致。


至此设置完毕,打开手机浏览器试一下,是不是可以畅快上网了啊!耶~~!


4.建议:

上面的命令比较多,电脑上可以写个shell脚本,使用时双击运行一下即可,但是在手机上,如果使用模拟终端每次手动输入的话实在是太麻烦,推荐使用GScript软件将以上命令保存为脚本文件, 当需要设置的时候就直接运行脚本, 脚本配置如下图:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android手机通过USB数据线共享Linux电脑网络 的相关文章

随机推荐

  • 用fastboot烧录system.img 出现remote: data too large解决办法

    用fastboot命令烧录 xff0c 提示如下错误信息 xff1a target reported max download size of 536870912 bytes erasing 39 system 39 OKAY 0 016s
  • MTK Android为某个APP单独添加selinux配置文件

    需求 MTK Android 11 test是一个system APP 涉及到许多个selinux的权限 xff0c 不想影响所有的system APP的权限 xff0c 需要单独为test设定selinux 方法 domain devic
  • 2012年展望

    由于各种原因 xff0c 客观的 主观的 不过归根结底还是主观的多一些 xff0c 2011年整体过的很颓废 xff0c 上班大多在上网 xff0c 工作上几乎没有一点成绩 xff0c 自己也是很不满意 2012年世界末日都快来了 xff0
  • http和ftp协议的区别

    项目中应用到ftp xff0c 将ftp的笔记上传一下 简单的说 xff1a HTTP是超文本传输协议 xff1b 面向网页的 FTP是File Transfer Protocol 文件传输协议 xff1b 面向文件的 1 FTP 1 FT
  • Python爬虫(4)获得所有Top250部电影的信息并存入数据库

    上次我们完成了单页电影的获取并保存到了Excel文件中 xff0c 不知道小伙伴们都完成了没 xff1f 有没有把Top250部电影都保存下来的 xff1f 在编写这些代码过程中遇到什么问题了没 xff1f 如果遇到但是没有解决 xff0c
  • c#笔记-模式匹配

    模式匹配 模式匹配可以判断一个值的类型和内容 可以判断嵌套的属性 xff0c 但只能和常量进行比较 模式匹配使用is表达式 xff0c 或是在switch选择 xff0c 和switch表达式的分支块中启用 模式匹配使用专有的关键字或运算符
  • typeScript+egg.js+node.js后台项目搭建(一)

    typeScript egg js node js后台项目搭建 一 1 安装node js 地址 https nodejs org en 下载安装后 打开控制台cmd 输入 node v 在安装ts 可以参考typeScript中文官网 n
  • CGroup 介绍、应用实例及原理描述(已发表于IBM开发者论坛)

    插播小广告 xff0c 本人的 大话 Java性能优化 一书已经在亚马逊 京东 当当 天猫出售 xff0c 提前谢谢大家支持 原文请查看 xff1a http www ibm com developerworks cn linux 1506
  • python + celery简例

    在网上找了半天 xff0c 也没找到完整的例子 xff0c 自己写吧 1 一个队列 自定义10个优先级 xff0c 修改默认celery队列名称 1 testcelery py from celery import Celery impor
  • java+selenium获取动态下拉列表元素

    做自动化的时候 xff0c 遇到这么一个闹心问题 xff1a 研发用html里的 lt div input gt 方式 xff0c 所以无法使用select获取列表元素 原本使用Robot也可以定位 xff0c 但是headless模式 x
  • Redis安装和配置

    网上有海量的Redis文章 xff0c 写的都很详细 这里就是简单记录一下自己查aof问题过程中遇到的问题 xff0c 主要是aof文件所在目录在redis conf里的位置 1 在ubuntu16上安装Redis sudo apt get
  • mysql 主从部署

    在ubuntu 16上 xff0c 配置mysql 主从服务器 查看mysql主从命令 show variables like 39 server id 39 show variables like 39 log bin 39 show m
  • 编写的windows程序,崩溃时产生crash dump文件的办法 .

    一 引言 dump文件是C 43 43 程序发生异常时 xff0c 保存当时程序运行状态的文件 xff0c 是调试异常程序重要的方法 xff0c 所以程序崩溃时 xff0c 除了日志文件 xff0c dump文件便成了我们查找错误的最后一根
  • 网络性能测试工具iperf详细使用图文教程

    Iperf是一个网络性能测试工具 Iperf可以测试TCP和UDP带宽质量 Iperf可以测量最大TCP带宽 xff0c 具有多种参数和UDP特性 Iperf可以报告带宽 xff0c 延迟抖动和数据包丢失 利用Iperf这一特性 xff0c
  • 使用Klockwork进行代码分析简单操作流程

    前一段时间公司试用了一下klockwork公司的klockwork代码静态分析软件 xff0c 我所在项目组进行了试点 xff0c 试用后感觉不错 xff0c 有几大亮点 xff1a 1 xff09 对代码进行静态分析 xff0c 无需改动
  • C++特性:多态、重写

    说一下多态 多态就是不同的继承类对象 xff0c 针对同一消息做出不同的响应 xff0c 父类的指针指向或者绑定到子类的对象 xff0c 使得父类指针呈现多种不同的表现方式 要实现多态 xff0c 首先父类需要有一个virtual修饰的虚方
  • Jmeter(三)-简单的HTTP请求(参数化)

    xfeff xfeff 首先建立一个线程组 xff08 Thread Group xff09 xff0c 为什么所有的请求都要加入线程组这个组件呢 xff1f 不加不行吗 xff1f 答案当然是不行的 因为jmeter的所有任务都必须由线程
  • no suitable driver found for jdbc:mysql//localhost:3306/..

    xfeff xfeff 出现这样的情况 xff0c 一般有四种原因 xff1a 一 xff1a 连接URL格式出现了问题 Connection conn 61 DriverManager getConnection 34 jdbc mysq
  • java模拟键盘按键

    xfeff xfeff come from http bbs 51cto com thread 1097189 1 html 功能描述 1 打开一个记事本 2 最大化 3 模拟按键操作 现 贴出 源码 xff1a 预览源代码 打印 001i
  • Android手机通过USB数据线共享Linux电脑网络

    这里要讲述的是手机通过usb数据线共享电脑 xff08 linux系统 xff09 的网络来自由上网 通过USB数据线将手机与电脑相连 再分别在电脑和手机上虚拟出一个网络接口用于网络通信 这很类似于VPN与虚拟机上网的原理 好处是不论台式还