fshy

fshy / Egress and tunnels

Lantunnel

lantunnel.app · Egress and tunnels · 1 record · JSON

Lantunnel Egress and tunnels

fails: egressemailno cardD

lantunnel.app/ · p2p mesh with an optional hosted control plane · egress/lantunnel · JSON · compare

Free tierLantunnel Client on each device. Encrypted P2P paths, Relay fallback, and no router port forwarding.
unit none; metered on none
PriceUSD 0
Per-object capnot applicable
Retentionnot applicable
EgressNo allowance is published; Relay capacity is described as a shared resource rather than a quota.; ingress: none
free_allowance: none published
Identityemail clients are free; the hosted control plane at lantunnel.app is closed source and optional.
Bindingnone No public URL and no metered quota: the mesh gives reachability between enrolled devices only, and 'Direct connectivity is not guaranteed'.
Interfacecli GUI clients plus a CLI.
Toolingdesktop and mobile clients.
Composes withPrivate access between boxes the client already has.
ReliabilityRelay capacity is shared; direct paths depend on NAT.
NotesThe hosted control plane does not carry the client's public ingress; that would need a Gateway the client runs.
Evidence rungdocumented A hosted gateway with a public port would change it; the page says a self-hosted Gateway is what needs a public IP.
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.price_per_tb_month price-per-tb USD0.0 TB / month
Evidence (1)
datesourcewhat it proved
2026-10-23lantunnel.app/'Normal Client access does not require router port forwarding on your LAN or a public URL for each service. If you host a Gateway yourself, that Gateway needs a reachable public IP'
More fields (7)
{
 "wg_path": "none",
 "wg_detail": "",
 "ingress": "none",
 "volume_tib_month": null,
 "volume_stated": "No allowance is published; Relay capacity is described as a shared resource rather than a quota.",
 "bytes_transit": "overlay-only",
 "transit_note": "Direct QUIC when NAT allows, else encrypted relay."
}
Unknown or withheld values (2)
  • $.per_object_cap.stated not-applicable
  • $.retention.stated not-applicable