Group of 3 You'll notice
The self-hosted gateway now warns about unrestricted public access and logs how it determines client IPs
What
- The gateway checks incoming client IPs against an expanded private-address list (now including
169.254.0.0/16andfe80::/10link-local ranges) and, ifaccess_control.allow_cidrsis unset and a request arrives from a non-private address, emits a one-time warning that the gateway may be reachable from the public internet, since it can push settings that execute commands on developer machines. - Gateway config validation separately emits a warning when
access_control.allow_cidrsis empty and the listener isn't otherwise locally-bound, warning that the gateway will accept any client address. - Server startup now logs whether client IPs are read from the raw TCP peer address or from the
X-Forwarded-Forheader (based on the configured trusted proxies), including how many trusted-proxy entries are configured.
Why These changes help operators of a self-hosted gateway notice if it's exposed to the public internet or misconfigured around trusted proxies, which matters because the gateway can push settings that run commands on developer machines.
Names in the bundleX-Forwarded-For
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Confirmed since
Anthropic's documentation has since written up X-Forwarded-For, on Claude apps gateway deployment and operations.
* **The gateway can't see past your load balancer.** Without [`listen.trusted_proxies`](/docs/en/claude-apps-gateway-config#listen), every developer appears to come from the load balancer's address and shares one limit. Set it before anyth…claude-apps-gateway-deploy see the edit
One source agreesOne thing we can check says the same as this entry.
Anthropic's documentation agrees
Anthropic's documentation has since written up X-Forwarded-For, on Claude apps gateway deployment and operations.