Port 8500 is the HashiCorp Consul HTTP API and web UI port. Consul provides service discovery, health checking, key-value storage, and service mesh. Port 8500 is unauthenticated by default – exposing it publicly allows anyone to read service registrations, KV data, and health check results. Consul also uses ports 8300 (RPC), 8301/8302 (Serf LAN/WAN), and 8600 (DNS).
Port Number
8500
Protocol
TCP
Service
Consul HTTP API
Range
IANA Registered (1024–49151)
Check Consul cluster leader (returns IP:port of leader)
curl -s http://localhost:8500/v1/status/leaderList all Consul cluster members and their status
consul members -http-addr=http://host:8500Find failing health checks
curl -s http://localhost:8500/v1/agent/checks | jq 'to_entries[] | select(.value.Status != "passing")'curl http://localhost:8500/v1/health/service/web
curl http://localhost:8500/v1/kv/config/db-url
consul members -http-addr=http://localhost:8500Consul was released by HashiCorp in 2014. It combines service discovery (DNS + HTTP), health checking, KV store, and (since 1.2, 2018) a service mesh (Connect). Port 8500 was chosen for the HTTP API. Consul competes with etcd (pure KV), ZooKeeper (coordination), and Eureka (service discovery).
Consul vs etcd vs ZooKeeper?
Consul: service discovery + health checks + KV + service mesh in one tool. etcd: pure distributed KV (Kubernetes backing store). ZooKeeper: coordination primitives (leader election, distributed locks). Consul is the most feature-complete for microservice architectures; etcd is the Kubernetes standard; ZooKeeper is legacy (being replaced by KRaft in Kafka).
How do I enable Consul ACLs?
In consul server config: acl { enabled = true, default_policy = 'deny' }. Restart servers. Run: consul acl bootstrap (saves the initial management token). Then create per-service tokens with minimal permissions. All API calls must include X-Consul-Token header or -token flag.