1. Output of caddy version
:
v2.6.2 h1:wKoFIxpmOJLGl3QXoo6PNbYvGW4xLEgo32GPBEjWL8o=
2. How I run Caddy:
$ caddy adapt
2022/12/11 04:34:26.084 INFO using adjacent Caddyfile
{"apps":{"http":{"servers":{"srv0":{"listen":[":443"],"routes":[{"match":[{"host":["localhost"]}],"handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Hello, world!","handler":"static_response"}]}]}],"terminal":true}]}}}}}
$sudo caddy run
2022/12/11 04:34:56.335 INFO using adjacent Caddyfile
2022/12/11 04:34:56.336 INFO admin admin endpoint started {"address": "localhost:2019", "enforce_origin": false, "origins": ["//localhost:2019", "//[::1]:2019", "//127.0.0.1:2019"]}
2022/12/11 04:34:56.336 INFO http server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS {"server_name": "srv0", "https_port": 443}
2022/12/11 04:34:56.336 INFO http enabling automatic HTTP->HTTPS redirects {"server_name": "srv0"}
2022/12/11 04:34:56.336 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0xc00018ee00"}
2022/12/11 04:34:56.336 INFO tls cleaning storage unit {"description": "FileStorage:/home/xl/.local/share/caddy"}
2022/12/11 04:34:56.337 INFO tls finished cleaning storage units
2022/12/11 04:34:56.344 INFO pki.ca.local root certificate is already trusted by system {"path": "storage:pki/authorities/local/root.crt"}
2022/12/11 04:34:56.344 INFO http enabling HTTP/3 listener {"addr": ":443"}
2022/12/11 04:34:56.344 INFO failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details.
2022/12/11 04:34:56.344 INFO http.log server running {"name": "srv0", "protocols": ["h1", "h2", "h3"]}
2022/12/11 04:34:56.344 INFO http.log server running {"name": "remaining_auto_https_redirects", "protocols": ["h1", "h2", "h3"]}
2022/12/11 04:34:56.344 INFO http enabling automatic TLS certificate management {"domains": ["localhost"]}
2022/12/11 04:34:56.345 WARN tls stapling OCSP {"error": "no OCSP stapling for [localhost]: no OCSP server specified in certificate", "identifiers": ["localhost"]}
2022/12/11 04:34:56.345 INFO autosaved config (load with --resume flag) {"file": "/home/xl/.config/caddy/autosave.json"}
2022/12/11 04:34:56.345 INFO serving initial configuration
$ sudo netstat -tunlp | grep caddy
tcp 0 0 127.0.0.1:2019 0.0.0.0:* LISTEN 1531/caddy
tcp6 0 0 :::443 :::* LISTEN 1531/caddy
tcp6 0 0 :::80 :::* LISTEN 1531/caddy
udp6 0 0 :::443 :::* 1531/caddy
a. System environment:
Ubuntu 18.04
b. Command:
caddy adapt
caddy run
d. My complete Caddy config:
localhost:443
respond "Hello, world!"
3. The problem I’m having:
Is it possible to test whether http3 is working normally on an internal server without a public address or domain name? I enabled caddy 2.6 on port 443 of an internal server which does not have a public address or a domain name, but I don’t know how to test if http3 is enabled successfully and working normally.
Another question: when I use “sudo netstat -tunlp | grep caddy” to check port usage (as is shown in part 2), why is caddy only using ipv6-based TCP and UDP on port 443? Why are ipv4 TCP and ipv4 UDP on port 443 not shown?
4. What I already tried and Error messages and/or full log output:
I tried with curl. It seems to work well on https, but fails to respond to curl-http3 tool.
$ curl https://localhost:443
Hello, world!
$ docker run --rm ymuski/curl-http3 curl --http3 https://localhost:443
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (7) quiche: recv() unexpectedly returned -1 (errno: 111, socket 5)