这里要讲述的是手机通过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
echo1 > /sys/class/android_usb/f_rndis/on

2. linux电脑设置:

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

1
2
3
4
sudosysctl -w net.ipv4.ip_forward=1
sudoiptables -A FORWARD -i usb0 -o eth0 -j ACCEPT
sudoiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudoifconfigusb0 192.168.99.80 netmask 255.255.255.0

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

3.android手机设置:

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

1
2
3
ifconfigusb0 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软件将以上命令保存为脚本文件, 当需要设置的时候就直接运行脚本, 脚本配置如下图:

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

  1. Android手机usb口清洗,Android手机有什么方法通过USB接口共享PC的网络

    手机通过USB数据线是可以共享电脑网络的,如果出现无法共享的情况是因为没有正确设置.通过USB共享电脑网络的方法如下: 1.用数据线连接好USB和PC,先择"仅充电": 2.进入设 ...

  2. 电脑usb android上网,让你的Android手机通过USB共享电脑上网

    转贴:来自 http://www.diypda.com/viewthread.php?tid=150277 首先这不是一篇关于 如何 让你的 Android 手机 通过 USB 共享 电脑 上网 (这 ...

  3. android不支持USB怎么办,安卓手机通过USB连接不上电脑怎么办

    安卓手机通过USB连接不上电脑怎么办 当我们将手机和电脑用数据线连接起来,但是电脑上面并没有连接成功,这是应该怎么办呢? 一.方法/步骤 1.点开你的手机,找到[设置]选项,点开设置. 2.在设置的最 ...

  4. Android12系统上支持Android手机的usb网络共享

    Android系统需要支持Android手机通过usb共享过来的网络需要修改以下代码 1.修改内核,添加这几项内核驱动,kernel驱动默认有源码,我们只需配置上就行 +CONFIG_USB_USBN ...

  5. Android手机的USB

    Android手机的USB Android的手机很少使用USB Host功能,不过很多平板上倒是有,其实Android USB Host功能比较简单,就是驱动USB Controller和Port的驱 ...

  6. Android手机通过USB线共享电脑的网络上网

    参考:http://jingyan.baidu.com/article/dca1fa6f81bb23f1a44052bf.html 电脑没有无线网卡,家里没有无线路由器,公司没有wifi网络时却又想让 ...

  7. 手机共享计算机网络,电脑网络共享给手机

    电脑网络共享给手机 导读:最近有网友问,怎么把电脑网络共享给手机上网呢?对于这个问题,其实很多朋友之前都问到过.针对不同的电脑,比如台式机.笔记本等电脑实现方法有多种,以下与大家简单汇总介绍下,希望对 ...

  8. Android and Apple 投屏至linux电脑

    Android and Apple 投屏至linux电脑 centos系统的操作 scrcpy 1.17 github的网址(内含使用说明,这里就不一一列举了) https://github.com/ ...

  9. Android 手机的USB midi测试方法

    USB midi测试方法 注:如下介绍android 手机中usb midi的测试方法.文中提到的相关apk均可以在线下载获取. 1.测试机作为device模式,电脑为host端. 手机端安装Midi ...

最新文章

  1. innodb force recovery
  2. 【数据结构】顺序串的插入算法,删除算法,连接运算,顺序串求子串算法
  3. doesnt exist table_MYSQL ERROR 1146 Table doesnt exist 解析
  4. 单片机全局有必要封装_C语言开发单片机为什么大多数都采用全局变量的形式?...
  5. java集合框架类_Java集合框架总结—超详细-适合面试
  6. MySQL抛出 Lock wait timeout exceeded; try restarting transaction
  7. VS 2005 命令行cl编译配置 Notepad++设置
  8. linux智能密码锁,【胖猴小玩闹】智能门锁与网关:云丁鹿客智能门锁BLE通信的分析(中)...
  9. 应用安全测试技术DAST、SAST、IAST对比分析-持续更新
  10. Protobuf 在 Ubuntu18 下的安装和使用
  11. 【MM系列】SAP MM物料账在制品承担差异功能及配置
  12. ES6——let-const的变量声明以及模板字符串
  13. 关于fastapi框架的异步
  14. Get智能写作 | 掌握这5个小技巧,让你的写作飞起来
  15. Linux - 进程
  16. 一本专门学习PyQt5 GUI 的编程书
  17. java旧版下载地址_Java下载 - 最新版、历史版本的官方下载地址
  18. (二分图)洛谷P2071座位安排
  19. iPhone X携人脸识别改变行业,美图美妆用人脸识别改变女人
  20. 老师就是学生的天-- 恩人意识,青天意识从娃娃抓起

热门文章

  1. python 自动登录股票,python2自动读取股票数据示例
  2. 【数学建模】十:MATLAB CUMCM真题求解实例一:数据型
  3. 转载:Android Studio 快捷键
  4. 深度理解RNN的梯度消失和LSTM为什么能解决梯度消失
  5. C++并发实战:面试题2:一道迅雷笔试题
  6. 关于springboot+simbot+mriai实现QQ群智能回复机器人
  7. WPS 中添加MathType插件
  8. 电脑硬盘速度明显变慢的原因
  9. 在uni-app中如何使用一键登录,如何使用手机号一键登录
  10. Socket异步服务器,可以监控客户端的状态,功能有,文字测试,服务端向客户端传输屏幕录像(UDP传输)、监控客户端屏幕(UDP传输),抖动用户窗体、发送文件给用户、扫描客户的C盘目录。