diff --git a/command/agent/command.go b/command/agent/command.go
index 1ee73527c57a..49f3fbd11e6b 100644
--- a/command/agent/command.go
+++ b/command/agent/command.go
@@ -264,6 +264,12 @@ func (c *Command) readConfig() *Config {
}
}
+ // If the client address is empty, default to using the value specified by the
+ // bind address.
+ if config.ClientAddr == "" {
+ config.ClientAddr = config.BindAddr
+ }
+
// Ensure all endpoints are unique
if err := config.verifyUniqueListeners(); err != nil {
c.Ui.Error(fmt.Sprintf("All listening endpoints must be unique: %s", err))
diff --git a/command/agent/config.go b/command/agent/config.go
index bd507628cad0..a75cac18acc7 100644
--- a/command/agent/config.go
+++ b/command/agent/config.go
@@ -742,7 +742,6 @@ func DefaultConfig() *Config {
Datacenter: consul.DefaultDC,
Domain: "consul.",
LogLevel: "INFO",
- ClientAddr: "127.0.0.1",
BindAddr: "0.0.0.0",
Ports: PortConfig{
DNS: 8600,
diff --git a/website/source/docs/agent/options.html.markdown b/website/source/docs/agent/options.html.markdown
index 591eaaf27c01..cf4cdc924f5f 100644
--- a/website/source/docs/agent/options.html.markdown
+++ b/website/source/docs/agent/options.html.markdown
@@ -115,8 +115,9 @@ will exit with an error at startup.
[`-bind` command-line flag](#_bind), and if this is not specified, the `-bind` option is used. This is available in Consul 0.7.1 and later.
* `-client` - The address to which
- Consul will bind client interfaces, including the HTTP and DNS servers. By default,
- this is "127.0.0.1", allowing only loopback connections.
+ Consul will bind client interfaces, including the HTTP and DNS servers. When
+ not specified, the default value is the same as the [`_bind` command-line
+ flag](#_bind) address (prior to 0.8 the default value was `127.0.0.1`).
* `-config-file` - A configuration file
to load. For more information on
@@ -586,8 +587,13 @@ Consul will not enable TLS for the HTTP API unless the `https` port has been ass
reduce write pressure. If a check ever changes state, the new state and associated
output is synchronized immediately. To disable this behavior, set the value to "0s".
-* `client_addr` Equivalent to the
- [`-client` command-line flag](#_client).
+* `client_addr` Equivalent
+ to the [`-client` command-line flag](#_client). When not specified, the
+ default value is the same as the [`bind_addr`](#bind_addr) address (prior to
+ `0.8` the default value was `127.0.0.1`). It is not normally necessary to
+ specify this value, however, may be necessary in more complex setups where
+ agents are NATed or when an agent is running in client and server mode (common
+ in development).
* `datacenter` Equivalent to the
[`-datacenter` command-line flag](#_datacenter).