28 min read

Migrate Port Forwarding to Outbound Tunnels

A protocol-by-protocol runbook for replacing inbound firewall rules and public-IP dependencies with outbound Localtonet tunnels.

Networking Guides · Port Forwarding Migration · Localtonet · 2026

Replace inbound exposure with a staged, protocol-aware migration

Traditional port forwarding ties service availability to inbound router rules, reachable public addresses, and firewall configuration at every deployment site. This runbook explains how to inventory those dependencies, verify the local service, install and operate the Localtonet client, map each workload to the correct tunnel, validate the public endpoint in parallel, and retire the old ingress path safely. It covers HTTP, TCP, UDP, combined UDP/TCP, and TLS workloads while preserving a practical rollback path. It also explains when a public tunnel is the wrong connectivity model and VPN Manager is the better fit.

🔒 Least-privilege migration and controlled decommissioning 🌐 HTTP, TCP, UDP, combined UDP/TCP, and TLS mapping ⚡ Local preflight, parallel validation, and rollback
Comparison of inbound port forwarding with an outbound Localtonet tunnel.
Outbound tunnels replace public-IP and inbound firewall dependencies with a connection initiated from the private network.

How outbound tunnels change the connectivity model

An inbound port-forwarding design begins at the network perimeter. A router or firewall listens on a public address and port, translates incoming traffic, and delivers it to an internal address and port. The application therefore depends on its own listener, the public address, network address translation rules, firewall policy, and any upstream provider restrictions.

With Localtonet, our client application runs on a device that can reach the local service and establishes an outbound connection to a Localtonet relay server. A running tunnel then provides a public URL or a public host and port, depending on the tunnel type. The local service does not need inbound router port forwarding, firewall changes for inbound forwarding, VPN setup for public access, or its own public IP address.

This is an architectural migration rather than a one-for-one conversion of firewall syntax. The public destination changes, availability depends on the Localtonet client and tunnel lifecycle, and monitoring must cover both the application and its access path. A successful migration requires identifying every consumer, checking protocol behavior, updating dependencies, validating the replacement endpoint, and removing the legacy path only after the new route is proven.

↗️ Outbound initiation The client initiates its relay connection from the private network, so the tunneled service does not require an inbound forwarding rule.
🌐 Protocol-aware endpoint HTTP workloads use a public web address, while raw port services use a public host and port appropriate to the selected tunnel type.
🔄 Explicit lifecycle Creating a tunnel does not start it. The selected device must be connected and the tunnel must be running before the endpoint is available.
🧭 Central management Tunnels can be managed from one dashboard or through the Localtonet REST API, allowing teams to standardize ownership and lifecycle procedures.
Outbound tunneling changes exposure, not application semantics

The application must still listen on an address and port reachable from the device running our client. Its authentication, authorization, session handling, protocol behavior, and data-protection requirements remain application responsibilities.

Inventory every listener before changing the network

Listener inventory linking local services to ports, consumers, authentication, and owners.
A complete listener inventory records both network details and the consumers that depend on each service.

Begin with the current ingress configuration rather than only a list of known applications. Router rules and firewall objects often reveal forgotten development systems, temporary vendor access, duplicated ports, and services whose original owner has left the team. Treat every forwarding rule as an item that must be explained, migrated, intentionally retained, or removed.

Build a migration register with one row per externally reachable service. Record the current public address and port, transport protocol, translated internal address and port, application owner, technical owner, expected consumers, authentication method, availability requirement, and rollback contact. If one rule covers a port range, split it into individual application dependencies wherever possible. A broad range should not automatically become a broad tunnel design.

Confirm the real local destination

A firewall rule can outlive the service it once forwarded. Verify that the destination process is listening and that an authorized local client can complete a meaningful transaction. A successful TCP connection alone does not establish application health. For a web application, retrieve a representative page or health endpoint. For a database or message broker, perform a safe authenticated query or handshake. For UDP, send a request that should produce a response, log record, metric, or other observable application event.

Record whether the service listens only on loopback, on a specific LAN address, or on all interfaces. If the Localtonet client will run on the same host, a loopback target may be suitable. If it will run on another device, the service must be reachable from that device over the local network. Do not broaden a listener merely for convenience without reviewing the resulting LAN exposure.

Discover hidden dependencies

Search deployment variables, configuration repositories, monitoring systems, callback settings, partner documentation, DNS records, mobile applications, desktop clients, and automation scripts for the old public address or hostname. Include allowlists, certificate assumptions, health checks, and hardcoded ports. A simple forwarding rule can support many downstream dependencies.

Identify applications that embed addresses, advertise internal endpoints, open secondary connections, negotiate dynamic ports, or require a port range. The availability of a TCP or UDP tunnel does not guarantee that every higher-level protocol will operate through one public endpoint. Test these behaviors explicitly and retain the original route until representative clients pass.

Inventory field Why it matters Acceptance evidence
Transport protocol Determines whether the workload needs HTTP, TCP, UDP, combined UDP/TCP, or TLS handling. Listener configuration, application documentation, and a successful transaction.
Local IP and port Defines the target our client must be able to reach. A successful local connection from the intended client device.
Consumers Shows who must move and who can validate behavior. A named list of users, systems, partners, or devices.
Authentication Prevents public reachability from becoming unauthenticated exposure. A documented login, key, token, certificate, or other application control.
Address dependencies Reveals DNS, certificate, allowlist, and hardcoded endpoint changes. Repository and configuration searches with owners assigned.
Rollback method Allows restoration if the new path fails during adoption. A tested procedure with a decision owner and time limit.

Prepare the account, host, service, and migration plan

Complete these prerequisites before installing the client or creating public access. The goal is to remove avoidable uncertainty from the migration window.

👤 Authorized Localtonet account Use an approved account and obtain the device-specific AuthToken through the authorized workflow. Do not copy a token from an unrelated device.
🖥️ Suitable client device Select a supported device that can remain available for the required service period and can reach the local application target.
✅ Healthy local service Know the exact local address, port, transport, and application-aware test that proves the service works before tunneling.
🔐 Application access controls Enable appropriate authentication and least-privileged authorization before making the service publicly reachable.
🧪 External test client Prepare an authorized client on a separate network so testing does not accidentally remain on the LAN or use the legacy private route.
↩️ Rollback authority Name the person who can pause cutover, restore the old endpoint, or extend the observation period when acceptance checks fail.

Supported installation paths

Current Localtonet documentation provides downloads for Windows on 64-bit, 32-bit, and ARM systems; Linux on x64, ARM, ARM64, and MUSL variants; macOS on x64 and ARM64; Docker; and Android. The documentation also includes a Termux ARM64 path for running the console client on Android. OpenWrt packages are marked experimental and have firmware, architecture, storage, and memory requirements, so they should not be treated as interchangeable with standard Linux packages.

Choose the platform path that matches the actual client device. The detailed commands below are specifically for supported Linux DEB or RPM packages. They do not apply to Windows, macOS, Docker, Android, Termux, or OpenWrt. For those platforms, use the matching instructions and download on the current Localtonet installation documentation.

Linux package requirements

Installable Linux DEB and RPM packages are currently documented for x64 and ARM64. The packaged service requires systemd 247 or newer and OpenSSL 3. Documented compatible examples include Debian 12, Ubuntu 22.04 or newer, and RHEL 9. Confirm the operating system release, CPU architecture, systemd version, and OpenSSL version before downloading a package.

Protect the device AuthToken

The AuthToken identifies the Localtonet client device. Do not put it in screenshots, tickets, source control, shell examples, migration registers, or monitoring output. On the documented Linux package path, store it in the root-managed AuthToken file and restrict that file to mode 600.

Map each workload to the correct tunnel family

Workloads mapped to HTTP, TCP, UDP, TLS, and proxy tunnel families.
The tunnel family should match the workload’s protocol and connection behavior.

Choose the tunnel type from observed behavior, not from the number in the existing firewall rule. A familiar port can carry an unexpected protocol, while custom applications often use nonstandard ports.

Tunnel type Use it for Local target Acceptance focus
HTTP/s Web applications and HTTP APIs Local IP address and port Host handling, redirects, cookies, authentication, methods, and generated URLs
TCP Services using a raw TCP stream Local IP address and port Handshake, authenticated transaction, idle behavior, and reconnect handling
UDP Datagram-based services Local IP address and port Request and response flow, observable delivery, and timeouts
Combined UDP/TCP One application that genuinely requires both transports Local IP address and port Independent TCP and UDP checks plus transport fallback
TLS TLS-oriented services that fit the documented tunnel model Local IP address and port Certificate expectations, server name, trust validation, and full handshake

HTTP and HTTPS applications

Select HTTP when the local workload is a web application or HTTP API. HTTP tunnels support Random Sub Domain, Custom Sub Domain, and Custom Domain process types, which serve the content at a public HTTPS address. A generated address is useful for isolated migration testing because it avoids changing the production hostname before validation.

Test sign-in, sign-out, redirects, callback URLs, API methods, uploads, downloads, and browser policies tied to the hostname. Applications can generate absolute links or enforce allowed-host lists. Those settings may need deliberate adjustment. See the Localtonet HTTP tunnel documentation for the current HTTP-specific workflow.

Custom-domain DNS requirements should be checked against the current dashboard and documentation before cutover. Do not copy DNS values from an older environment or infer them from another tunnel provider.

TCP, UDP, combined transport, and TLS

Use TCP for a continuous raw TCP stream rather than an HTTP application. Validate it with the supported application client and a least-privileged account. A socket-open test proves basic reachability, but not authentication, negotiation, queries, transfers, or session stability.

UDP needs application-level evidence because it has no TCP-style connection establishment. Confirm that requests reach the service and that responses or expected server-side events occur. If the application uses both TCP and UDP, validate each independently before testing any fallback behavior. Do not combine unrelated services merely because they use the same port number.

For TLS workloads, record where TLS is expected, which hostname clients use, what certificate they expect, and how trust is evaluated. Perform a full client handshake and application transaction. Do not infer certificate provisioning or TLS termination behavior that has not been established for the selected configuration.

Install and start the Localtonet client

The following is a complete installation and startup path for the currently documented Linux DEB and RPM packages. Download the package that matches the host architecture before running the relevant commands. Keep token entry out of shared terminal recordings and documentation.

1

Install the matching Linux package

On Debian or Ubuntu, open a terminal in the directory containing the downloaded DEB package and install the x64 or ARM64 file. On Fedora or RHEL, install the matching RPM. Use only the command for your platform and architecture.

2

Set and protect the AuthToken

Edit /etc/localtonet/auth-token as root. Replace DUMMY_AUTH_TOKEN with the device-specific token on one line. Restrict the file to mode 600 so it is not readable by other users.

3

Check the configuration before startup

Run the documented headless configuration check with the AuthToken file. Do not enable the service until this command succeeds.

4

Enable and start the systemd service

Enable and start localtonet.service. This is the standard tunneling service used for the migration described in this guide.

5

Inspect the service journal

Review the systemd journal for startup or authentication errors. Keep the journal free of copied secrets when attaching diagnostic excerpts to a ticket.

Debian or Ubuntu commands

Use the filename matching the downloaded architecture. The example below shows x64.

sudo apt install ./localtonet-linux-x64.deb
sudo chmod 600 /etc/localtonet/auth-token
sudo localtonet --headless --authtoken-file /etc/localtonet/auth-token --check-config
sudo systemctl enable --now localtonet.service
sudo journalctl -u localtonet.service

On ARM64, the package filename is localtonet-linux-arm64.deb. The AuthToken, validation, service, and journal commands remain the same.

Fedora or RHEL commands

The example below shows the x64 package.

sudo dnf install ./localtonet-linux-x64.rpm
sudo chmod 600 /etc/localtonet/auth-token
sudo localtonet --headless --authtoken-file /etc/localtonet/auth-token --check-config
sudo systemctl enable --now localtonet.service
sudo journalctl -u localtonet.service

On ARM64, use localtonet-linux-arm64.rpm. Do not paste the token itself into these commands. The token belongs in the protected file described above.

These service commands are for standard tunnels

The documentation provides a separate localtonet-vpn.service workflow for VPN use. Do not switch to that service for an HTTP, TCP, UDP, combined UDP/TCP, or TLS port-forwarding migration. Standard tunneling and VPN Manager are different connectivity models.

Upgrade the packaged Linux client

To upgrade, download and install the new matching DEB or RPM package using the same package manager. The documented package workflow preserves the configuration. Restart the standard tunnel service after installation:

sudo systemctl restart localtonet.service
sudo journalctl -u localtonet.service

Re-run the configuration check when investigating configuration or authentication problems, and review the journal after upgrades. Plan the restart as a service change because active tunnels depend on the connected client.

Run a local preflight before public exposure

Installation success does not prove that the application is ready to tunnel. Perform this preflight from the exact device running the Localtonet client before creating or starting a public endpoint.

1

Confirm the application process and listener

Verify that the intended process is running and listening on the recorded IP address, port, and transport. Resolve any mismatch before editing tunnel settings.

2

Test from the client device

Complete an application-aware request from the Localtonet host. If the target is on another machine, a test from an administrator workstation is not a substitute.

3

Verify authentication and least privilege

Confirm that valid credentials work, invalid credentials fail, and the migration test identity has only the permissions required for the acceptance procedure.

4

Review local routing and firewall behavior

Confirm that the client device can reach the target without opening broad LAN access. If the application is remote from the client device, document the local route and any narrow local firewall dependency.

5

Confirm Localtonet client health

Verify that the intended device is authenticated and connected. On packaged Linux installations, inspect localtonet.service and its journal for errors.

6

Approve public testing

Confirm the owner, tester list, exposure window, acceptance criteria, rollback trigger, and method for handling logs without disclosing tokens or credentials.

Do not use public exposure to diagnose a broken local service

If the application cannot complete its representative transaction from the client device, fix the application, listener, route, or local firewall first. Creating a tunnel adds another dependency and makes diagnosis less clear.

Create and start the protocol-appropriate tunnel

Localtonet console showing a connected TCP tunnel and its local destination.
The console exposes the tunnel endpoint, protocol, local destination, latency, and connection status.

Keep the existing forwarding rule available during controlled testing unless policy requires otherwise. Parallel availability lets the team compare both routes and preserves a practical rollback option.

1

Run the client on the approved device

Use the application host or another authorized device that passed the local preflight and can reach the exact service target.

2

Authenticate and select the device

Use its device-specific AuthToken and select the corresponding device for the tunnel. Never record the token in the migration register.

3

Select an available relay server

Choose from the server or region values currently presented by the product. Do not hardcode an old server code from another environment.

4

Create the correct tunnel type

Select HTTP, TCP, UDP, combined UDP/TCP, or TLS according to the verified protocol. Enter the local IP address and port reachable from the client device. For HTTP, select the appropriate supported process type.

5

Start the tunnel and record its endpoint

Creating the configuration does not make it active. Use Start, verify that the selected client remains connected, and record the assigned public URL or host and port. Share it only with authorized testers during validation.

6

Stop or delete it when no longer required

Stop a temporary tunnel after testing. Delete configurations with no continuing operational purpose according to the team’s change and retention procedures.

Configuration, connection, and application health are separate states

A saved tunnel is not proof of availability. The client must be running, the selected device must be connected, the tunnel must be started, and the local application must remain healthy and reachable.

Validate the public endpoint in parallel

Keep the existing forwarded endpoint available while a restricted tester group uses the Localtonet endpoint. This separates tunnel validation from final decommissioning and preserves rollback while evidence is collected.

Test from outside the local network

Use an authorized client on an external network. Confirm that the test is not reaching the old endpoint through cached DNS, split-horizon resolution, a hosts-file entry, or an existing private route. Use the assigned Localtonet public URL or host and port exactly as recorded.

Test the application, not only the port

Define acceptance checks as user or system outcomes. An HTTP test may require sign-in, a state-changing operation, a download, and sign-out. A TCP service may require authentication and a representative command. A UDP service needs an observable request and response or verified server-side event.

Include negative tests. Invalid credentials should fail, unauthorized users should not gain additional access, and requests to unavailable resources should behave normally. A migration is incomplete if normal traffic succeeds but access controls have changed unexpectedly.

Exercise lifecycle failures

During an approved test window, stop the tunnel and confirm that monitoring detects the outage. Start it again and verify recovery. If client-host restart is part of the intended operating model, test that procedure as well. These checks show whether responders can distinguish a stopped tunnel from an unhealthy application.

Localtonet provides platform-wide Token/Tunnel webhooks for selected Token Groups. They send Connected and Disconnected state changes with an identifier, action date, type, and status. These lifecycle events are separate from File Server file-event webhooks. See the Localtonet webhook documentation for the platform-wide webhook model.

Workload Minimum positive checks Failure checks
HTTP application Response, authentication, redirects, state change, and representative transfer Invalid login, unauthorized route, wrong host behavior, and stopped target
TCP service Connection, handshake, authenticated operation, response integrity, and reconnect Invalid credentials, tunnel stop, listener stop, and timeout behavior
UDP service Representative datagram, observable processing, response where applicable, and repetition No-listener behavior, timeout handling, malformed input, and tunnel stop
Combined UDP/TCP Separate TCP and UDP transactions plus documented fallback One transport unavailable, both unavailable, and incorrect fallback
TLS workload Handshake, hostname and trust validation, authentication, and transaction Wrong hostname, trust failure, stopped target, and stale client assumptions

Record who ran each test, from which network, with which supported client version, and at what time. Keep sanitized application evidence without exposing credentials or device tokens. Require both the application owner and tunnel owner to approve the result.

Cut over consumers and preserve rollback

Parallel tunnel cutover sequence with validation, observation, and rollback.
Keep the original route available until migrated consumers pass validation and the observation period is complete.

Change one dependency at a time where practical. Start with internal testers or a low-risk consumer, move representative automated integrations, and then migrate the wider user population. Track adoption explicitly rather than assuming that a documentation or DNS change moved every client.

Define rollback triggers in advance

Useful triggers include authentication failure for supported clients, inability to complete a critical transaction, unacceptable error volume, missing UDP responses, certificate validation failure, or monitoring that cannot distinguish tunnel state from application health. Define who can order rollback and how long the team will troubleshoot before restoring the prior route.

During parallel operation, rollback normally means returning affected consumers to the known working endpoint while keeping the new tunnel available for diagnosis. Avoid changing the legacy firewall rule in the same window unless necessary. Simultaneous network changes make fault isolation harder.

Retire inbound rules only after evidence is complete

Confirm that every known consumer has moved, monitoring targets the new endpoint, operational ownership is assigned, and the rollback window has ended. Search again for references to the old address, hostname, and port.

Remove or disable the narrowest relevant firewall and network address translation objects through the normal change process. Test the old endpoint externally and confirm that it no longer reaches the service. Then test the Localtonet endpoint again to prove that removing the inbound rule did not affect the application or another dependency.

Do not declare success while the legacy path remains reachable

A working tunnel plus an unchanged forwarding rule creates two public access paths. Migration is complete only when authorized consumers use the new endpoint and an external test confirms that the old route no longer exposes the service.

Update network diagrams, service records, incident procedures, monitoring targets, and owner information. Mark the former address and rule as retired so future responders can understand why the architecture changed and why the rollback path was intentionally closed.

Operate tunnels as production dependencies

After cutover, availability depends on the application, its host and local route, the Localtonet client, the selected device identity, the running tunnel, and the consumer’s path to the public endpoint. Operations should reflect the whole chain.

Monitor in layers

Use a local application-aware check for the listener and core behavior. Use an external synthetic check for the public path and a representative transaction. Track client and tunnel connection state separately. Token/Tunnel webhooks can report lifecycle changes, but a Connected event does not prove that the application is healthy.

Assign lifecycle ownership

Every production tunnel should have a service owner, client-device owner, escalation path, and review date. Record whether it is permanent, scheduled, or temporary. When the service is decommissioned, stop and delete the corresponding tunnel rather than leaving an unused public configuration.

Control configuration and software changes

Treat changes to the local target, tunnel family, relay selection, public endpoint, application authentication, client package, and host operating system as service changes. Re-run the relevant local and external checks after each one. On packaged Linux systems, inspect the service journal after client upgrades and restart the service as documented.

Keep an auditable register

Preserve the migration inventory as an operational record. Update it when a tunnel changes, an owner leaves, credentials rotate, or a service moves. Record the public endpoint, local target, protocol, device owner, relay choice, and lifecycle state, but never store the device AuthToken or application secrets.

Choose between a public tunnel and VPN Manager

Standard Localtonet tunneling and VPN Manager solve different problems. HTTP, TCP, UDP, combined UDP/TCP, TLS, and File Server configurations expose specific resources through public endpoints. VPN Manager creates a private mesh network with granular firewall rules and can bridge local LANs. Standard tunneling is not a VPN.

Connectivity need Preferred model Reason
Publish one web application or API HTTP tunnel Provides a public HTTPS address for the selected HTTP target.
Expose one protocol-specific service TCP, UDP, combined UDP/TCP, or TLS tunnel Maps a public host and port to the intended local protocol target.
Connect approved devices as members of a private network VPN Manager Provides private mesh networking and granular firewall rules.
Bridge selected local LANs privately VPN Manager This is private network connectivity rather than conventional public publishing.

If external users or systems need one specific public service, use the corresponding tunnel and protect the application appropriately. If approved devices need private network membership or LAN-to-LAN access, evaluate Localtonet VPN Manager. Do not publish a collection of internal ports as a substitute for designing private connectivity.

Troubleshoot migration failures systematically

Diagnose the path from the inside out. This separates application failures, local routing problems, client-service issues, tunnel lifecycle errors, and external client problems.

1. Verify the local application

Confirm that the process is running and listening on the expected address, port, and transport. Complete the application-aware local test. If it fails, repair the application before changing the tunnel.

2. Test from the Localtonet client device

If the application is on another host, run the same test from the exact client device. A successful test from an administrator workstation does not prove that the Localtonet host has the same route, DNS result, or firewall permission.

3. Check the client configuration and service

On packaged Linux installations, confirm that the AuthToken file exists in the expected location and remains protected with mode 600. Run the configuration check again, inspect localtonet.service, and review its journal. Never paste the AuthToken into diagnostic output.

sudo chmod 600 /etc/localtonet/auth-token
sudo localtonet --headless --authtoken-file /etc/localtonet/auth-token --check-config
sudo systemctl status localtonet.service
sudo journalctl -u localtonet.service

4. Confirm device connectivity and tunnel state

Verify that the intended device is authenticated and connected, that the correct tunnel is associated with it, and that the tunnel has been started. Creation alone does not make the endpoint available.

5. Recheck protocol classification

A TCP listener is not automatically an HTTP application, and an application using both TCP and UDP is not fully validated through one path. If TLS is involved, check hostname and trust expectations instead of treating every handshake failure as generic reachability loss.

6. Test externally with the real client

Use a supported client outside the local network. Check for stale DNS, a copied space, incorrect port, cached configuration, or a client still using the legacy endpoint. For UDP, rely on expected application behavior or server-side evidence rather than a TCP-style port test.

7. Compare the old and new routes

During parallel validation, run the same transaction against both endpoints with equivalent credentials and settings. If only the new path fails, compare hostnames, certificates, redirects, allowlists, and protocol assumptions. If both fail, investigate the application or a shared local dependency.

8. Roll back when the agreed limit is reached

If a critical acceptance criterion fails and the troubleshooting window expires, execute the documented rollback. Preserve sanitized evidence, return consumers to the known working route, and schedule another controlled test. Do not open broad firewall access or disable authentication to force the migration through.

Be explicit when compatibility is unproven

Some applications use dynamic secondary ports, embedded addresses, unusual TLS assumptions, or undocumented transport behavior. When compatibility is not established, test the exact application in a controlled environment and retain rollback. A successful basic connection is not enough to infer full support.

Frequently asked questions

Can Localtonet replace router port forwarding behind CGNAT?

Yes. Our client establishes an outbound connection to a relay, so the local service does not require inbound router forwarding or its own public IP address. The selected device must remain connected, the tunnel must be running, and the target must remain reachable from that device.

Should we remove the old firewall rule as soon as the tunnel starts?

No. Validate the endpoint externally, complete protocol-specific tests, move known consumers, verify monitoring, and finish the rollback window. Then remove the old rule and test both routes again.

Does an outbound tunnel replace application authentication?

No. A public tunnel creates reachability to the configured service. The application still needs appropriate authentication, authorization, account management, and least-privileged identities.

How do we choose between HTTP and TCP tunnels?

Use HTTP for a web application or HTTP API that should be served at a public HTTPS address. Use TCP for a raw TCP service. Confirm the protocol from application behavior rather than choosing solely from the port number.

When should we select a combined UDP/TCP tunnel?

Select it when one application genuinely requires both transports. Validate TCP and UDP independently and then test documented fallback behavior. Do not combine unrelated applications because they share a port number.

What does the Linux configuration check prove?

It checks the packaged client configuration and AuthToken-file setup before service startup. It does not prove that a local application is healthy or that a public tunnel has been created and started. Those require separate local and external tests.

Is creating a tunnel enough to make it available?

No. The client must be running and connected on the selected device, the tunnel must be started, and the application must be healthy and reachable at the configured target.

Can tunnel connection webhooks replace service monitoring?

No. Platform-wide Token/Tunnel webhooks report Connected and Disconnected state changes for selected Token Groups. Pair them with local health checks and an external application-level probe.

When is VPN Manager more appropriate than a public tunnel?

Use VPN Manager when approved devices need private mesh connectivity or selected LANs need to be bridged with granular firewall rules. Use protocol-specific tunnels when authorized public clients need a particular service. Standard tunnels are not VPN connections.

Start a controlled port-forwarding migration

Inventory one existing service, install the Localtonet client on an approved device, complete the local preflight, select the correct protocol family, and validate the new endpoint in parallel before retiring the inbound rule.

Get Started Free →

Corrections & updates

Substantive changes approved by the Localtonet editorial team are listed transparently below.

Remove the outer article wrapper; move the lead figure so the hero is first and the clickable guide card follows it immediately; add a dedicated prerequisites section; update the installation discussion using the current documented platform options and verified Linux DEB/RPM requirements and commands; include AuthToken file protection, configuration checking, service startup, log inspection, and upgrade guidance where applicable; add an explicit local preflight checklist before public exposure; distinguish generic cross-platform steps

Localtonet is a secure multi-protocol tunneling and proxy platform designed to expose localhost, devices, private services, and AI agents to the public internet supporting HTTP/HTTPS tunnels, TCP/UDP forwarding, mobile proxy infrastructure, file server publishing, latency-optimized game connectivity, and developer-ready AI agent endpoint exposure from a single unified control plane.

support