Skip to content

127.0.0.1 same-port bindings cause immediate connection reset #2503

Description

@garrill

Describe the bug

After upgrading to Orbstack 2.2.0 all my DDEV sites went down with the error: ERR_CONNECTION_RESET

Any container with a port binding where the host port equals the container port (e.g. -p 127.0.0.1:443:443) causes an immediate ERR_CONNECTION_RESET / Connection reset by peer. The container is healthy and the service responds correctly when accessed directly by container IP. Downgrading to 2.1.x resolves the issue.

To Reproduce

Fails — same port on both sides

docker run --rm -d -p 127.0.0.1:9995:9995 busybox \
sh -c "while true; do echo -e 'HTTP/1.1 200 OK\r\n\r\nOK' | nc -l -p 9995; done"
curl http://127.0.0.1:9995
# → curl: (56) Recv failure: Connection reset by peer

Works — different host and container ports

docker run --rm -d -p 127.0.0.1:9994:80 nginx:alpine
curl http://127.0.0.1:9994
# → 200 OK

Expected behavior

-p 127.0.0.1:PORT:PORT should forward connections to the container, consistent with all previous OrbStack versions and standard Docker behaviour.

Actual behaviour

The TCP connection is accepted by OrbStack's listener but immediately reset before any data is returned. The service inside the container is healthy, accessing it directly via the container's IP on the same port works correctly. The reset only occurs when the port binding uses 127.0.0.1 and the host port equals the container port.

Workaround

I was able to fix this by setting router_bind_all_interfaces: true in ~/.ddev/global_config.yaml

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    t/bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions