JT808 GPS Tracker Not Connecting to Custom TCP Gateway on Railway
ng-ride
PROOP

13 days ago

I am running a Node.js API on Railway with a JT808 TCP gateway (Chinese GPS tracker protocol) listening on an internal port, exposed via a Railway TCP proxy. The setup is: external reseau.proxy.rlwy.net:11305.

When the physical AI camera device (JT808 protocol) is configured with reseau.proxy.rlwy.net:11305 as its server address, no connection attempt appears in Railway logs at all — not even a TCP handshake. The gateway logs [jt808] device connected on any TCP connection, so silence means the device is not reaching the server at all. My simulation test proves the server side is fully working — the gap is between the physical device and the Railway endpoint.

The TCP port is reachable and open (confirmed with Test-Net Connection and a Node.js socket test)

When i run a simulated JT808 client running locally, it connects, registers, authenticates, and streams GPS location data successfully — the gateway responds correctly at every step

But the thing now is that the camera device connects to the manufacturer's platform and other third-party platforms without issue, confirming the SIM data is working.

my question is

  1. Does Railway guarantee a stable IP for TCP proxy endpoints, or does it change on redeploy/restart?
  2. Is there a way to get a static IP or a more firmware-friendly hostname for TCP proxy services?
  3. Has anyone successfully connected embedded hardware (GPS trackers, IoT devices) to a Railway TCP proxy where the device firmware only accepts IP addresses?
$20 Bounty

2 Replies

Railway
BOT

13 days ago

Your TCP proxy hostname (reseau.proxy.rlwy.net:11305) is stable across redeploys and restarts, it does not change. However, the underlying IP is anycast and can change at any time, so if your device firmware resolves the hostname once and caches the IP, the connection may break later. We do not currently offer static inbound IPs (the Static Outbound IPs feature is outbound-only). If your device firmware only accepts a raw IP address, Railway does not have a way to guarantee a fixed one for inbound TCP traffic. One option is to CNAME your own domain to the proxy hostname and use that custom domain with the same Railway-assigned port, which may be more compatible with some firmware, though the IP it resolves to will still be dynamic.


Status changed to Awaiting User Response Railway 13 days ago


Railway
BOT

13 days ago

This thread has been opened as a bounty so the community can help solve it.

Status changed to Open Railway 13 days ago


isanderthul
FREE

5 days ago

I have found that JT808 devices have a bad habit of not reconnecting the socket if there is an interruption in the connection (and no GPS signal). You might need to restart your JT808 device to get a new connection attempt.


Welcome!

Sign in to your Railway account to join the conversation.

Loading...