https://github.com/muety/caddy-remote-host
Caddy v2 plugin to match a request's client IP against a host name (similar to remote_ip)
https://github.com/muety/caddy-remote-host
caddy caddy-plugin caddy2 ddns dns
Last synced: 11 months ago
JSON representation
Caddy v2 plugin to match a request's client IP against a host name (similar to remote_ip)
- Host: GitHub
- URL: https://github.com/muety/caddy-remote-host
- Owner: muety
- License: apache-2.0
- Created: 2021-10-02T13:35:22.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-10-13T09:06:43.000Z (over 4 years ago)
- Last Synced: 2025-04-13T20:52:40.938Z (about 1 year ago)
- Topics: caddy, caddy-plugin, caddy2, ddns, dns
- Language: Go
- Homepage:
- Size: 67.4 KB
- Stars: 12
- Watchers: 3
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/muety/caddy-remote-host/actions)

# caddy-remote-host
Caddy plugin to match a request's client IP against A and AAAA DNS records of a host name (analogously
to [`remote_ip`](https://caddyserver.com/docs/caddyfile/matchers#remote-ip)). Can be useful to restrict route access to
a client, that uses dynamic DNS. Uses the host machine's local DNS resolver (uses [LookupIP](https://pkg.go.dev/net?utm_source=godoc#LookupIP) internally).
## Usage
```
remote_host [forwarded] [nocache]
```
Accepts valid host names. If `forwarded` is given as an argument, then the first IP in the `X-Forwarded-For` request
header, if present, will be preferred as the reference IP, rather than the immediate peer's IP, which is the default.
If `nocache` is given as an argument, this module will not cache DNS responses and instead resolve the given hosts' for
every request. By default, responses are cached for 60 seconds, regardless of the DNS record's time-to-live (TTL).
Multiple `remote_host` matchers will be OR'ed together.
### Example
Match requests from a client, whose IPv4 or IPv6 address is the same as what `ddns.example.org` resolves to.
```
remote_host ddns.example.org
```
## License
Apache 2.0