精华内容
下载资源
问答
  • USB redirector client v6.8 汉化版(USB共享工具) 自己动手花了半天时间 进行汉化,同时进行多次的稳定测试,做得更满意为止。 http://www.incentivespro.com/downloads.html USB Redirector Client Package ...
  • 华为荣耀6--usb共享网络 设置

    千次阅读 2017-11-24 10:43:52
    这是一篇关于华为手机如何让电脑共享手机网络的文章。 因为之前买了张某的大王卡,每天有1元1G的流量,打算给手机和电脑一起用来...后面就要找别的方法来让电脑上网了,然后我找到了USB共享网络。 其实挺简单的,一

    这是一篇关于华为手机如何让电脑共享手机网络的文章。


    因为之前买了张某动的大王卡,每天有1元1G的流量,打算给手机和电脑一起用来上网。

    之前开的是WIFI热点,感觉还行,但是用了一段时间之后,感觉老是卡顿,但是手机用起来很流畅。

    结果在电脑上ping了一下,300多的延迟~~

    让我哭一会。。


    后面就要找别的方法来让电脑上网了,然后我找到了USB共享网络。

    其实挺简单的,一共两步,下面上步骤。

    第一步:

    用手机USB线连接电脑后,一端接手机,一端接电脑,这时手机会弹出提示USB已连接,选中PC助手。


    第二步:

    这时,进入“设置”》更多》移动网络共享》USB共享网络,打开USB共享网络的开关就行了。

    要是没有设置第一步的话,USB共享网络是灰色的。


    完成第二步之后,就可以看到电脑上面的有线网络已经连通啦。


    ~~~~~

    我要上网去了。- -!

    教程就到这里了,超级简单的,赶紧试试吧。

    展开全文
  • Android系统中如何添加USB网络共享 类别 需求 索引类别 USB网络共享 问题描述 平台是RT1296,在Android系统中已经有支持USB网络共享,但相应的产品系统中还未开启USB网络共享,那么这个时候就需要添加USB网络共享的...

    Android系统中如何添加USB网络共享

    类别

    需求

    索引类别

    USB网络共享

    问题描述

    平台是RT1296,在Android系统中已经有支持USB网络共享,但相应的产品系统中还未开启USB网络共享,那么这个时候就需要添加USB网络共享的一些配置,使得产品支持此功能。(以下是个人的一些理解,如有错误,请各位大佬多多指教)

    代码关联

    对应的代码修改部分如下:

    ①对应内核中添加配置(系统中添加USB网络驱动)

    @@ -837,3 +837,6 @@ CONFIG_ZRAM=y
     CONFIG_ZRAM_LZ4_COMPRESS=y
     CONFIG_ZSMALLOC=y
     # CONFIG_ZSMALLOC_STAT is not set
    +CONFIG_USB_USBNET=y
    +CONFIG_USB_IPHETH=y
    +CONFIG_USB_NET_RNDIS_HOST=y
    

    ②在init.rc中增加两个针对usb0的配置服务,才能让framework配置得了usb0网卡(服务是是USB网络共享的核心)

    @@ -134,3 +134,16 @@ on property:persist.iso.state=unmounted
    #在开机启动的时候会发送一个bootcomplete广播,接收广播后启动scdetect、rootshellservice
     on property:dev.bootcomplete=1
         start scdetect
         start rootshellservice
    #启动usb网络分配dhcp
    +service dhcpcd_usb0 /system/bin/dhcpcd -ABDKL -f/system/etc/dhcpcd/dhcpcd.conf
    +    class main
    +    disabled
    +    oneshot
    +    seclabel u:r:dhcp:s0
    #启动usb网络分配ip
    +service iprenew_usb0 /system/bin/dhcpcd -n
    +    class main
    +    disabled
    +    oneshot
    +    seclabel u:r:dhcp:s0
    

    ③对应Android源码,frameworks中添加配置(这边主要是讲述网络是如何启动的,是选择那个网络)

    /frameworks/base/core/res/res/values/config.xml 
         <bool name="config_enableMonitorInputSource">true</bool>
    -    <string translatable="false" name="config_ethernet_iface_regex">eth\\d</string>
    +    <string translatable="false" name="config_ethernet_iface_regex">eth\\d|usb\\d</string>
    

    上面的作用是提供两种网络的方式,一种是以太网络,一种是走usb共享

        /frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetNetworkFactory.java
         public synchronized void start(Context context, Handler target) {
            Log.i(TAG, "monitoring start");
            // The services we use.
            IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
            mNMService = INetworkManagementService.Stub.asInterface(b);
            mEthernetManager = (EthernetManager) context.getSystemService(Context.ETHERNET_SERVICE);
    
            //在这里就获取上面设定config_ethernet_iface_regex的值
            mIfaceMatch = context.getResources().getString(
                    com.android.internal.R.string.config_ethernet_iface_regex);
    
            // Create and register our NetworkFactory.
            mFactory = new LocalNetworkFactory(NETWORK_TYPE, context, target.getLooper());
            mFactory.setCapabilityFilter(mNetworkCapabilities);
            mFactory.setScoreFilter(-1); // this set high when we have an iface
            mFactory.register();
    
            mContext = context;
    
            // Start tracking interface change events.
            mInterfaceObserver = new InterfaceObserver();
            try {
                mNMService.registerObserver(mInterfaceObserver);
            } catch (RemoteException e) {
                Log.e(TAG, "Could not register InterfaceObserver " + e);
            }
    
            // If an Ethernet interface is already connected, start tracking that.
            // Otherwise, the first Ethernet interface to appear will be tracked.
            try {
                final String[] ifaces = mNMService.listInterfaces();
                for (String iface : ifaces) {
                    synchronized(this) {
                        //在这里判断是采用哪个网络
                        if (maybeTrackInterface(iface)) { 
                            // We have our interface. Track it.
                            // Note: if the interface already has link (e.g., if we
                            // crashed and got restarted while it was running),
                            // we need to fake a link up notification so we start
                            // configuring it. Since we're already holding the lock,
                            // any real link up/down notification will only arrive
                            // after we've done this.
                            if (mNMService.getInterfaceConfig(iface).hasFlag("running")) {
                                updateInterfaceState(iface, true);
                            }
                            break;
                        }
                    }
                }
                *
                *
                *
                *
            }
        }
    
        //在这边可以选择是走那个网络是eth还是usb         
        private boolean maybeTrackInterface(String iface) {
            // If we don't already have an interface, and if this interface matches
            // our regex, start tracking it.
            if (!iface.matches(mIfaceMatch) || isTrackingInterface())
                return false;
    
            if(UbusRpc.isOpenWrt() && !UbusRpc.isOttWifi()){
                if(!iface.equals("eth9"))
                    return false;
            } else if(!iface.equals(SystemProperties.get("net.eth.iface", "eth0"))){
                return false;
            }
    
            Log.d(TAG, "Started tracking interface " + iface);
            setInterfaceUp(iface);
            return true;
        }
    

    ④最后在设置一个属性值:setprop net.eth.iface usb0/eth0 (usb0强制网络走手机USB网络共享)

    应用层发送一个广播,这样就可以自由的切换是使用USB还是以太网。

     Intent intent = new Intent("rtk.intent.action.SET_ETH_IFACE");
     intent.putExtra("EXTRA_ETH_IFACE"," usb0/eth0 ");
     sendBroadcast(intent);
    

    对应frameworks的接收应用发送的广播代码:

    /frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetServiceImpl.java
    
    private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver(){
     @Override
     public void onReceive(Context context, Intent intent) {
     String action = intent.getAction();
     	if("rtk.intent.action.SET_ETH_IFACE".equals(action)){
     			String iface = intent.getStringExtra("EXTRA_ETH_IFACE");
    	 		if(iface==null) iface="eth0";
     			SystemProperties.set("net.eth.iface", iface);
     			Log.i(TAG, "restart EthernetNetworkFactory");
     			enforceConnectivityInternalPermission();
     			synchronized (mIpConfiguration) {
     				mTracker.stop(); 
     				//重启网络,即调用第③步的start
     				mTracker.start(mContext, mHandler); 
    			}
     		}
     	}
     };
    

    如果没有效果,请排查一下/sys/class/net/中是否有新生成一个usb0的节点,如果没有生成的话排查第①第②步是否正常开启。

    知识拓展

    参考资料:https://blog.csdn.net/tankai19880619/article/details/44559419?_t=t

    改进建议

    若有错误请指正,悉心接受大佬的指点 谢谢 ! v

    工作记录。。。。。

    展开全文
  • 树莓派zero,连接手机USB共享网络

    千次阅读 2020-05-10 17:37:58
    如果没有usb网卡,也可以用Android手机接入usb-host,进行usb网络共享,让树莓派zero顺利接入网络! RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看...

    树莓派zero,不像zeroW,具有板载wifi可以直接接入网络。当然也可以用usb无线网卡。
    如果没有usb网卡,也可以用Android手机接入usb-host,进行usb网络共享,让树莓派zero接入网络!

    RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡。

    基于buildroot

    一、linux kernel 配置
    buildroot 默认是开启RNDIS模块的,如果没有开启,则需要进行手动配置,make kinux-menuconfig
    进入如下目录

    > Device Drivers > Network device support > USB Network Adapters
    

    重点三项设置

    {*}   Multi-purpose USB Networking Framework
    {M}     CDC Ethernet support (smart devices such as cable modems)
    {M}     Host for RNDIS and ActiveSync devices
    

    二、查看已经加载的模块lsmod

    [root@buildroot ~]#lsmod
    Module                  Size  Used by    Not tainted
    ipv6                  446464 10 [permanent]
    

    目前系统仅加载了ipv6模块,而没有rndis_host
    手动加载:modprobe rndis_host

    [root@buildroot ~]#modprobe rndis_host
    [ 1322.908781] usbcore: registered new interface driver cdc_ether
    [ 1322.928632] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-20980000.usb-1, RNDIS device, 00:00:00:00:00:00
    [ 1322.946885] usbcore: registered new interface driver rndis_host
    [root@buildroot ~]#lsmod
    Module                  Size  Used by    Not tainted
    rndis_host             16384  0
    cdc_ether              16384  1 rndis_host
    ipv6                  446464 10 [permanent]
    

    手动加载完成,可以看到rndis_host、cdc_ether

    三、将Android手机,接入树莓派0 usb-host接口
    同时手机端,需要打开USB 网络共享

    [root@buildroot ~]#[ 1485.716551] Indeed it is in host mode hprt0 = 00021501
    [ 1485.936457] usb 1-1: new high-speed USB device number 3 using dwc_otg
    [ 1485.947337] Indeed it is in host mode hprt0 = 00001101
    [ 1486.199099] usb 1-1: New USB device found, idVendor=04e8, idProduct=6860, bcdDevice= 4.00
    [ 1486.215091] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 1486.226310] usb 1-1: Product: SAMSUNG_Android
    [ 1486.234578] usb 1-1: Manufacturer: SAMSUNG
    [ 1486.242461] usb 1-1: SerialNumber: b6a47799
    [ 1489.516650] usb 1-1: USB disconnect, device number 3
    [ 1489.726539] Indeed it is in host mode hprt0 = 00021501
    [ 1489.936459] usb 1-1: new high-speed USB device number 4 using dwc_otg
    [ 1489.947237] Indeed it is in host mode hprt0 = 00001101
    [ 1490.198290] usb 1-1: New USB device found, idVendor=04e8, idProduct=6863, bcdDevice= 4.00
    [ 1490.214325] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 1490.225674] usb 1-1: Product: SAMSUNG_Android
    [ 1490.234194] usb 1-1: Manufacturer: SAMSUNG
    [ 1490.242332] usb 1-1: SerialNumber: b6a47799
    [ 1490.257713] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-20980000.usb-1, RNDIS device, 00:00:00:00:00:00
    
    [root@buildroot ~]#
    
    

    系统log可以看到,rndis_host 1-1:1.0 eth0,已经加载!并且已经识别到手机类型:三星

    不同的手机,识别出来可能不一样,也可能是eth1,或者usb0之类!

    也可以通过 dmesg 命令查看!
    如果没有看到rndis_host 1-1:1.0 eth0字样,说明rndis设备没有被正确识别!

    四、查看网络配置ifconfig

    [root@buildroot ~]#ifconfig
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    

    如果没有看到 eth0或usb0,再查看 ifconfig -a

    [root@buildroot ~]#ifconfig -a
    eth0      Link encap:Ethernet  HWaddr 00:00:00:00:00:00
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    

    ifconfig -a,可以看到 eth0 已经识别了,但MAC地址没有正确读出来

    HWaddr 00:00:00:00:00:00
    

    udhcpc -i eth0 ,提示ifconfig: SIOCSIFFLAGS: Cannot assign requested address

    [root@buildroot /etc/network]#udhcpc -i eth0
    udhcpc: started, v1.31.1
    ifconfig: SIOCSIFFLAGS: Cannot assign requested address
    ifconfig: SIOCSIFFLAGS: Cannot assign requested address
    udhcpc: sending discover
    udhcpc: sendto: Network is down
    udhcpc: read error: Network is down, reopening socket
    udhcpc: sending discover
    udhcpc: sendto: Network is down
    udhcpc: read error: Network is down, reopening socket
    udhcpc: sending discover
    udhcpc: sendto: Network is down
    udhcpc: read error: Network is down, reopening socket
    udhcpc: read error: Network is down, reopening socket
    
    

    其实,这是三星手机的问题,需要手动设置mac地址。换华为手机,到这一步就可以正常上网!

    五、设置MAC地址
    两种方式设置MAC地址:
    1、命令设置

    ifconfig eth0 down
    ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF
    ifconfig eth0 up
    

    2、修改文件/etc/network/interfaces。此方式,重启也可以生效

    [root@buildroot /etc/network]#vi interfaces
    

    增加eth0相关描述

    # interface file auto-generated by buildroot
    
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
                    hwaddress ether AA:BB:CC:DD:EE:FF
    #               address 192.168.2.2
    #               netmask 255.255.255.0
    #               network 192.168.2.0
    #               broadcast 192.168.2.255
    #               gateway 192.168.2.1
    

    重新初始化网络,/etc/init.d/

    [root@buildroot /etc/init.d]#./S40network restart
    

    执行完成后,即可看到eth0已经生效!

    [root@buildroot /etc/network]#ifconfig eth0 down
    [root@buildroot /etc/network]#ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF
    [root@buildroot /etc/network]#ifconfig eth0 up
    [root@buildroot /etc/network]#
    [root@buildroot /etc/network]#
    [root@buildroot /etc/network]#ifconfig
    eth0      Link encap:Ethernet  HWaddr AA:BB:CC:DD:EE:FF
              inet6 addr: fe80::a8bb:ccff:fedd:eeff/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:26 errors:0 dropped:0 overruns:0 frame:0
              TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:5894 (5.7 KiB)  TX bytes:780 (780.0 B)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    
    

    但此时还不能上网,因为还没有获取到正确的IP地址!执行udhcpc -i eth0

    [root@buildroot /etc/network]#udhcpc -i eth0
    udhcpc: started, v1.31.1
    udhcpc: sending discover
    udhcpc: sending discover
    udhcpc: sending select for 192.168.42.132
    udhcpc: lease of 192.168.42.132 obtained, lease time 3600
    deleting routers
    adding dns 192.168.42.129
    
    

    获取到正确的IP地址后!ping www.baidu.com 测试!

    [root@buildroot /etc/network]#ping www.baidu.com
    PING www.baidu.com (180.101.49.11): 56 data bytes
    64 bytes from 180.101.49.11: seq=0 ttl=51 time=14.582 ms
    64 bytes from 180.101.49.11: seq=1 ttl=51 time=21.231 ms
    64 bytes from 180.101.49.11: seq=2 ttl=51 time=20.914 ms
    64 bytes from 180.101.49.11: seq=3 ttl=51 time=20.953 ms
    ^C
    --- www.baidu.com ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss
    round-trip min/avg/max = 14.582/19.420/21.231 ms
    
    

    此时网络已经接通!

    六、设置开机自动加载rndis_host模块
    以上设置比较繁琐,,并且每次开机都要重新设置!

    /etc/init.d下新建文件S10modules

    #!/bin/sh
    
    # Load other user-defined modules
    
    for file in /etc/init.d/*.modules ; do
    
    [ -x $file ] && $file
    
    done
    
    # Load modules (for backward compatibility with VARs)
    
    if [ -f /etc/init.d/rc.modules ]; then
    
    /etc/init.d/rc.modules
    
    fi
    

    /etc/init.d下新建文件rndis_host.modules

    #!/bin/sh
    
    modprobe rndis_host.ko
    

    设置权限755

    [root@buildroot /etc/init.d]#chmod 755 S10modules
    [root@buildroot /etc/init.d]#chmod 755 rndis_host.modules
    

    重启reboot

    [    2.929930] usb 1-1: new high-speed USB device number 2 using dwc_otg
    [    2.941021] Indeed it is in host mode hprt0 = 00001101
    [    3.131470] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [    3.213589] usb 1-1: New USB device found, idVendor=04e8, idProduct=6863, bcdDevice= 4.00
    [    3.229033] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [    3.240050] usb 1-1: Product: SAMSUNG_Android
    [    3.248262] usb 1-1: Manufacturer: SAMSUNG
    [    3.256080] usb 1-1: SerialNumber: b6a47799
    Starting syslogd: OK
    Starting klogd: OK
    Running sysctl: OK
    [    3.578345] usbcore: registered new interface driver cdc_ether
    [    3.596246] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-20980000.usb-1, RNDIS device, 00:00:00:00:00:00
    [    3.615653] usbcore: registered new interface driver rndis_host
    hello world
    Initializing random number generator: OK
    Saving random seed: [    3.742622] random: dd: uninitialized urandom read (512 bytes read)
    OK
    Starting network: [    4.116974] NET: Registered protocol family 10
    [    4.128752] Segment Routing with IPv6
    udhcpc: started, v1.31.1
    [    4.257709] random: mktemp: uninitialized urandom read (6 bytes read)
    udhcpc: sending discover
    udhcpc: sending select for 192.168.42.132
    udhcpc: lease of 192.168.42.132 obtained, lease time 3600
    deleting routers
    [    4.440324] random: mktemp: uninitialized urandom read (6 bytes read)
    adding dns 192.168.42.129
    OK
    
    Welcome to Buildroot for eric
    buildroot login: root
    Password:
    [root@buildroot ~]#
    [root@buildroot ~]#
    [root@buildroot ~]#ping www.baidu.com
    PING www.baidu.com (180.101.49.12): 56 data bytes
    64 bytes from 180.101.49.12: seq=0 ttl=51 time=19.564 ms
    64 bytes from 180.101.49.12: seq=1 ttl=51 time=14.150 ms
    64 bytes from 180.101.49.12: seq=2 ttl=51 time=19.795 ms
    ^C
    --- www.baidu.com ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 14.150/17.836/19.795 ms
    [root@buildroot ~]#
    
    

    可以看到,开机后自动加载rndis_host 模块!
    也可以,将rndis驱动,在内核编译的时候,设置成静态编译,就不需要动态加载。

    还不支持热插拔,重新接入手机,需要再次初始化网络
    [root@buildroot /etc/init.d]#./S40network restart

    改进:
    以上做法,只是手动配置加载rndis_host模块,buildroot是支持动态自动加载模块的,只是默认并未打开!打开后,就不需要手动创建S10modules了!
    1、打开动态加载模块功能
    make meunconfig
    System configuration —>/dev management
    选择
    Dynamic using devtmpfs + mdev

    /dev management (Dynamic using devtmpfs + mdev)  --->
    

    2、重新编译packet,make busybox。builtroot output/target/etc/init.d目录自动生成S10mdev

    eric@eric-PC:~/Documents/work/linux-c/buildroot-2020.02.1/output/target/etc/init.d$ ls
    rcK  rcS  S01syslogd  S02klogd  S02sysctl  S10mdev  S20urandom  S40network  S50userstart
    

    3、重新编译生成镜像

    -------------------------------------------仅此记录-------------------------------------------

    展开全文
  • 想直接看结果的,看2019-08-16更新的。 2019-06-30 2019-07-03更新 2019-08-16更新 ...我记得以前的安卓智能手机是可以通过USB共享电脑宽带的,比如小米手机。上高中时我是听别人说过,别的...

    想直接看结果的,看2019-08-16更新的。

    2019-06-30

    2019-07-03更新

    2019-08-16更新

    2019-08-19更新


    2019-06-30

    手里有部旧手机,不用了所以没有装手机卡,现在只能用WiFi上网。但不是所有的地方都有WiFi,只有网线的地方该怎么办呢。我记得以前的安卓智能手机是可以通过USB共享电脑宽带的,比如小米手机。上高中时我是听别人说过,别的班有人用小米手机,共享教室电脑的网,再开热点给大家。所以我就想试试我的行不行,我的是OPPO A51在设置里找了找,没有这个选项,只有手机共享给电脑的选项。就上网搜了搜,网上搜出两种方案,一种自己配置,另一种是别人写好的软件,底层手机如何使用USB数据线共享PC网络其实也是配置那些参数。

    这篇是讲自己配置 手机如何使用USB数据线共享PC网络 

    这篇是借用软件 android reverse tethering(安卓手机usb连接电脑上网) v2.30 中文绿色版

    然后我哪个也行不通,最后发现是这两种方案都不支持Android 5.0以上版本


    2019-07-03更新

    经过几日没日没夜废寝忘食的研究,终于找到一个方法可以让手机使用电脑的宽带上网了!!!

    首先说说自己这几天的艰辛历程吧。在Reverse Tethering v2.30不行,又搜了v3.19版本的和v3.7版本的,均以失败告终。其中v3.7版本的提示出现error: only position independent executables (PIE) are supported.然后又百度PIE是啥。这东西是在Android 4.4之后添加了新的保护机制,可执行文件必须是采用PIE编译的。在android 2.x及4.0或更远古时代,系统在执行一个elf文件时,这个elf文件是固定加载到某个内存位置的。而后来llvm的出现,使得编译出来的elf文件,可以加载到内存中的任意位置,这种就叫pie。然后又搜解决方法,参考的这篇android可执行文件出现error: only position independent executables (PIE) are supported.试了试里边给出的解决方案,用root权限把系统目录下linker文件替换了,结果还是不行,替换之后用户组都不对了(怪我替换之前没查看原先的是啥),不过还好这是旧手机不使用了,随便玩。接着又发现原来防火墙没关,以为关了就能用了,结果还是不行。但能ping 通IP地址了,网址解析不了,说明是dns的问题。再接着又搜解决方案说Android 4.3之后配置dns命令变了,之前用的是setprop net.dns1 x.x.x.x ,其中x.x.x.x是你的dns地址。android 4.3之后通过DNS获取ip,采用netd代理,netd是一个守护进程。通过ndc命令可以配置DNS服务器:ndc resolver setifdns eth0 "" 8.8.8.8 8.8.4.4,参考的android 4.3以上修改DNS 及 流程(netd)。结果还是不行,root执行后提示错误代码4,查了查说是Interrupted system call(系统调用被中断),然后发扬屡败屡战的精神,接着试。想着既然通过命令行的配置dns不行,那就在手机上搭建一个,又去下载了一些手机dns的app,然并卵。正当一筹莫展准备放弃之际,突然搜到了解决方案!之前用Reverse Tethering这个软件时确切地知道不行是因为软件有个论坛链接,点进去(英文网站,软件是外国友人开发的)最后一页说5.0以上不行,网上有其他方案。这是那一页的链接https://forum.xda-developers.com/showthread.php?s=d3961ece6e4c8029f2eec67734b618f8&t=1371345&page=246目前是在最后一个,还是贴个图吧,万一以后又有新的评论了呢。

    当时我就想,为什么不给个具体的链接,让我少走点弯路MMP,不过也是让我坚持试下去的动力,因为知道肯定有解决方案。

    说了这么多,该上干货了。在搜索关键词adb shell ndc 时偶然搜到了这篇,当时没注意,后来才发现下边有位仁兄给了一个4.0以上版本解决方案的具体链接

    这篇是讲的Linux和Android怎么设置的,但他还有一篇讲Windows和Android的

    当!当!当!当!按照里边的讲解,一顿操作猛如虎,完美解决还不用root,正在用的新手机也可以放心的使用该方法。

    英语水平只有4级的我,读起来还可以吧,不会的词根据上下文也能猜出个大概意思。这里我就不给翻译了,现在的翻译软件也挺强悍的,网页上百度翻译就行。


    2019-08-16更新

    为了方便大家,此文是用Chrome翻译出的译文,文字都翻译成中文,但图片内容还是英文。

    USB Reverse Tethering No Root无ADB Android(所有版本)和Windows 10

    本指南允许您通过可为手机充电的通用USB电缆与Android设备共享Windows 10 PC 的Internet连接。如果您不能或不想在智能手机上使用WIFI并且您不想消耗数据计划中的流量,则此功能非常有用。限制手机无线连接使用的一个很好的理由是电磁污染会影响您的身体。但这是另一个故事。本指南的重点是,您的手机不需要植根。然后,我重复一遍,所有工作都没有生根宝贵的智能手机。不幸的是,这涉及到某些应用程序(但不是最重要的)至少需要虚拟使用数据连接,因为您无法安装Xposed模块来解决这些应用程序的愚蠢限制。但这是较小的邪恶。此外,本指南还适用于Lollipop以上的Android版本。本指南仅需要内置的Android usb网络共享功能和Windows 10 PC,因此它适用于所有Android版本,甚至无需在Windows上安装ADB(Android Debug Bridge)。它使用适用于Android和Windows的免费开源“openvpn”程序。唯一的限制是它一次只适用于单个Android设备。

    步骤

    从这里或从下面下载“openvpn for Windows” 。双击刚刚下载的文件以开始安装并确认Windows安全消息。

    OpenVPN-Windows32bit

    OpenVPN-Windows64bit

    确保在安装过程中选择了所有组件。

     

     

    当消息显示如下时,再次单击“安装”:

     

     

    现在您可以在桌面上找到“OpenVPN GUI”。右键单击“OpenVPN GUI”并转到“属性”。转到“兼容性”选项卡,确保在权限级别“选择以管理员身份运行此程序”。单击“应用”,然后单击“确定”并关闭窗口。

    在已安装的程序(开始菜单 - >所有应用程序)中搜索“生成静态OpenVPN密钥”,右键单击它并“以管理员身份运行”,然后在出现黑色命令提示符窗口时按确定。

    从下面下载“android.ovpn”文件:

    android.ovpn

    并将其复制到“C:\ Program Files \ OpenVPN \ config”中。

    现在双击桌面上的“OpenVPN GUI”启动程序。

     

    右键单击开始菜单Windows标志(桌面左下角)并选择“网络连接”(或者如果您愿意,右键单击系统托盘中的小型监视器图标并打开“打开网络和共享中心”,然后在在新打开的窗口左侧转到“更改适配器设置”)。然后选择用于连接到Internet的网卡,右键单击它并打开“属性”。转到“共享”选项卡,选择“允许其他网络用户通过此计算机的Internet连接进行连接”,然后在“家庭网络连接”下选择与“TAP-Windows适配器”对应的网络适配器名称,如“网络”中所示您可以按上述方式访问的“连接”。

    转到“C:\ Program Files \ OpenVPN \ config”,打开文件“key.txt”并复制其中的所有文本。从下面下载“smart.conf”文件,将其作为文本文件打开,并在最后两行“<secret>”“</ secret>”之间复制“key.txt”的内容。

    smart.conf

    保存并将其移动到您的Android设备内存。

    通过USB线将您的Android设备连接到Windows PC。在Android上启用“USB网络共享”(设置 - >无线和网络 - >绑定),如果需要,请等待Windows安装驱动程序。 如果出现,请在Windows请求上单击“是”以允许“此网络上的其他PC和设备可以发现您的PC”。

    现在打开上面的“网络连接”。然后选择“远程NDIS”网络适配器,右键单击它并打开“属性”。双击“Internet协议版本4(TCP / IPv4)”并将IP设置为“192.168.42.128”,将子网掩码设置为“255.255.255.0”,将网关设置为“192.168.42.129”。单击“确定”并退出。

     

     

    选中“打开网络和共享中心”(右键单击系统托盘中的小型监视器图标,然后打开“查看您的活动网络”,打开与“远程NDIS”适配器对应的网络的“打开网络和共享中心”) “私人”而非“公开”。

     

     

     

    如果它是“公共”,左键单击开始菜单标志(桌面左下角),选择“设置”,然后选择“网络和Internet”,然后选择“以太网”,从右栏中选择您想要的以太网连接更改,然后设置为“打开”第一个选项“允许您的PC被此网络上的其他PC和设备发现......”。

     

    断开USB连接线。

    OpenVPNforAndroid-0.6.60

    在Google Play商店(或从上方)安装设备上的“OpenVPN for Android”应用。最后打开“OpenVPN for Android”并在全局“设置”中取消选中“重新连接网络更改”选项。然后从右上角图标导入之前保存的文件“smart.conf”。保存新创建的配置文件,稍后从铅笔图标转到“路由”选项卡:在IPv4菜单中选择“使用默认路由”并退出。(可选)在主屏幕上创建一个“OpenVPN for Android”小部件,链接到您的个人资料。成品。

    运行

    现在,只需按照以下步骤通过LAN连接将智能手机连接到互联网。双击Windows桌面上的“OpenVPN GUI”(如果您还没有像我们上面所说的那样配置它,请确保右键单击“以管理员身份”运行程序)。在Windows系统托盘上,右键单击OpenVPN图标,然后按“连接”。最后通过USB线将您的Android设备连接到您的PC,在Android上的“设置 - >无线和网络 - >绑定”中启用“USB网络共享”,然后暂时启用您的手机数据连接(2G / 3G / 4G)并点按在您的“OpenVPN for Android”小部件(或“OpenVPN for Android”应用程序中的个人资料名称)上。如果你在顶部某处读到“成功”(日志屏幕),你就可以了。

    如果您使用浏览器(如Chrome)或许多其他应用程序(如WhatsApp),则可以禁用手机数据连接。无论如何,一些应用程序(如Gmail,下载等)检查启动时是否存在无线连接(WIFI或3G),否则它们将无法启动或工作,因此它们至少需要启用数据连接才能工作。然而,所有互联网流量始终通过USB连接进行路由,因此您的数据计划是安全的。此外,出于同样的原因,您的身体会受到相当低的电磁污染。请享用!

     

    注1:本教程假设USB网络共享模式下智能手机的IP地址为192.168.42.129,应该是这样。通过在PlayStore的“android terminal”应用程序中键入“netcfg”来检查这一点,并最终在上面相应地更改它,以及“Remote NDIS”接口的192.168.42.128地址。

    注意2:如果在智能手机(或平板电脑)重新启动“远程NDIS”网络名称更改后,再次按照我们的说明将新的网络名称设置为“专用网络”,否则它将不再起作用。

    注3:稍作修改后,本指南也适用于低于10的Windows版本。


    2019-08-19更新

    虽然能够使手机共享电脑的宽带了,但仅限于单个手机使用。手机无法通过WiFi热点的形式把电脑的宽带再共享出去,但反过来却行。手机开启USB共享网络给电脑后,手机再连上WiFi,是可以把WiFi的网络再共享给电脑端的。

    为了实现这一目的又开始了研究。还去提问了一下https://ask.csdn.net/questions/773443。想着之前那个方法是VPN,不用VPN可不可以呢?电脑和电脑之间是有网络共享的,研究一下说不定或受到启发Internet Connection Sharing in Windows 10。看的头疼,还是搜具体问题吧android 手机通过 usb 共享电脑网络。以为找到了非VPN的方法,到最后发现这也是个VPN程序,不过比我之前找的那个精简,大概只有几百KB。然而这个也不能让手机无法通过WiFi热点的形式把电脑的宽带再共享出去。

    展开全文
  • USB Redirector 6.1.1中文注册版(USB共享工具) 自己动手花了半天时间 进行汉化,同时进行多次的稳定测试,做得更满意为止。 亲手打造,跟网上的汉化版有本质不同,这个一直很稳定,没有加密。 USB ...
  • Linux下使用USB网络

    千次阅读 2017-08-15 14:29:00
    在介绍USB的驱动开发时,我通常会用用Linux的的USB网络来演示,它兼容RNDIS网络,一台Linux即可充当USB的device端,也可以由另一台Linux来充当USB的Host端,Host端的也可以由安装的微软的标准的Rndis驱动来充当. ...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如...
  • Linux 命令面试题

    万次阅读 多人点赞 2019-07-24 09:40:04
    password=pass //WinClient/share /mnt/share 挂载一个windows网络共享 磁盘空间 df -h 显示已经挂载的分区列表 ls -lSr |more 以尺寸大小排列文件和目录 du -sh dir1 估算目录 ‘dir1’ 已经使用的磁盘空间’ ...
  • 北京盛讯美恒Usb-server硬件设备厂商专业提供 :虚拟化识别usb银行U盾, 网络传输USB加密狗设备 集中管理加密狗,加密狗共享,动态迁移,加密狗远程链接,支持各种行业专业软件以及各大银行的Ukey。厂商联系人:史经理...
  • 《计算机网络技术》第二章课后习题答案(全)

    万次阅读 多人点赞 2019-08-02 22:02:34
    《计算机网络技术》第二章课后习题答案(全)
  • Linux 下使用USB 网络

    万次阅读 2014-09-17 16:36:48
     在介绍USB的驱动开发时,我通常会用用Linux的的USB网络来演示,它兼容RNDIS网络,一台Linux即可充当USB的device端,也可以由另一台Linux来充当USB的Host端,Host端的也可以由安装的微软的标准的Rndis驱动来...
  • linux常用命令

    千次阅读 多人点赞 2016-12-22 11:24:58
    (杠零)表示每列出一个目录的信息,换行,而是直接输出下一个目录的信息。 10> 只显示一个目录树的全部磁盘使用情况 du -s /home/linux    在查看目录的使用情形时,我们可以将输出结果导到 ...
  • 在介绍USB的驱动开发时,我通常会用用Linux的的USB网络来演示,它兼容RNDIS网络,一台Linux即可充当USB的device端,也可以由另一台Linux来充当USB的Host端,Host端的也可以由安装的微软的标准的Rndis驱动来充当...
  • 苹果手机需要安装iTunes才能与其设备进行USB通信,诸如查看设备信息...说到USB传文件,还必须要手机内的APP开放了文件共享权限,才能通过iTunes访问应用程序内的文件数据。 其传输速度在USB 2.0的电脑上,可以达到...
  • 这里有一点需要注意,配置USB摄像头和树莓派专用摄像头指令一样,这里我配置的是USB摄像头,具体指令分别如下: 指令启动普通USB摄像头指令: ./mjpg_streamer -i "./input_uvc.so" -o "./output_...
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必可少的KaTeX数学...
  • Linux实用教程(第三版)

    万次阅读 多人点赞 2019-08-27 22:55:59
    比如互联网是可信任的区域,而内部网络是高度信任的区域。数据包进入到内核必须要通过区域,而不同的区域定义的规则是一样的。可以根据网卡所连接的网络的安全性来判断,这块网卡的流量到底使用哪个区域。可以把...
  • 写在前面 目前,ST的USB驱动有两套,一套是早期的独立版的驱动,最新版为2.2.0;一套为针对其Cube系列的驱动,根据芯片不同可能有区别,具体见对应芯片的Cube驱动包 。 本文使用的为独立版的USB驱动 ...本文...
  • 网络安全的定义 模型: 攻击手段: 攻击方式: 安全服务 安全机制 特定安全机制 普遍的安全机制 认识Internet上的严峻的安全形势并深入分析其根源 造成Internet安全问题的主要原因 1系统脆弱性 2自然灾害 3网络建造...
  • 最近因为公司的业务要求,在没有网络的情况下,没有路由器支持的情况下,需要组建一个小局域网,可以同时支持多个终端的相互之间的通信,这里的解决方案如下。 一、硬件要求:任意支持软AP的无限网卡,具体是否支持...
  • 小米手机的共享网络

    2019-07-31 11:08:04
    设置--> 网络和连接下面的更多连接方式--> usb网络共享:连接usb了,选择usb网络共享,他是最快的。 蓝牙网络共享:如果设备有...window有点麻烦,usb网络共享时候,会弹出类似确认的西,需要点击是。 ...
  • vi命令进入文件内容后按 i 键进入编辑模式,此时你就可以去修改内容了,(只使用vi命令只能看到文件内容,此时是能编辑的) 1、打开你的VMware Workstation Pro,并点击“创建新的虚拟机” 2、选典型(推荐...
  • USB Redirector Client 6.8 汉化版

    万次阅读 2018-11-03 19:22:07
    USB redirector client v6.8 汉化版(USB共享工具) http://www.incentivespro.com/downloads.html USB Redirector Client 6.8中文版自己动手花了半天时间 进行汉化,同时进行多次的稳定测试,做得更满意为止。 ...
  • 系统软件版本 LEDE Reboot 17.01.4 r3560-79f57e422d / LuCI lede-17.01 ...安装和验证 USB 驱动 opkg update opkg install kmod-usb-storage #安装存储设备驱动 opkg install usbutils #验证整个USB驱动链是...
  • 电脑通过USB连接树莓派ZeroW

    千次阅读 2018-10-05 12:13:55
    电脑连接树莓派ZeroW ...   0. 概述 本位介绍两种电脑连接树莓派PiZero W的方法: l 电脑通过USB以太网连接树莓派ZeroW ...l 电脑通过WiFi连接树莓派ZeroW ...Pi Zero W有两个micro USB,标有PWR IN的是电...
  • 许久许久没有更新博客了,不是没写。。。只是现在签了所谓的“保密协议”,好多东西能分享,只能保存在本地,久而久之更新的动力也没有了。...另一位同事赵同学却有将网络分享出去的需求。于是找客户端程序看...
  • 当在宿主机上插入一个USB设备的时候,通过设置,可以在vmware的虚拟机系统里边能访问到这个USB设备, 而且访问这个USB设备,就跟真的把这个USB设备插入到这个虚拟系统中一样,跟真实的几乎没任何区别。 再看一种情况...
  • 封闭USB口程序

    2013-06-12 10:24:19
    如果方便快捷的封闭USB口,或者禁用USB口,U口,是各个网络科技部门急待解决的问题。 (1)品源封闭USB口程序pyusb1.0 是一款简单实用的封闭USB口程序,另外还配备一个动态口令卡生成程序。 功能: USB存储设备...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,756
精华内容 5,902
关键字:

usb共享网络点不动