Use a USB modem or an Android phone as the internet connection of a proxy tunnel, and change its IP on a schedule or with a link. You add the device under My USB Devices; the Localtonet app on the computer it is plugged into does the rest.
How it works #
One computer runs the Localtonet app and has one or more USB modems or Android phones plugged in. Each of them is a USB device in your dashboard. A Proxy Server tunnel that you link to a USB device uses that device as its internet connection.
To give the device a new IP, the app runs the device's IP change steps. What those steps are depends on the kind of device:
| Kind | How the app reaches it | How the IP changes |
|---|---|---|
| Modems with a web admin page | The app opens the modem's admin page from the computer the modem is plugged into. | The app signs in to the admin page and turns the modem's mobile data off and on. |
| Modems controlled over a serial port | For USB sticks in stick (NCM/PPP) mode: the app talks to the modem through its serial port. | The app sends AT commands to the modem's COM port. |
| Android phones | Connected with USB tethering. The app finds the phone by its ADB device ID. | The app turns airplane mode on and off over ADB. |
| Not listed | Any other modem with a web admin page. | You write the steps for its admin page yourself. |
My USB Devices lists these as supported devices: Huawei HiLink, ZTE, Alcatel / LinkZone, AT command modems and Android phones (ADB). Tenda MF and D-Link DWM support is experimental: changing the IP may not work on every firmware.
Before you start #
- The Localtonet app must run on the computer the device is plugged into. Get it from the Downloads page.
- An AuthToken for that computer. You turn on USB device mode for it in step 2 below.
- For a modem with a web admin page: the address of the admin page, which is often printed on the modem's label, and its username and password if it has them.
- For a serial modem: its COM port. On Windows, look in Device Manager under Ports (COM & LPT). On Linux it is usually
/dev/ttyUSB0or/dev/ttyACM0. - For an Android phone: USB tethering and USB debugging turned on, and the
adbcommand available on that computer. The app runsadbto control the phone.
My USB Devices is in the menu of your personal dashboard. It is not shown while a team is selected.
Set up a USB device #
-
Add the device with the wizard #
Open My USB Devices and select Start setup wizard. The wizard has three steps:
Step What you do Model Pick the model that matches yours. You can search the list. Not listed? Choose Other device and write the steps yourself. Connection Enter how the app reaches the device. The fields depend on the kind of device, see Connection details. IP change steps Review what the app runs to change the IP. A listed model either comes with built-in steps or asks you to write your own. Not needed for Android. Select Add device. The wizard confirms that the device is added and shows the next three steps.
-
Turn on USB device mode for the token #
On My Tokens, open the Token settings of the token you use on the computer the device is plugged into and turn on USB device mode.
-
Create a proxy that uses the device #
On Proxy Server, create a proxy with that token and choose the device in USB device. The field appears once the selected token is in USB device mode.
-
Start the tunnel #
Start the tunnel. To change the IP on a schedule or with a link, open the device's settings on My USB Devices.
Connection details #
| Field | Used for | What to enter |
|---|---|---|
| Device name | All devices | Shown in your device list and in the tunnel's USB device setting. At most 100 characters. |
| Admin page address | Modems with a web admin page | The address you open in a browser to reach the modem's admin page, like http://192.168.8.1. |
| Username, Password | Modems with a web admin page | What the app signs in to the admin page with. Required when the model's steps sign in with them, otherwise only if the admin page asks for them. |
| COM port | Serial modems | COM3 on Windows or /dev/ttyUSB0 on Linux. |
| Baud rate | Serial modems | Keep 115200 unless the modem's manual says otherwise. |
| ADB device ID | Android phones | Plug the phone in, turn on USB debugging, run adb devices on that computer and copy the ID in the first column, for example R58M12ABCDE or 192.168.1.20:5555. |
IP change steps #
A device either uses the built-in steps of its model or its own steps.
- Use the built-in steps is recommended. Fixes to the model's steps reach the device on their own.
- Write my own steps replaces the built-in steps for this device only.
- Android phones change their IP by turning airplane mode on and off, so they have no steps to edit.
To change the steps of an existing device, select Edit IP change steps in its row. The app loads the steps when a tunnel starts, so restart the tunnels that use the device after you save.
Writing your own steps #
The app runs the steps in order and waits after each one. A device can have at most 30 steps. Each step is an HTTP request or an AT command.
| Field | Step type | What it does |
|---|---|---|
| Method | HTTP request | GET, POST, PUT, PATCH or DELETE. |
| URL path | HTTP request | Only the path, starting with /, like /api/dialup/mobile-dataswitch. The app puts the admin page address in front of it. |
| Body | HTTP request | The request body or form fields. Write _username_localtonet_ and _password_localtonet_ where the modem's username and password go. The app fills them in from the connection details, so a step never contains the password itself. |
| AT command | AT command | The command the app sends to the serial port. |
| Expected reply | AT command | The reply the app expects, OK by default. |
| Wait after (ms) | Both | How long the app waits after the step, from 0 to 600000 ms. |
The settings button of a step opens Step settings with the less common options:
| Section | Options |
|---|---|
| Request | Content type, Send the body as a query string, and Extra headers as a JSON object of header names and values. |
| Sign-in | This step signs in, Keep the cookies for the next steps, Password format and Username format: how the placeholders are written into the body. |
| Tokens from responses | Store from a JSON response, Store from an XML response and Send stored tokens as headers: keep a value from one response and send it as a header in a later step. |
| Retries | Attempts, 1 to 10, and Wait between attempts (ms), 0 to 60000. |
Set the password format of a sign-in step. When a step signs in without one, the app tries Base64, MD5 and plain sign-ins one after another. That can lock the admin page.
Import, copy and AI help #
- Copy JSON copies the steps as JSON. Import JSON replaces the list with pasted JSON. Nothing is saved until you save.
- Let an AI assistant write the steps: Claude Code or Codex, running on the computer the modem is plugged into, can work out the requests or AT commands that give the modem a new IP and test them. Select Copy prompt, paste it into the assistant on that computer, then import the JSON it gives you, check it and save. For a serial modem, close the Localtonet app there when the assistant asks: the app keeps the serial port open.
Step templates #
The setup page has two more tabs for people with many modems of the same model:
- Step templates: save a set of IP change steps once under a name. Made for is only a label to help you find it.
- Apply a template: copy a template's steps to several devices at once. The template's steps replace the steps of the selected devices. Devices that use their model's built-in steps switch to the template's steps.
Deleting a template does not change devices you already applied it to. They keep their steps.
Device settings #
Your USB devices lists each device with its Model, Auto IP change interval, Tunnels (active tunnels / all tunnels that use the device), Device ID and the date it was added. Select Settings in a row to open USB device settings.
| Setting | What it does | Values |
|---|---|---|
| Change IP automatically | While a tunnel that uses this device runs, the Localtonet app changes its IP at this interval. | On or off. |
| Change every | How often the IP changes. The interval starts again after each change. | Seconds, at least 10. Presets: 5 min, 15 min, 30 min, 1 hour. |
| Airplane mode on for | Android phones only. How long the phone stays in airplane mode during each change. | 1 to 100 seconds. |
| Modem web interface | The Web address, Username and Password the app signs in with to change the IP. | An address like http://192.168.8.1. |
| Gateway | The modem's own address on your computer. Change moves the modem to a new address and updates the web address too. | Only the third number can change, 0 to 255. Needs a proxy tunnel that uses this device: the change is sent to the modem through it. Not every device supports it. |
Change IP links #
The Change IP links tab creates links that change the device's IP. Opening a link changes the IP once, so you can call it from a browser, a script or a scheduler.
- Select Create link, then Copy link. A device can have up to 10 links.
- Anyone with the link can use it, so share it only with tools you trust.
- Delete link revokes a link.
The links normally use localtonet.com as their host: https://localtonet.com/device/changeip?u=<LINK_ID>. If one of your domains in DNS Manager has a record of type Android, the dashboard builds the links with that name instead, for example https://link.example.com/device/changeip?u=<LINK_ID>. See Android records.
Delete a device #
Deleting a USB device stops and deletes the tunnels that use it, and its change IP links stop working. You can't undo this.
Troubleshooting #
The USB device field does not appear in the Proxy Server form
The selected token is not in USB device mode. Turn on USB device mode in the token's settings on My Tokens, then select the token again.
The built-in steps do not change the IP
On the experimental models (Tenda MF, D-Link DWM) changing the IP may not work on every firmware, and on some carriers turning mobile data off and on gives the same IP back. Write your own steps for the device, or let an AI assistant work them out on the computer the modem is plugged into.
I saved new steps but nothing changed
The app loads the steps when a tunnel starts. Restart the tunnels that use the device.
Create a proxy tunnel that uses this device first
A gateway change is sent to the modem through a proxy tunnel. Create a Proxy Server tunnel with this device, then change the gateway.
Enter the ADB device ID exactly as "adb devices" shows it
Copy only the first column of the adb devices output. The ID has no spaces.
You cannot have more than 10 links
Delete a change IP link you no longer use, then create the new one.