Warp connection failed unless using proxy

I'm using warp for a HTTP server. The server refuses to connect unless I use a proxy. I can access the server on the local machine just fine but on a separate machine (my phone), I get ERR_CONNECTION_FAILED. If I run the server through a proxy (armor), it works.

The code to start up the server is pretty standard.

warp::serve(routes.with(warp::log("")))
    .run(([127, 0, 0, 1], 3030))
    .await;

I configured the proxy using this:

address: ":8080"
plugins:
- name: logger
- name: proxy
  targets:
  - url: "http://localhost:3030"

Then I did armor -c config.yaml.

I tried changing the port. I tried passing an IPv6 address to run. In either case, localhost works but a separate machine requires a proxy. I don't know what armor is doing that warp isn't. My networking knowledge is pretty limited. I should also mention that nothing appears in the warp log when the connection fails. So I don't think it has anything to do with the filters because it doesn't seem to be reaching that point.

1 Like

Your server is bound against the loopback address 127.0.0.1 that is not accessible from the outside. You either could use 0.0.0.0 to bind against all networking devices or you could bind against the IP of a specific networking device.

1 Like

Hmm, doing .run(([0, 0, 0, 0], 3030)) seems to have fixed it. Thanks for your help! I really need to learn more about networking...

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.