Different ways of sharing interet connection from Windows to other devices
Nowadays there is a lot of ways to share internet connection to other devices and each method has its pros and cons.
Here is a breakdown of methods:
- Using Windows 10 Mobile Hotspot Feature:
Newer editions of windows 10 (after 1607 anniversary update) have a built in mobile hotspot feature which allows internet sharing to other devices
pros
cons
- some network types are not recognised e.g 3g dongles.
Using 3rd party tools
Nifty tools such as mhotspot, or Connectify provide the ability to share internet to other devices by making use of Microsoft Virtual Wi-Fi Adapters
pros
cons
- some of these are commercial softwares and are relatively expensive
3a. USB Reverse tethering
Reverse tetherng is a relatively newer method of sharing internet especially from devices that do not have a wireless adapter.
It uses the USB cable to share internet from the computer to the target device and oftern requires 3rd party tools and drivers as well as system modification of target devices.
Specific requirements of reverse tethering no root:
pros
- can provide faster connections usually with low latency
- reverse tethering (no root) works on windows, linux and mac
cons
- requires usb cable
- installs additional apps on PC and phone
- connections can be difficult to establish
- some of these workarounds only work for some apps and not every app is guaranteed to have internet access, but from my experience browser, Gmail, google play were working just fine
Update
3b. Using adb to reverse tether
Using bash script
alias t='r && sz $tether && r && sz $n'
tether='am start -n com.android.settings/com.android.settings.TetherSettings && input keyevent 66 && input keyevent 66'
n='netcfg rndis0 dhcp'
alias sz='ad shell'
alias de='ad devices -l'
alias r='ad kill-server && ad start-server'
alias ad='adb'
alias pu='adb push'
Special thanks to user42276 for this script
Pros
- One good thing about scripting is that it eliminates the need for third party apps which may bloat the device/PC
Cons
- Pretty much similar to method 3a above
- Using Windows ICS
Another way is to just use ICS in Windows with no third party software involved:
Requirements:
Terminal Emulator on your Android
Alternatively using adb shell commands (to use adb, you need to enable "USB debugging" on your Android).
Optional, BusyBox on your Android.
Instructions
- Connect your Android to PC by USB cable and enable "USB tethering". You are still allowed to enable this option even when your 3g/wifi on your Android is off.
- Windows will automatically search Windows Update and install driver for you.
Open "Network Connections" in Control Panel. Right click on an Internet connection that you have i.e WiFi connection (other connections like LAN also work), so right click on WLAN connection with Internet, and select "Properties".
- In tab "Sharing" click "Allow other network users to connect through...", then select the USB connection in dropdown list below.
- Click OK. Windows will automatically setup your USB network connection and assign to it an IP address (usually
192.168.xxx.xxx
or similar; for Win 7 and later its 192.168.137.1
)
- Your Internet connection is now "Shared" and your USB connection is now "Unidentified network".
Type the following command in Terminal Emulator:
netcfg rndis0 dhcp
The name for usb interface inside Android may vary. It is usually rndis0
or usb0
. Type busybox ifconfig
to identify the name.
It can happen that automatic dhcp method does not work. In this case we have to do it manually:
Type these following commands in Terminal Emulator:
ifconfig rndis0 192.168.137.2 netmask 255.255.2 route add default gw 192.168.137.1 dev rndis0
If route fails, try:
busybox route add default gw 192.168.137.1 dev
Some applications (download in Google Play, Gmail, Facebook...) don't recognize the internet connection. You can try this way:
Enable temporarily 3G connection on your Android
Type: ifconfig rmnet0 0.0.0.0
The name for 3G interface inside Android may vary: ppp0, rmnet0... (Type busybox ifconfig
to identify the name).
This will make applications see your Internet connection via USB as 3G/4G
Well its up to user to know which method suites them best. Hope it helps