Using 4G LTE hat on Raspberry Pi to bypass hotspot throttling.

 

 

 

 

 

When we signed unlimited data plans from wireless carriers such as T-Mobile, AT&T etc , it is by no means that we will  get unlimited bandwidth from those plans. We know we can use our cellphones for hotspot tethering but those carriers will slowdown the data speeds and will throttle the bandwidth significantly.

Some of  methods to avoid tethering detection is by changing  TTL (Time To Live) values ,or rooting the phone.

Here I will show another trick to avoid tethering data slowdown by using 4G LTE hat on Raspberry Pi 3B.


TOOLS:

1. Rapsberry Pi 3B.

2. 4G LTE hat from Sixfab.  Quectel EC25 module using ECM mode is used here.

3. SSH Client (Termium or other SSH program/apps).

4. Web browser client which has proxy settings , for this setup we will use  Firefox web browser.

STEPS:

1.Settings up Raspberry Pi 3B as an Access Point using bridge mode.

https://docs.sixfab.com/page/setting-up-a-raspberry-pi-as-an-lte-hotspot

After following the step above you will have several files which works together to  create a bridge  between wlan0 and usb0. I have modified mine that let users to access eth0 using ethernet cable. Most likely you will have different files compared to mine.

These files are installed on my Raspberry Pi running on Debian Buster.

/etc/network/interfaces
 
  1. cat /etc/network/interfaces
  2. # Bridge
  3. auto br0
  4. iface br0 inet dhcp
  5. bridge_ports usb0 eth0 wlan0
/etc/dhcpcd.conf
 
  1. cat /etc/dhcpcd.conf
  2. denyinterfaces wlan0 eth0 usb0
  3. interface eth0
  4. interface usb0
  5. interface wlan0
  6. interface br0

 

/etc/dnsmasq.conf
 
  1. cat /etc/dnsmasq.conf
  2. interface=wlan0
  3. bind-dynamic
  4. domain-needed
  5. bogus-priv
  6. dhcp-range=192.168.42.150,192.168.42.200,255.255.255.0, 24h
/etc/hostapd/hostapd.conf
 
  1. cat /etc/hostapd/hostapd.conf
  2. interface=wlan0
  3. bridge=br0
  4. driver=nl80211
  5. ssid=tapbridge
  6. hw_mode=g
  7. channel=6
  8. macaddr_acl=0
  9. auth_algs=1
  10. ignore_broadcast_ssid=0
  11. wpa=2
  12. wpa_passphrase=yourpass
  13. wpa_key_mgmt=WPA-PSK
  14. wpa_pairwise=TKIP
  15. rsn_pairwise=CCMP
  16. ieee80211n=1
  17. wmm_enabled=1
  18. ht_capab=[HT40][SHORT-GI-20][DSSS_CCK_40]

 

2.Internet connection settings.

https://docs.sixfab.com/page/internet-connection-with-quectel-ec25-by-using-ecm-mode

3.After doing all steps above, verify that the bridge networks appear on terminal screen  by typing “ifconfig”. It will looks like something like this:

ifconfig
 
  1. pi@pibridge:~ $ ifconfig
  2. br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  3. inet 192.168.225.55 netmask 255.255.255.0 broadcast 192.168.225.255
  4. inet6 fe80::36c0:f9ff:fe34:dac5 prefixlen 64 scopeid 0x20<link>
  5. ether 34:c0:f9:34:da:c5 txqueuelen 1000 (Ethernet)

Your bridge IP address probably look different.

4.Check your internet connection.

ping google.com
 
  1. pi@pibridge:~ $ ping google.com
  2. PING google.com (173.194.77.100) 56(84) bytes of data.
  3. 64 bytes from gc-in-f100.1e100.net (173.194.77.100): icmp_seq=1 ttl=98 time=62.9 ms

If yours is showing timeout or unable to reach  ,you need to check back step 2.

5.Install SSH client on your laptop/desktop or smartphones.  I use Termius as an SSH client on my laptop.

On my laptop I connect my wifi to “tapbridge”. That is ssid name on /etc/hostapd/hostapd.conf. You can create or change with different ssid name  and different password. If you are unable to connect to Rapsberry Pi , verify your first step (step 1), make sure you got the right configurations.

6.Create  a new host on Termius. My host address “192.168.225.55”, in case of yours, type “ipconfig” to see your bridge IP address.

Address: 192.168.225.55

General : “LTE wlan0 “, it is the name I created  to use together with Port Forwarding settings.

SSH on port 22.

credentials:

login: pi ( use yours , or it will be the same for default Raspberry Pi)

password: (your own raspberry Pi password) . Instead of password I use SSH-key so it will connect the Raspberry without entering password every time I need to login.

7.Create a new Forwarding on Termius.

Select the port forwarding type: Dynamic.

Dynamic port forwarding turn Termius into a SOCKS proxy server.

Label: cellular_sock ( create your own)

Local port number: 7777 ( you can choose any unused port number or uncommon port number), we will use this number for web proxy settings.

Bind address: 127.0.0.1

Intermediate host: LTE wlano ( it must match host name settings above).

8.Firefox web browser proxy settings.

Go to “settings” and “Network settings”. choose “Manual proxy configuration”.

SOCKS Host: localhost , Port:7777

choose :SOCKS v5. and press “OK” to save it.

9.Connect to 4G LTE with SOCK -5 configuration.

On Termius , go to “host’ and  click on “LTE wlan0”. this SSH will connect to Raspberry Pi. To get port forwarding running , go to “Port Forwarding” and click on “cellular_sock”. These chain connection will fire the SOCK proxy and you will able to browse Internet without tethering limitation.

Before without proxy  and After proxy data speed testings: