I have recently configured a mobile internet setup using a USB-tethered Visible Wireless cellphone hotspot, a travel router, and TTL mangling to get unlimited, unthrottled internet in my apartment. Having used it for approximately a month now, I wanted to post my solution to get this setup to work, as well as my thoughts on its viability to replace traditional home internet from the perspective of a remote worker.
Unlimited, unthrottled Visible 4G LTE Wi-Fi data on multiple devices for 30$/mo
You can get unlimited, unthrottled internet using TTL mangling, a VPN and an OpenWRT router for ~$30/month ($25 for Visible Wireless service, ~$5 for VPN), but you will most likely experience significant deprioritization during peak hours, in addition to poor customer service from Visible. The "hacky" nature of the setup also requires fairly consistent troubleshooting from the operator, which might be oppressive to new users.
Overall, I recommend this setup for use cases where reliability isn't critical and both portability and affordability are the driving factors, but I don't recommend it as the primary internet source for a remote worker. Visible's regular and often brutal deprioritization makes it unreliable for remote work or consistent daily use. I ended up switching to T-Mobile Home Internet ($50/mo unlimited 5G) as my primary internet provider, keeping Visible as a backup.
Brief Summary of Steps:
- Sign up for Visible, order phone (if necessary), and order router (if necessary)
- Activate the Visible Wireless Service and Configure the Phone for Tethering
- Flash OpenWRT to router
- Configure OpenWRT
- Setup OpenWRT to Bypass Throttling
This setup bypasses the 5mb/s throttle limit of Visible's unlimited hotspot service, and as such is a violation of their Terms of Service. I am not responsible if your service is interrupted or even cancelled due to following any of the steps outlined in this guide. Use them at your own risk.
Sign up for Visible, get a phone, and get a router
Why Visible Wireless? Cost, mostly. By signing up for Visible Party Pay you can get unlimited 5G/4G LTE internet for only $25/month, but more importantly unlimited 5G/4G LTE hotspot data as well. By default, this hotspot is throttled to 5mb/s, but this guide contains means to get around this limit, giving your home an unlimited Wi-Fi access point for only $25/month, which is much less than you would pay for a normal dedicated 4G LTE hotspot with data caps.
Sign up for a Visible Wireless unlimited 5G data and 5MB/s hotspot plan. I didn't have any phones that were compatible with their service, so I also bought a cheap compatible ZTE phone from their website to be my hotspot (~90$). It's worth noting that I did not purchase a 5G-compatible phone, which might have drastically increased the reliability of the network, though greatly increasing the cost of the phone. If anyone has completed a Visible setup like this with a 5G compatible phone please comment your experience, especially concerning deprioritization.
Join a Visible Party Pay group.You can join a public Visible group by going to r/VisiblePartyPay on Reddit and joining one of the groups posted to get the group rate. I just joined the huge one stickied on the front page as I don't see any benefit to joining a smaller group.
Purchase a router. Visible only allows one device connected to the hotspot at a time, so to get around this you will tether the hotspot to a router. I would recommend a travel router for added portability, but any OpenWRT-compatible router will work. The router I used for my setup is the GL.iNet GL-AR750S-Ext (Slate) Travel Router (hereafter "AR750S" or "the router"), approx. $70 at time of writing. I believe this setup will work with any OpenWRT-compatible router, as long as it has a USB-port which can accept USB tethering. You can check here on OpenWRT's website to see if your router is compatible. If your router doesn't have a USB port, you may be able to get away with using a USB-to-Ethernet adapter to plug your phone directly into a LAN port, but I haven't tested this.
If you already have the router you want to use, or it comes in before the phone, you can skip to the instructions on flashing OpenWRT while you wait for the phone to come in.
Activate the Visible Wireless Service and Configure the Phone for Tethering
Once the SIM arrives, put it in the compatible phone and activate the SIM through the Visible app. This step is important, as the service will not work until the SIM is activated. The app is available in the Google Play Store, and you will use your web login to login to the app. Follow the steps to activate your service, after which you can confirm that you are joined to the group you found on r/VisiblePartyPay and are currently paying the group rate ($25/mo as of 06 NOV 2021).
Set you APN settings and verify that the service is functioning on your phone. If you bought your phone from Visible the APN will be auto-configured. For everyone else, In Advanced Settings-> Cellular, add the APN for Visible, which is:
For reasons that are unknown to me, my setup would only work if I restricted the APN to IPv4 as seen above, but many other Visible users have indicated that they need to set PDP/PDP Roaming to IPv4/Ipv6 for their service to work. Feel free to try both settings and see which works best for you.
Code: Select all
APN Name: Visible APN: vsblinternet PDP: IPv4 PDP Roaming: IPv4
Verify your phone can now connect to the Visible network. The easiest way to check that your internet is working is with speedtest.net, which is also a great way to benchmark your maximum download(DL) and upload(UL) speeds. My maximum dl speeds were ~50mb/s, with the average being between 15-25 mb/s (when not being deprioritized).
Configure the phone for automatic USB tethering. For Android phones, you can configure the phone to automatically USB tether when connected by activating Developer Options:
Settings -> About Device -> tap Build Number seven times in a row
Enter Developer Options in Settings->Developer Options and scroll down to Default USB Configuration: USB Tethering. This makes it so your tethered phone will automatically connect if you plug the phone into the router, or if the router restarts (NOTE: phone must not have a screen lock for this to work). The phone will also charge while connected to the router.
For these next steps, if you don't have access to a secondary Wi-Fi source, you can now connect your phone directly to your laptop via USB in order to download OpenWRT for your router through the (currently 5mb/sthrottled) Visible hotspot connection.
Temporary TTL Mangling on Windows. If you are on Windows, you can add a small TTL fix to your registry to get unthrottled internet right away:
(you can also try Value: 64 and 66 if 65 doesn't work)
Code: Select all
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters R-CLick -> New -> DWORD (32-bit) Value Rename: DefaultTTL Base: Decimal Value: 65
Reboot, then ping yourself (usually 192.168.1.1) to see if you get TTL: 65
Honestly, if this Windows laptop is the only device you need connected to the internet, you're done! For most people, however, you'll want to generate an AP to connect multiple devices to the network. This is where the router comes in.
Flash OpenWRT to the router
Find the specific installation instructions for your router on the OpenWRT website. The install sequence is as follows:
- Download your router's kernel.bin file
- Download your router's sysupgrade.bin
- Flash kernel.bin to router
- Flash sysupgrade.bin
- (Optional) make backup of new, default OpenWRT system
From the OpenWRT AR750S page:
Note: As of OpenWrt 19.07.4, gl-ar750s-squashfs-sysupgrade.bin still gives an unsupported format error on the web UI and sysupgrade command, but works fine through the router's debricking interface: power down, ensure only 1 network cable is plugged in, hold the reset button, power on, wait until the led blinks 5 times and stays on, then release reset button. Change your computer's IP to 192.168.1.2 and connect to http://192.168.1.1, where you can upload and flash the sysupgrade.bin image.
Log in to your router's LuCI interface. You can now log into your router by connecting the router to your computer via ethernet and entering 192.168.1.1 into your browser (Note: you will need to change your computer's IP address if it is currently 192.168.1.1 to 192.168.1.2). This will take you to the router's LuCI interface, where you'll be asked to create an administrator password.
Change your router's dedicated IP address. In the LuCI interface, go to Network->Interfaces->LAN->General Settings->IPv4 address and change it to a different IP address within the 192.168.1.0/24 subnet. I changed mine to 192.168.1.8, for example.
Configure OpenWRT to accept a USB-tethered phone connection. I just followed the Smartphone USB tethering guide on OpenWRT. Note that you will have to SSH into the router at some point in this tutorial, so if you've never SSH'd into another device before, don't panic! Here are some very basic instructions on how to do so on Windows:
- Go to Start -> Run -> type "cmd"-> press Enter
- Once you're in cmd, enter this command:
...replacing your.router.ip.addr with the address you assigned to your router in the previous section.
Code: Select all
- You'll get a yes/no prompt, just type "yes" and press Enter.
- It will then ask for the admin password you just set up, so enter it now and press Enter.
- Enter the commands in the tutorial
- Exit the secure shell by closing the window
Make sure the access point is connected to the internet. It will still be throttled to 5mb/s before setting custom firewall rules (next step).
OpenWRT Throttle Bypass Settings: TTL Mangling
Set custom firewall rules to change the outgoing TTL of router traffic. For an in-depth explanation of TTL mangling I would highly recommend reading this excellent guide by didneywhorl. In the router's LuCI interface, log-in and navigate to Network->Firewall->Custom Rules and place the following code:
Restart the firewall. Go to Status->Firewall-> click Restart Firewall. It will likely take several minutes for the firewall to restart, since it has to both update the package tables and install the required iptables packages for TTL mangling, so give it a while for the firewall to come up again. Once the firewall has successfully restarted, your TTL changes should be visible at the bottom of the page under Table:Mangle, Chain POSTROUTING, TTL set to 66.
Code: Select all
# update packages opkg update # download mod package for TTL mangling opkg install iptables-mod-ipopt # Start-IP4-TTL-Fix iptables -t mangle -I POSTROUTING -o usb0 -j TTL --ttl-set 66 # End-IP4-TTL-Fix
Check to see if traffic is still throttled. You will likely have to try several TTL values to find one that works for your setup. The most common values seem to be 64 and 65, though mine requires either 65 or 66 depending on the day. Others have reported using 117 or 88 as well for Verizon/Visible. Note that you may have to change the TTL value day-to-day if you notice that the network becomes unexpectedly throttled, so just keep an eye on your dl/ul speeds and change the TTL value if you find them locked at 5mb/s. If you can see that your TTL is being mangled successfully but your traffic is still being throttled, your best bet is to install a VPN interface to encrypt your traffic.
OpenWRT Throttle Bypass Settings: Using a VPN (Optional)
NOTE: I initially had to set up a VPN interface to get unthrottled speeds, but I noticed that I could still get unthrotthled speeds while the interface was disabled. Since it is possible to get full dl/ul speeds without a VPN it isn't strictly necessary, but I still strongly recommend using one. Using a VPN encrypts your traffic when it is sent to Visible, limiting how they can inspect your outgoing network packets and making it more difficult for them to detect that you are bypassing their hotspot limits.
Sign up for a VPN service. I recommend using a Wireguard VPN service such as Mullvad (5 euro/mo) as their throughput is substantially faster than one which uses OpenVPN, but any VPN service should work.
Route your traffic through the VPN. You can enable the VPN on a per-device basis using the VPN provider's stock app if you only have one or two devices, but I would recommend you just route all traffic through a Wireguard interface on your router. I followed this video as a guide to setup this interface: https://www.youtube.com/watch?v=04q41GEPvKA. After following the instructions I additionally had to change the interface's MTU for it to work:
Network -> Interfaces -> Devices
wg0 -> Configure
(1280 also worked. You may have to try a few different valued, the max is 1500 for normal traffic)
Verify your VPN is encrypting your traffic. Navigating to https://mullvad.net/check/ to check that the VPN is masking your IP address and that you don't have any DNS leaks. If either is the case, check the FAQs on the Mullvad website to troubleshoot.
- The ping is very high . Yes, it often is . This setup is notable only for its affordability and portability, not its network speeds or latency, so if you require a shorter ping for gaming or other applications, unfortunately this may not be the setup for you.
- The data is still being throttled. I can't guarantee that anything in this guide will be 100% effective in perpetuity, I can only show you what has worked for me. Your best bet is to try different TTL values in your custom firewall rules and verify that your VPN is functioning correctly. You can also post your setup/problems as a separate thread and request some assistance, but include the model numbers of the hardware as well as the custom firewall rules you're using in your post.
There are two primary strengths in this network setup:
Affordability. The hardware costs were pretty low overall ($70 for the router and $90 for the phone = $160 total), and at ~$31/mo ($25 Visible, 5 euro for Mullvad), it's hard to find a cheaper unlimited Wi-Fi setup. We've used over 150gb of data so far, and with the TTL mangling I can get upwards of 50-70mb/s DL speeds during non-peak hours, more than enough for me and the wife in a single bedroom apartment (two phones, two laptops, streaming simultaneously), all for less than the cost of most single cell phone plans. That's pretty cheap!
Portability. With the hardware consisting of a travel router, a smart phone, and a portable battery I had lying around, the footprint of this system is incredibly small. I can fit all of the hardware - phone, portable battery, the AR750S, and associated cables - inside the box in which the phone was delivered, making it incredibly easy to throw into a backpack or bag if we're heading someplace for the weekend. With the router plugged into the battery the system becomes wholly portable, providing a wifi access point pretty much anywhere in Verizon's coverage area, including many parks and campgrounds. We visited some family while camping in the North Georgia mountains a few weeks ago and still had enough bandwidth for all of us (4 people) to connect our phones for browsing and video streaming.
That being said, there are a few things that I don't like about this setup:
The system is "hacky", in the sense that it took quite a bit of research, custom configuration, and pain in order to get it to function correctly. Some people (myself included) might consider this a plus, making it an opportunity to learn about LTE and networking principles, but most people want something you can buy, plug in, and start using, and this system definitely isn't that simple to establish.
The system is not very reliable. The setup is pretty fragile: sometimes (~once/week) it will go down for about ten minutes at a time, or will disconnect for a few seconds, causing hiccups in video conferencing, etc. These instances are sometimes resolved with a reboot, but not always. Another example: the bandwidth is currently unthrottled but my Wireguard interface decided to stop working suddenly, which will require some time to reconfigure. As you can see, it's a difficult system to rely on if you are working remotely and require a stable connection, especially for remote workers.
Visible's deprioritization. This is definitely the biggest elephant in the room. We live in a metropolitan area, and there are hour-plus-long periods of the day where we get deprioritized down to sub-5mb/s dl speeds, which no amount of troubleshooting or configuration changes will solve. I almost had to cancel an online meeting at one point because Visible put our bandwidth at 0.3 mb/s, according to speedtest, which is clearly unacceptable for most forms of remote work. This is ultimately the reason we had to switch from this setup to T-Mobile Home Internet, turning the Visible service into a backup, redundant network.
If you made it this far into the guide, you're a trooper.
Overall, I enjoy the cheap, portable nature of the Visible Wireless USB-tethered travel router setup, but I found that Visible's deprioritization made it infeasible to use as a primary form of home internet for remote work. This might be different using a primary carrier (such as a phone plan through Verizon directly) instead of an MVNO (like Visible) to avoid the deprioritization, but at that price point (~$45-$70/mo) you might as well get T-Mobile 5G Home Internet ($50/mo) with 24/7 technical support and a considerably easier setup, which is exactly what we did!
Even though I ended up using a different carrier and setup than Visible, the process of researching and setting up this mobile network gave me a hands-on education about OpenWRT, LTE networking, ISPs and general network troubleshooting, which is why I consider this Visible experiment a success.
If you have any questions about my experience or the steps in this guide I will do my best to answer them. Thanks for reading!