8 days ago
Our Flask app needs to make outbound HTTPS requests through residential proxy providers using standard HTTP CONNECT tunneling (Python requests/urllib3 + websocket-client).
We tested with TWO unrelated proxy providers (DataImpulse and Webshare) -- both work perfectly when tested from outside Railway (CONNECT tunnel established, HTTP 200 OK). But every single attempt from our Railway-deployed service fails immediately with:
ProxyError('Unable to connect to proxy', RemoteDisconnected('Remote end closed connection without response'))
This happens establishing the CONNECT tunnel itself, before any data is exchanged -- with different proxy IPs, different ports (823, 10000, 7684), different providers. Raw TCP connect to the proxy's listening port always succeeds; only the CONNECT request specifically gets dropped.
Our outbound IP was 208.77.244.26 on one test and 152.55.184.70 on another (seems to vary between requests).
Does Railway's network have any firewall, NAT, or proxy layer that interferes with outbound HTTP CONNECT tunneling to third-party proxy services? Any way to disable that or get a static outbound IP to test against?
1 Replies
8 days ago
This thread has been opened as a bounty so the community can help solve it.
Status changed to Open Railway • 8 days ago
8 days ago
Here you go:
Moving to a VPS is the recommended long-term solution for apps that need raw TCP/CONNECT tunneling, since a VPS gives you full network control unlike Railway's PaaS environment.
The best options are Hetzner at $4/month which offers the best value with clean IPs, DigitalOcean at $6/month which is reliable and simple to use, and Vultr at $5/month which has good IP reputation. You can deploy the exact same code on any of these with zero networking restrictions.