Repository: linkerd/linkerd2
Pull request #12938 (2024-08-05 17:22:24)

Only bind to IPv6 addresses when disableIPv6=false
## Problem

When the IPv6 stack in Linux is disabled, the proxy will crash at startup.

## Repro

In a Linux machine, disable IPv6 networking through the `net.ipv6.conf.*` sysctl kernel tunables, and restart the system:

- In /etc/sysctl.conf add:
```
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
```

- In /etc/default/grub set:
```
GRUB_CMDLINE_LINUX="ipv6.disable=1"
```

- Don't forget to update grub before rebooting:
```
sudo update-grub
```

In a default k3d cluster, install Linkerd. You should see the following error in any proxy log:

```
thread 'main' panicked at /__w/linkerd2-proxy/linkerd2-proxy/linkerd/app/src/lib.rs:245:14:
Failed to bind inbound listener: Os { code: 97, kind: Uncategorized, message: "Address family not supported by protocol" }
```

## Cause

Even if a k8s cluster didn't support IPv6, we were counting on the nodes having an IPv6 stack, which allowed us to bind to the inbound proxy to [::] (although not to [::1] for the outbound proxy, as seen in GKE). This was the case in the major cloud providers we tested, but it turns out there are folks running nodes with IPv6 disabled and so we have to cater that case as well.

## Fix

The current change undoes some of the changes from 7cbe2f5ca6afc10f3b3b64fb7d83e3d3e7ef4f7a (for the proxy config), 7cbe2f5ca6afc10f3b3b64fb7d83e3d3e7ef4f7a (for the policy controller) and 66034099d9ea6a7b0d3e6c868369fd7ce969d222 (for linkerd-cni), binding back again to 0.0.0.0 unless `disableIPv6` is false.



Patch:
diff --git a/charts/linkerd-control-plane/README.md b/charts/linkerd-control-plane/README.md
index d1669339e..b3884fd07 100644
--- a/charts/linkerd-control-plane/README.md
+++ b/charts/linkerd-control-plane/README.md
@@ -189,7 +189,7 @@ Kubernetes: `>=1.22.0-0`
 | linkerdVersion | string | `"linkerdVersionValue"` | control plane version. See Proxy section for proxy version |
 | networkValidator.connectAddr | string | `""` | Address to which the network-validator will attempt to connect. This should be an IP that the cluster is expected to be able to reach but a port it should not, e.g., a public IP for public clusters and a private IP for air-gapped clusters with a port like 20001. If empty, defaults to 1.1.1.1:20001 and [fd00::1]:20001 for IPv4 and IPv6 respectively. |
 | networkValidator.enableSecurityContext | bool | `true` | Include a securityContext in the network-validator pod spec |
-| networkValidator.listenAddr | string | `"[::]:4140"` | Address to which network-validator listens to requests from itself |
+| networkValidator.listenAddr | string | `""` | Address to which network-validator listens to requests from itself. If empty, defaults to 0.0.0.0:4140 and [::]:4140 for IPv4 and IPv6 respectively. |
 | networkValidator.logFormat | string | plain | Log format (`plain` or `json`) for network-validator |
 | networkValidator.logLevel | string | debug | Log level for the network-validator |
 | networkValidator.timeout | string | `"10s"` | Timeout before network-validator fails to validate the pod's network connectivity |
diff --git a/charts/linkerd-control-plane/templates/destination.yaml b/charts/linkerd-control-plane/templates/destination.yaml
index 847e4570c..b214c3c64 100644
--- a/charts/linkerd-control-plane/templates/destination.yaml
+++ b/charts/linkerd-control-plane/templates/destination.yaml
@@ -315,10 +315,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr={{ if .Values.disableIPv6 }}0.0.0.0{{ else }}[::]{{ end }}:9990
         - --control-plane-namespace={{.Release.Namespace}}
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr={{ if .Values.disableIPv6 }}0.0.0.0{{ else }}[::]{{ end }}:8090
+        - --server-addr={{ if .Values.disableIPv6 }}0.0.0.0{{ else }}[::]{{ end }}:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks={{.Values.clusterNetworks}}
diff --git a/charts/linkerd-control-plane/values.yaml b/charts/linkerd-control-plane/values.yaml
index 941ae0aa7..7889c0405 100644
--- a/charts/linkerd-control-plane/values.yaml
+++ b/charts/linkerd-control-plane/values.yaml
@@ -328,8 +328,9 @@ networkValidator:
   # for public clusters and a private IP for air-gapped clusters with a port like 20001.
   # If empty, defaults to 1.1.1.1:20001 and [fd00::1]:20001 for IPv4 and IPv6 respectively.
   connectAddr: ""
-  # -- Address to which network-validator listens to requests from itself
-  listenAddr: "[::]:4140"
+  # -- Address to which network-validator listens to requests from itself.
+  # If empty, defaults to 0.0.0.0:4140 and [::]:4140 for IPv4 and IPv6 respectively.
+  listenAddr: ""
   # -- Timeout before network-validator fails to validate the pod's network connectivity
   timeout: "10s"
   # -- Include a securityContext in the network-validator pod spec
diff --git a/charts/linkerd2-cni/templates/cni-plugin.yaml b/charts/linkerd2-cni/templates/cni-plugin.yaml
index f89797729..98c52d95e 100644
--- a/charts/linkerd2-cni/templates/cni-plugin.yaml
+++ b/charts/linkerd2-cni/templates/cni-plugin.yaml
@@ -313,7 +313,7 @@ spec:
           - /usr/lib/linkerd/linkerd-cni-repair-controller
         args:
           - --admin-addr
-          - "[::]:9990"
+          - "{{ if .Values.disableIPv6 }}0.0.0.0{{ else }}[::]{{ end }}:9990"
           - --log-format
           - {{ .Values.repairController.logFormat }}
           - --log-level
diff --git a/charts/partials/templates/_network-validator.tpl b/charts/partials/templates/_network-validator.tpl
index fafa7502f..276056395 100644
--- a/charts/partials/templates/_network-validator.tpl
+++ b/charts/partials/templates/_network-validator.tpl
@@ -32,7 +32,13 @@ args:
   - "[fd00::1]:20001"
     {{- end }}
   - --listen-addr
+    {{- if .Values.networkValidator.listenAddr }}
   - {{ .Values.networkValidator.listenAddr | quote }}
+    {{- else if .Values.disableIPv6}}
+  - "0.0.0.0:4140"
+    {{- else }}
+  - "[::]:4140"
+    {{- end }}
   - --timeout
   - {{ .Values.networkValidator.timeout }}
 
diff --git a/charts/partials/templates/_proxy.tpl b/charts/partials/templates/_proxy.tpl
index 5386cc2e9..7880b394c 100644
--- a/charts/partials/templates/_proxy.tpl
+++ b/charts/partials/templates/_proxy.tpl
@@ -81,16 +81,16 @@ env:
   value: "365d"
 {{ end -}}
 - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-  value: "[::]:{{.Values.proxy.ports.control}}"
+  value: "{{ if .Values.disableIPv6 }}0.0.0.0{{ else }}[::]{{ end }}:{{.Values.proxy.ports.control}}"
 - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-  value: "[::]:{{.Values.proxy.ports.admin}}"
+  value: "{{ if .Values.disableIPv6 }}0.0.0.0{{ else }}[::]{{ end }}:{{.Values.proxy.ports.admin}}"
 {{- /* Deprecated, superseded by LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS since proxy's v2.228.0 (deployed since edge-24.4.5) */}}
 - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
   value: "127.0.0.1:{{.Values.proxy.ports.outbound}}"
 - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
   value: "127.0.0.1:{{.Values.proxy.ports.outbound}}{{ if not .Values.disableIPv6}},[::1]:{{.Values.proxy.ports.outbound}}{{ end }}"
 - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-  value: "[::]:{{.Values.proxy.ports.inbound}}"
+  value: "{{ if .Values.disableIPv6 }}0.0.0.0{{ else }}[::]{{ end }}:{{.Values.proxy.ports.inbound}}"
 - name: LINKERD2_PROXY_INBOUND_IPS
   valueFrom:
     fieldRef:
diff --git a/controller/proxy-injector/fake/data/pod-with-debug.patch.json b/controller/proxy-injector/fake/data/pod-with-debug.patch.json
index 08c438228..4c5a7ad6f 100644
--- a/controller/proxy-injector/fake/data/pod-with-debug.patch.json
+++ b/controller/proxy-injector/fake/data/pod-with-debug.patch.json
@@ -236,11 +236,11 @@
         },
         {
           "name": "LINKERD2_PROXY_CONTROL_LISTEN_ADDR",
-          "value": "[::]:4190"
+          "value": "0.0.0.0:4190"
         },
         {
           "name": "LINKERD2_PROXY_ADMIN_LISTEN_ADDR",
-          "value": "[::]:4191"
+          "value": "0.0.0.0:4191"
         },
         {
           "name": "LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR",
@@ -252,7 +252,7 @@
         },
         {
           "name": "LINKERD2_PROXY_INBOUND_LISTEN_ADDR",
-          "value": "[::]:4143"
+          "value": "0.0.0.0:4143"
         },
         {
           "name": "LINKERD2_PROXY_INBOUND_IPS",
diff --git a/controller/proxy-injector/fake/data/pod-with-ns-annotations.patch.json b/controller/proxy-injector/fake/data/pod-with-ns-annotations.patch.json
index 6acf23eb6..fed4780ca 100644
--- a/controller/proxy-injector/fake/data/pod-with-ns-annotations.patch.json
+++ b/controller/proxy-injector/fake/data/pod-with-ns-annotations.patch.json
@@ -222,11 +222,11 @@
         },
         {
           "name": "LINKERD2_PROXY_CONTROL_LISTEN_ADDR",
-          "value": "[::]:4190"
+          "value": "0.0.0.0:4190"
         },
         {
           "name": "LINKERD2_PROXY_ADMIN_LISTEN_ADDR",
-          "value": "[::]:4191"
+          "value": "0.0.0.0:4191"
         },
         {
           "name": "LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR",
@@ -238,7 +238,7 @@
         },
         {
           "name": "LINKERD2_PROXY_INBOUND_LISTEN_ADDR",
-          "value": "[::]:4143"
+          "value": "0.0.0.0:4143"
         },
         {
           "name": "LINKERD2_PROXY_INBOUND_IPS",
diff --git a/controller/proxy-injector/fake/data/pod.patch.json b/controller/proxy-injector/fake/data/pod.patch.json
index d8a07ef88..df06bfdc7 100644
--- a/controller/proxy-injector/fake/data/pod.patch.json
+++ b/controller/proxy-injector/fake/data/pod.patch.json
@@ -212,11 +212,11 @@
         },
         {
           "name": "LINKERD2_PROXY_CONTROL_LISTEN_ADDR",
-          "value": "[::]:4190"
+          "value": "0.0.0.0:4190"
         },
         {
           "name": "LINKERD2_PROXY_ADMIN_LISTEN_ADDR",
-          "value": "[::]:4191"
+          "value": "0.0.0.0:4191"
         },
         {
           "name": "LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR",
@@ -228,7 +228,7 @@
         },
         {
           "name": "LINKERD2_PROXY_INBOUND_LISTEN_ADDR",
-          "value": "[::]:4143"
+          "value": "0.0.0.0:4143"
         },
         {
           "name": "LINKERD2_PROXY_INBOUND_IPS",


Test patch:
diff --git a/cli/cmd/testdata/inject-filepath/expected/injected_nginx.yaml b/cli/cmd/testdata/inject-filepath/expected/injected_nginx.yaml
index 37d1ac9de..85d02c373 100644
--- a/cli/cmd/testdata/inject-filepath/expected/injected_nginx.yaml
+++ b/cli/cmd/testdata/inject-filepath/expected/injected_nginx.yaml
@@ -66,15 +66,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject-filepath/expected/injected_nginx_redis.yaml b/cli/cmd/testdata/inject-filepath/expected/injected_nginx_redis.yaml
index 9ddb7d8bd..959f6c194 100644
--- a/cli/cmd/testdata/inject-filepath/expected/injected_nginx_redis.yaml
+++ b/cli/cmd/testdata/inject-filepath/expected/injected_nginx_redis.yaml
@@ -66,15 +66,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -296,15 +296,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject-filepath/expected/injected_redis.yaml b/cli/cmd/testdata/inject-filepath/expected/injected_redis.yaml
index 091dc3702..d1478b2c6 100644
--- a/cli/cmd/testdata/inject-filepath/expected/injected_redis.yaml
+++ b/cli/cmd/testdata/inject-filepath/expected/injected_redis.yaml
@@ -66,15 +66,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_contour.golden.yml b/cli/cmd/testdata/inject_contour.golden.yml
index 96590eef7..c65e019c4 100644
--- a/cli/cmd/testdata/inject_contour.golden.yml
+++ b/cli/cmd/testdata/inject_contour.golden.yml
@@ -74,15 +74,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_already_injected.golden.yml b/cli/cmd/testdata/inject_emojivoto_already_injected.golden.yml
index 8e06db3f2..48b6f480e 100644
--- a/cli/cmd/testdata/inject_emojivoto_already_injected.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_already_injected.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -309,15 +309,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -550,15 +550,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -791,15 +791,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment.golden.yml
index be2ec69be..2721acda2 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_access_log.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_access_log.golden.yml
index f14c52cd1..a5bb9f261 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_access_log.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_access_log.golden.yml
@@ -69,15 +69,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_automountServiceAccountToken_false.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_automountServiceAccountToken_false.golden.yml
index 8c96d35d3..8bb27f4ef 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_automountServiceAccountToken_false.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_automountServiceAccountToken_false.golden.yml
@@ -69,15 +69,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_capabilities.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_capabilities.golden.yml
index dd36584eb..7e0768128 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_capabilities.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_capabilities.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_config_overrides.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_config_overrides.golden.yml
index a1736c8f0..68f713ae9 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_config_overrides.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_config_overrides.golden.yml
@@ -78,15 +78,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:9998'
+          value: 0.0.0.0:9998
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_controller_name.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_controller_name.golden.yml
index edfb3f91e..733e8aed3 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_controller_name.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_controller_name.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -309,15 +309,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_debug.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_debug.golden.yml
index 7fa739d1f..0cf5dd93b 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_debug.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_debug.golden.yml
@@ -69,15 +69,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_empty_resources.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_empty_resources.golden.yml
index 1da2381ff..59a148576 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_empty_resources.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_empty_resources.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_hostNetwork_false.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_hostNetwork_false.golden.yml
index d540d19a1..d7387cedf 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_hostNetwork_false.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_hostNetwork_false.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_native_sidecar.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_native_sidecar.golden.yml
index 34f9ddd8d..e15f2ebef 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_native_sidecar.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_native_sidecar.golden.yml
@@ -116,15 +116,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_no_init_container.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_no_init_container.golden.yml
index c03f18229..9d9e93e32 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_no_init_container.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_no_init_container.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -201,7 +201,7 @@ spec:
         - --connect-addr
         - 1.1.1.1:20001
         - --listen-addr
-        - '[::]:4140'
+        - 0.0.0.0:4140
         - --timeout
         - 10s
         command:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_opaque_ports.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_opaque_ports.golden.yml
index ce8cfa026..fe08db54b 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_opaque_ports.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_opaque_ports.golden.yml
@@ -69,15 +69,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_overridden.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_overridden.golden.yml
index 828919ed6..11fe92ad7 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_overridden.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_overridden.golden.yml
@@ -69,15 +69,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:1234'
+          value: 0.0.0.0:1234
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_params.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_params.golden.yml
index 6b53f1a75..075a938c2 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_params.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_params.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_proxyignores.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_proxyignores.golden.yml
index 3799f2bd3..e0163dc79 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_proxyignores.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_proxyignores.golden.yml
@@ -70,15 +70,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_deployment_udp.golden.yml b/cli/cmd/testdata/inject_emojivoto_deployment_udp.golden.yml
index 57f886626..50dc5da37 100644
--- a/cli/cmd/testdata/inject_emojivoto_deployment_udp.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_deployment_udp.golden.yml
@@ -68,15 +68,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_list.golden.yml b/cli/cmd/testdata/inject_emojivoto_list.golden.yml
index 061327416..f92ac5de1 100644
--- a/cli/cmd/testdata/inject_emojivoto_list.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_list.golden.yml
@@ -70,15 +70,15 @@ items:
           - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
             value: 90s
           - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-            value: '[::]:4190'
+            value: 0.0.0.0:4190
           - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-            value: '[::]:4191'
+            value: 0.0.0.0:4191
           - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
             value: 127.0.0.1:4140
           - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
             value: 127.0.0.1:4140
           - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-            value: '[::]:4143'
+            value: 0.0.0.0:4143
           - name: LINKERD2_PROXY_INBOUND_IPS
             valueFrom:
               fieldRef:
@@ -310,15 +310,15 @@ items:
           - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
             value: 90s
           - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-            value: '[::]:4190'
+            value: 0.0.0.0:4190
           - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-            value: '[::]:4191'
+            value: 0.0.0.0:4191
           - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
             value: 127.0.0.1:4140
           - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
             value: 127.0.0.1:4140
           - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-            value: '[::]:4143'
+            value: 0.0.0.0:4143
           - name: LINKERD2_PROXY_INBOUND_IPS
             valueFrom:
               fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_list_empty_resources.golden.yml b/cli/cmd/testdata/inject_emojivoto_list_empty_resources.golden.yml
index 3afdba31e..a9c9b975f 100644
--- a/cli/cmd/testdata/inject_emojivoto_list_empty_resources.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_list_empty_resources.golden.yml
@@ -70,15 +70,15 @@ items:
           - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
             value: 90s
           - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-            value: '[::]:4190'
+            value: 0.0.0.0:4190
           - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-            value: '[::]:4191'
+            value: 0.0.0.0:4191
           - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
             value: 127.0.0.1:4140
           - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
             value: 127.0.0.1:4140
           - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-            value: '[::]:4143'
+            value: 0.0.0.0:4143
           - name: LINKERD2_PROXY_INBOUND_IPS
             valueFrom:
               fieldRef:
@@ -310,15 +310,15 @@ items:
           - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
             value: 90s
           - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-            value: '[::]:4190'
+            value: 0.0.0.0:4190
           - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-            value: '[::]:4191'
+            value: 0.0.0.0:4191
           - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
             value: 127.0.0.1:4140
           - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
             value: 127.0.0.1:4140
           - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-            value: '[::]:4143'
+            value: 0.0.0.0:4143
           - name: LINKERD2_PROXY_INBOUND_IPS
             valueFrom:
               fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_pod.golden.yml b/cli/cmd/testdata/inject_emojivoto_pod.golden.yml
index 4951ee632..86af34064 100644
--- a/cli/cmd/testdata/inject_emojivoto_pod.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_pod.golden.yml
@@ -60,15 +60,15 @@ spec:
     - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
       value: 90s
     - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-      value: '[::]:4190'
+      value: 0.0.0.0:4190
     - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-      value: '[::]:4191'
+      value: 0.0.0.0:4191
     - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
       value: 127.0.0.1:4140
     - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
       value: 127.0.0.1:4140
     - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-      value: '[::]:4143'
+      value: 0.0.0.0:4143
     - name: LINKERD2_PROXY_INBOUND_IPS
       valueFrom:
         fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_pod_ingress.golden.yml b/cli/cmd/testdata/inject_emojivoto_pod_ingress.golden.yml
index bffd991a4..76f620f49 100644
--- a/cli/cmd/testdata/inject_emojivoto_pod_ingress.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_pod_ingress.golden.yml
@@ -61,15 +61,15 @@ spec:
     - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
       value: 90s
     - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-      value: '[::]:4190'
+      value: 0.0.0.0:4190
     - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-      value: '[::]:4191'
+      value: 0.0.0.0:4191
     - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
       value: 127.0.0.1:4140
     - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
       value: 127.0.0.1:4140
     - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-      value: '[::]:4143'
+      value: 0.0.0.0:4143
     - name: LINKERD2_PROXY_INBOUND_IPS
       valueFrom:
         fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_pod_proxyignores.golden.yml b/cli/cmd/testdata/inject_emojivoto_pod_proxyignores.golden.yml
index 3db4cdb5f..df7af039b 100644
--- a/cli/cmd/testdata/inject_emojivoto_pod_proxyignores.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_pod_proxyignores.golden.yml
@@ -62,15 +62,15 @@ spec:
     - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
       value: 90s
     - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-      value: '[::]:4190'
+      value: 0.0.0.0:4190
     - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-      value: '[::]:4191'
+      value: 0.0.0.0:4191
     - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
       value: 127.0.0.1:4140
     - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
       value: 127.0.0.1:4140
     - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-      value: '[::]:4143'
+      value: 0.0.0.0:4143
     - name: LINKERD2_PROXY_INBOUND_IPS
       valueFrom:
         fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_pod_with_requests.golden.yml b/cli/cmd/testdata/inject_emojivoto_pod_with_requests.golden.yml
index daac559cf..e0c9747fb 100644
--- a/cli/cmd/testdata/inject_emojivoto_pod_with_requests.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_pod_with_requests.golden.yml
@@ -64,15 +64,15 @@ spec:
     - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
       value: 90s
     - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-      value: '[::]:4190'
+      value: 0.0.0.0:4190
     - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-      value: '[::]:4191'
+      value: 0.0.0.0:4191
     - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
       value: 127.0.0.1:4140
     - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
       value: 127.0.0.1:4140
     - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-      value: '[::]:4143'
+      value: 0.0.0.0:4143
     - name: LINKERD2_PROXY_INBOUND_IPS
       valueFrom:
         fieldRef:
diff --git a/cli/cmd/testdata/inject_emojivoto_statefulset.golden.yml b/cli/cmd/testdata/inject_emojivoto_statefulset.golden.yml
index f6b98c522..13d7ec9f7 100644
--- a/cli/cmd/testdata/inject_emojivoto_statefulset.golden.yml
+++ b/cli/cmd/testdata/inject_emojivoto_statefulset.golden.yml
@@ -69,15 +69,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_gettest_deployment.good.golden.yml b/cli/cmd/testdata/inject_gettest_deployment.good.golden.yml
index 0ef9d2da9..fce7dea46 100644
--- a/cli/cmd/testdata/inject_gettest_deployment.good.golden.yml
+++ b/cli/cmd/testdata/inject_gettest_deployment.good.golden.yml
@@ -64,15 +64,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -307,15 +307,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/inject_tap_deployment_debug.golden.yml b/cli/cmd/testdata/inject_tap_deployment_debug.golden.yml
index d4b01f130..8aa9ffaa4 100644
--- a/cli/cmd/testdata/inject_tap_deployment_debug.golden.yml
+++ b/cli/cmd/testdata/inject_tap_deployment_debug.golden.yml
@@ -85,15 +85,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: 90s
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: '[::]:4190'
+          value: 0.0.0.0:4190
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: '[::]:4191'
+          value: 0.0.0.0:4191
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: 127.0.0.1:4140
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: '[::]:4143'
+          value: 0.0.0.0:4143
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_controlplane_tracing_output.golden b/cli/cmd/testdata/install_controlplane_tracing_output.golden
index 4be68499f..ab1bdd086 100644
--- a/cli/cmd/testdata/install_controlplane_tracing_output.golden
+++ b/cli/cmd/testdata/install_controlplane_tracing_output.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1017,15 +1017,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1363,15 +1363,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1549,10 +1549,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1811,15 +1811,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_custom_domain.golden b/cli/cmd/testdata/install_custom_domain.golden
index 55cd517df..a6155034c 100644
--- a/cli/cmd/testdata/install_custom_domain.golden
+++ b/cli/cmd/testdata/install_custom_domain.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1016,15 +1016,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1362,15 +1362,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1547,10 +1547,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1809,15 +1809,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_custom_registry.golden b/cli/cmd/testdata/install_custom_registry.golden
index 78030f0ec..0283388a3 100644
--- a/cli/cmd/testdata/install_custom_registry.golden
+++ b/cli/cmd/testdata/install_custom_registry.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1016,15 +1016,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1362,15 +1362,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1547,10 +1547,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1809,15 +1809,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_default.golden b/cli/cmd/testdata/install_default.golden
index 55cd517df..a6155034c 100644
--- a/cli/cmd/testdata/install_default.golden
+++ b/cli/cmd/testdata/install_default.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1016,15 +1016,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1362,15 +1362,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1547,10 +1547,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1809,15 +1809,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_default_override_dst_get_nets.golden b/cli/cmd/testdata/install_default_override_dst_get_nets.golden
index 6e4fb75d6..dec936b3c 100644
--- a/cli/cmd/testdata/install_default_override_dst_get_nets.golden
+++ b/cli/cmd/testdata/install_default_override_dst_get_nets.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1016,15 +1016,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1362,15 +1362,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1547,10 +1547,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.0.0.0/8
@@ -1809,15 +1809,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_default_token.golden b/cli/cmd/testdata/install_default_token.golden
index 5c28e5725..dc9aad80e 100644
--- a/cli/cmd/testdata/install_default_token.golden
+++ b/cli/cmd/testdata/install_default_token.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1016,15 +1016,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1353,15 +1353,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1536,10 +1536,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1791,15 +1791,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_gid_output.golden b/cli/cmd/testdata/install_gid_output.golden
index 505c61ac2..dcc89dd49 100755
--- a/cli/cmd/testdata/install_gid_output.golden
+++ b/cli/cmd/testdata/install_gid_output.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1017,15 +1017,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1366,15 +1366,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1554,10 +1554,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1820,15 +1820,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_ha_output.golden b/cli/cmd/testdata/install_ha_output.golden
index e58bcb48b..1c064fe8b 100644
--- a/cli/cmd/testdata/install_ha_output.golden
+++ b/cli/cmd/testdata/install_ha_output.golden
@@ -613,7 +613,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1093,15 +1093,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1484,15 +1484,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1680,10 +1680,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1972,15 +1972,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_ha_with_overrides_output.golden b/cli/cmd/testdata/install_ha_with_overrides_output.golden
index 82ad53b20..3c13ef9c2 100644
--- a/cli/cmd/testdata/install_ha_with_overrides_output.golden
+++ b/cli/cmd/testdata/install_ha_with_overrides_output.golden
@@ -613,7 +613,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1093,15 +1093,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1484,15 +1484,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1680,10 +1680,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1972,15 +1972,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_heartbeat_disabled_output.golden b/cli/cmd/testdata/install_heartbeat_disabled_output.golden
index bf697bf68..67a311838 100644
--- a/cli/cmd/testdata/install_heartbeat_disabled_output.golden
+++ b/cli/cmd/testdata/install_heartbeat_disabled_output.golden
@@ -517,7 +517,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -947,15 +947,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1293,15 +1293,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1478,10 +1478,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1680,15 +1680,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_helm_control_plane_output.golden b/cli/cmd/testdata/install_helm_control_plane_output.golden
index 738587bee..7025eedaa 100644
--- a/cli/cmd/testdata/install_helm_control_plane_output.golden
+++ b/cli/cmd/testdata/install_helm_control_plane_output.golden
@@ -563,7 +563,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -989,15 +989,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1337,15 +1337,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1522,10 +1522,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd-dev
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1788,15 +1788,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_helm_control_plane_output_ha.golden b/cli/cmd/testdata/install_helm_control_plane_output_ha.golden
index 83a042197..0ebd92695 100644
--- a/cli/cmd/testdata/install_helm_control_plane_output_ha.golden
+++ b/cli/cmd/testdata/install_helm_control_plane_output_ha.golden
@@ -590,7 +590,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1066,15 +1066,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1459,15 +1459,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1655,10 +1655,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd-dev
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1951,15 +1951,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_helm_control_plane_output_ha_with_gid.golden b/cli/cmd/testdata/install_helm_control_plane_output_ha_with_gid.golden
index 6cd9c45e2..40e261f23 100755
--- a/cli/cmd/testdata/install_helm_control_plane_output_ha_with_gid.golden
+++ b/cli/cmd/testdata/install_helm_control_plane_output_ha_with_gid.golden
@@ -590,7 +590,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1067,15 +1067,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1463,15 +1463,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1662,10 +1662,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd-dev
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1962,15 +1962,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_helm_output_ha_labels.golden b/cli/cmd/testdata/install_helm_output_ha_labels.golden
index 8f98c4ccd..0652e150c 100644
--- a/cli/cmd/testdata/install_helm_output_ha_labels.golden
+++ b/cli/cmd/testdata/install_helm_output_ha_labels.golden
@@ -590,7 +590,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1074,15 +1074,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1471,15 +1471,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1667,10 +1667,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd-dev
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1971,15 +1971,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden b/cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden
index f744c6586..27cfe2cea 100644
--- a/cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden
+++ b/cli/cmd/testdata/install_helm_output_ha_namespace_selector.golden
@@ -585,7 +585,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1056,15 +1056,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1449,15 +1449,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1645,10 +1645,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd-dev
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1941,15 +1941,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_no_init_container.golden b/cli/cmd/testdata/install_no_init_container.golden
index 89d102bee..acfbce974 100644
--- a/cli/cmd/testdata/install_no_init_container.golden
+++ b/cli/cmd/testdata/install_no_init_container.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1016,15 +1016,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1140,7 +1140,7 @@ spec:
           - --connect-addr
           - "1.1.1.1:20001"
           - --listen-addr
-          - "[::]:4140"
+          - "0.0.0.0:4140"
           - --timeout
           - 10s
       securityContext:
@@ -1355,15 +1355,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1540,10 +1540,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1615,7 +1615,7 @@ spec:
           - --connect-addr
           - "1.1.1.1:20001"
           - --listen-addr
-          - "[::]:4140"
+          - "0.0.0.0:4140"
           - --timeout
           - 10s
       securityContext:
@@ -1795,15 +1795,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1968,7 +1968,7 @@ spec:
           - --connect-addr
           - "1.1.1.1:20001"
           - --listen-addr
-          - "[::]:4140"
+          - "0.0.0.0:4140"
           - --timeout
           - 10s
       securityContext:
diff --git a/cli/cmd/testdata/install_output.golden b/cli/cmd/testdata/install_output.golden
index caf09f1de..2abbe3ada 100644
--- a/cli/cmd/testdata/install_output.golden
+++ b/cli/cmd/testdata/install_output.golden
@@ -1995,7 +1995,7 @@ spec:
 ---
 apiVersion: v1
 data:
-  linkerd-config-overrides: Y2xpVmVyc2lvbjogQ2xpVmVyc2lvbgpjbHVzdGVyTmV0d29ya3M6IENsdXN0ZXJOZXR3b3Jrcwpjb250cm9sUGxhbmVUcmFjaW5nTmFtZXNwYWNlOiAiIgpjb250cm9sbGVyOiBudWxsCmNvbnRyb2xsZXJHSUQ6IDIxMDMKY29udHJvbGxlckltYWdlOiBDb250cm9sbGVySW1hZ2UKY29udHJvbGxlckxvZ0Zvcm1hdDogQ29udHJvbGxlckxvZ0Zvcm1hdApjb250cm9sbGVyTG9nTGV2ZWw6IENvbnRyb2xsZXJMb2dMZXZlbApkZWJ1Z0NvbnRhaW5lcjoKICBpbWFnZToKICAgIG5hbWU6IERlYnVnSW1hZ2VOYW1lCiAgICBwdWxsUG9saWN5OiBEZWJ1Z0ltYWdlUHVsbFBvbGljeQogICAgdmVyc2lvbjogRGVidWdWZXJzaW9uCmRlc3RpbmF0aW9uQ29udHJvbGxlcjogbnVsbApkaXNhYmxlSVB2NjogZmFsc2UKZW5hYmxlRW5kcG9pbnRTbGljZXM6IGZhbHNlCmhlYXJ0YmVhdFNjaGVkdWxlOiAxIDIgMyA0IDUKaWRlbnRpdHk6CiAgaXNzdWVyOgogICAgdGxzOgogICAgICBjcnRQRU06IHwKICAgICAgICAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KICAgICAgICBNSUlCd0RDQ0FXZWdBd0lCQWdJUkFKUklnWjhSdE84RXdnMVhlcGY4VDQ0d0NnWUlLb1pJemowRUF3SXdLVEVuCiAgICAgICAgTUNVR0ExVUVBeE1lYVdSbGJuUnBkSGt1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01CNFhEVEl3TURneQogICAgICAgIE9EQTNNVE0wTjFvWERUTXdNRGd5TmpBM01UTTBOMW93S1RFbk1DVUdBMVVFQXhNZWFXUmxiblJwZEhrdWJHbHUKICAgICAgICBhMlZ5WkM1amJIVnpkR1Z5TG14dlkyRnNNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxL0ZwCiAgICAgICAgZmNSbkRjZWRMNkFqVWFYWVB2NERJTUJhSnVmT0k1Tld0eStYU1g3SmpYZ1p0TTcyZFF2UmFZYW51eEQzNkR0MQogICAgICAgIDIvSnh5aVNneEtXUmRvYXkrYU53TUc0d0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUIKICAgICAgICBBZjhDQVFBd0hRWURWUjBPQkJZRUZJMVducnFNWUthSEhPbyt6cHlpaURxMnBPMEtNQ2tHQTFVZEVRUWlNQ0NDCiAgICAgICAgSG1sa1pXNTBhWFI1TG14cGJtdGxjbVF1WTJ4MWMzUmxjaTVzYjJOaGJEQUtCZ2dxaGtqT1BRUURBZ05IQURCRQogICAgICAgIEFpQXR1b0k1WHVDdHJHVlJ6U21SVGwycmEyOGFWOU15VFU3ZDVxblRBRkhLU2dJZ1JLQ3ZsdU9TZ0E1TzIxcDUKICAgICAgICA1MXRkcm1rSEVaUnIwcWxMU0pkSFlnRWZNems9CiAgICAgICAgLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQogICAgICBrZXlQRU06IHwKICAgICAgICAtLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KICAgICAgICBNSGNDQVFFRUlBQWU4bmZielp1OWMvT0IyKzh4Sk0wRno3TlV3VFFhenVsa0ZOczRUSTUrb0FvR0NDcUdTTTQ5CiAgICAgICAgQXdFSG9VUURRZ0FFMS9GcGZjUm5EY2VkTDZBalVhWFlQdjRESU1CYUp1Zk9JNU5XdHkrWFNYN0pqWGdadE03MgogICAgICAgIGRRdlJhWWFudXhEMzZEdDEyL0p4eWlTZ3hLV1Jkb2F5K1E9PQogICAgICAgIC0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KaWRlbnRpdHlUcnVzdEFuY2hvcnNQRU06IHwKICAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KICBNSUlCd1RDQ0FXYWdBd0lCQWdJUWVEWnA1bERhSXlnUTVVZk1LWnJGQVRBS0JnZ3Foa2pPUFFRREFqQXBNU2N3CiAgSlFZRFZRUURFeDVwWkdWdWRHbDBlUzVzYVc1clpYSmtMbU5zZFhOMFpYSXViRzlqWVd3d0hoY05NakF3T0RJNAogIE1EY3hNalEzV2hjTk16QXdPREkyTURjeE1qUTNXakFwTVNjd0pRWURWUVFERXg1cFpHVnVkR2wwZVM1c2FXNXIKICBaWEprTG1Oc2RYTjBaWEl1Ykc5allXd3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnFjNzBaCiAgbDF2Z3c3OXJqQjV1U0lUSUNVQTZHeWZ2U0ZmY3VJaXM3Qi9YRlNra3dBSFU1Uy9zMUFBUCtSMFRYN0hCV1VDNAogIHVhRzRXV3Npd0pLTm43bWdvM0F3YmpBT0JnTlZIUThCQWY4RUJBTUNBUVl3RWdZRFZSMFRBUUgvQkFnd0JnRUIKICAvd0lCQVRBZEJnTlZIUTRFRmdRVTVZdGpWVlBmZDdJN05MSHNuMkMyNkVCeUdWMHdLUVlEVlIwUkJDSXdJSUllCiAgYVdSbGJuUnBkSGt1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01Bb0dDQ3FHU000OUJBTUNBMGtBTUVZQwogIElRQ043bEJGTEREdmp4NlYwK1hranBLRVJSc0pZZjVhZE12bmxvRmw0OGlsSmdJaEFOdHhobmRjcitRSlB1QzgKICB2Z1VDMGQyLzlGTXVlSVZNYis0NldUQ09qc3FyCiAgLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQppbWFnZVB1bGxQb2xpY3k6IEltYWdlUHVsbFBvbGljeQppbWFnZVB1bGxTZWNyZXRzOiBudWxsCmxpbmtlcmRWZXJzaW9uOiBMaW5rZXJkVmVyc2lvbgpuZXR3b3JrVmFsaWRhdG9yOgogIGNvbm5lY3RBZGRyOiAxLjEuMS4xOjIwMDAxCiAgZW5hYmxlU2VjdXJpdHlDb250ZXh0OiBmYWxzZQpwb2RNb25pdG9yOiBudWxsCnBvbGljeUNvbnRyb2xsZXI6CiAgaW1hZ2U6CiAgICBuYW1lOiBQb2xpY3lDb250cm9sbGVySW1hZ2VOYW1lCiAgICBwdWxsUG9saWN5OiBJbWFnZVB1bGxQb2xpY3kKICAgIHZlcnNpb246IFBvbGljeUNvbnRyb2xsZXJWZXJzaW9uCiAgbG9nTGV2ZWw6IGxvZy1sZXZlbAogIHJlc291cmNlczoKICAgIGNwdToKICAgICAgbGltaXQ6IGNwdS1saW1pdAogICAgICByZXF1ZXN0OiBjcHUtcmVxdWVzdAogICAgbWVtb3J5OgogICAgICBsaW1pdDogbWVtb3J5LWxpbWl0CiAgICAgIHJlcXVlc3Q6IG1lbW9yeS1yZXF1ZXN0CnBvbGljeVZhbGlkYXRvcjoKICBjYUJ1bmRsZTogcG9saWN5IHZhbGlkYXRvciBDQSBidW5kbGUKICBleHRlcm5hbFNlY3JldDogdHJ1ZQpwcmlvcml0eUNsYXNzTmFtZTogUHJpb3JpdHlDbGFzc05hbWUKcHJvZmlsZVZhbGlkYXRvcjoKICBjYUJ1bmRsZTogcHJvZmlsZSB2YWxpZGF0b3IgQ0EgYnVuZGxlCiAgZXh0ZXJuYWxTZWNyZXQ6IHRydWUKcHJveHk6CiAgY29udHJvbDogbnVsbAogIGRlZmF1bHRJbmJvdW5kUG9saWN5OiBkZWZhdWx0LWFsbG93LXBvbGljeQogIGdpZDogMjEwMgogIGltYWdlOgogICAgbmFtZTogUHJveHlJbWFnZU5hbWUKICAgIHB1bGxQb2xpY3k6IEltYWdlUHVsbFBvbGljeQogICAgdmVyc2lvbjogUHJveHlWZXJzaW9uCiAgaW5ib3VuZENvbm5lY3RUaW1lb3V0OiAiIgogIGluYm91bmREaXNjb3ZlcnlDYWNoZVVudXNlZFRpbWVvdXQ6ICIiCiAgbG9nTGV2ZWw6IHdhcm4sbGlua2VyZD1pbmZvCiAgb3BhcXVlUG9ydHM6IDI1LDQ0Myw1ODcsMzMwNiw1NDMyLDExMjExCiAgb3V0Ym91bmRDb25uZWN0VGltZW91dDogIiIKICBvdXRib3VuZERpc2NvdmVyeUNhY2hlVW51c2VkVGltZW91dDogIiIKICByZXNvdXJjZXM6CiAgICBjcHU6CiAgICAgIGxpbWl0OiBjcHUtbGltaXQKICAgICAgcmVxdWVzdDogY3B1LXJlcXVlc3QKICAgIG1lbW9yeToKICAgICAgbGltaXQ6IG1lbW9yeS1saW1pdAogICAgICByZXF1ZXN0OiBtZW1vcnktcmVxdWVzdAogIHN0YXJ0dXBQcm9iZTogbnVsbApwcm94eUNvbnRhaW5lck5hbWU6IFByb3h5Q29udGFpbmVyTmFtZQpwcm94eUluaXQ6CiAgaWdub3JlSW5ib3VuZFBvcnRzOiAiIgogIGlnbm9yZU91dGJvdW5kUG9ydHM6ICI0NDMiCiAgaW1hZ2U6CiAgICBuYW1lOiBQcm94eUluaXRJbWFnZU5hbWUKICAgIHB1bGxQb2xpY3k6IEltYWdlUHVsbFBvbGljeQogICAgdmVyc2lvbjogUHJveHlJbml0VmVyc2lvbgogIGt1YmVBUElTZXJ2ZXJQb3J0czogIiIKcHJveHlJbmplY3RvcjoKICBjYUJ1bmRsZTogcHJveHkgaW5qZWN0b3IgQ0EgYnVuZGxlCiAgZXh0ZXJuYWxTZWNyZXQ6IHRydWUKd2ViaG9va0ZhaWx1cmVQb2xpY3k6IFdlYmhvb2tGYWlsdXJlUG9saWN5Cg==
+  linkerd-config-overrides: Y2xpVmVyc2lvbjogQ2xpVmVyc2lvbgpjbHVzdGVyTmV0d29ya3M6IENsdXN0ZXJOZXR3b3Jrcwpjb250cm9sUGxhbmVUcmFjaW5nTmFtZXNwYWNlOiAiIgpjb250cm9sbGVyOiBudWxsCmNvbnRyb2xsZXJHSUQ6IDIxMDMKY29udHJvbGxlckltYWdlOiBDb250cm9sbGVySW1hZ2UKY29udHJvbGxlckxvZ0Zvcm1hdDogQ29udHJvbGxlckxvZ0Zvcm1hdApjb250cm9sbGVyTG9nTGV2ZWw6IENvbnRyb2xsZXJMb2dMZXZlbApkZWJ1Z0NvbnRhaW5lcjoKICBpbWFnZToKICAgIG5hbWU6IERlYnVnSW1hZ2VOYW1lCiAgICBwdWxsUG9saWN5OiBEZWJ1Z0ltYWdlUHVsbFBvbGljeQogICAgdmVyc2lvbjogRGVidWdWZXJzaW9uCmRlc3RpbmF0aW9uQ29udHJvbGxlcjogbnVsbApkaXNhYmxlSVB2NjogZmFsc2UKZW5hYmxlRW5kcG9pbnRTbGljZXM6IGZhbHNlCmhlYXJ0YmVhdFNjaGVkdWxlOiAxIDIgMyA0IDUKaWRlbnRpdHk6CiAgaXNzdWVyOgogICAgdGxzOgogICAgICBjcnRQRU06IHwKICAgICAgICAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KICAgICAgICBNSUlCd0RDQ0FXZWdBd0lCQWdJUkFKUklnWjhSdE84RXdnMVhlcGY4VDQ0d0NnWUlLb1pJemowRUF3SXdLVEVuCiAgICAgICAgTUNVR0ExVUVBeE1lYVdSbGJuUnBkSGt1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01CNFhEVEl3TURneQogICAgICAgIE9EQTNNVE0wTjFvWERUTXdNRGd5TmpBM01UTTBOMW93S1RFbk1DVUdBMVVFQXhNZWFXUmxiblJwZEhrdWJHbHUKICAgICAgICBhMlZ5WkM1amJIVnpkR1Z5TG14dlkyRnNNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxL0ZwCiAgICAgICAgZmNSbkRjZWRMNkFqVWFYWVB2NERJTUJhSnVmT0k1Tld0eStYU1g3SmpYZ1p0TTcyZFF2UmFZYW51eEQzNkR0MQogICAgICAgIDIvSnh5aVNneEtXUmRvYXkrYU53TUc0d0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUIKICAgICAgICBBZjhDQVFBd0hRWURWUjBPQkJZRUZJMVducnFNWUthSEhPbyt6cHlpaURxMnBPMEtNQ2tHQTFVZEVRUWlNQ0NDCiAgICAgICAgSG1sa1pXNTBhWFI1TG14cGJtdGxjbVF1WTJ4MWMzUmxjaTVzYjJOaGJEQUtCZ2dxaGtqT1BRUURBZ05IQURCRQogICAgICAgIEFpQXR1b0k1WHVDdHJHVlJ6U21SVGwycmEyOGFWOU15VFU3ZDVxblRBRkhLU2dJZ1JLQ3ZsdU9TZ0E1TzIxcDUKICAgICAgICA1MXRkcm1rSEVaUnIwcWxMU0pkSFlnRWZNems9CiAgICAgICAgLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQogICAgICBrZXlQRU06IHwKICAgICAgICAtLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KICAgICAgICBNSGNDQVFFRUlBQWU4bmZielp1OWMvT0IyKzh4Sk0wRno3TlV3VFFhenVsa0ZOczRUSTUrb0FvR0NDcUdTTTQ5CiAgICAgICAgQXdFSG9VUURRZ0FFMS9GcGZjUm5EY2VkTDZBalVhWFlQdjRESU1CYUp1Zk9JNU5XdHkrWFNYN0pqWGdadE03MgogICAgICAgIGRRdlJhWWFudXhEMzZEdDEyL0p4eWlTZ3hLV1Jkb2F5K1E9PQogICAgICAgIC0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KaWRlbnRpdHlUcnVzdEFuY2hvcnNQRU06IHwKICAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KICBNSUlCd1RDQ0FXYWdBd0lCQWdJUWVEWnA1bERhSXlnUTVVZk1LWnJGQVRBS0JnZ3Foa2pPUFFRREFqQXBNU2N3CiAgSlFZRFZRUURFeDVwWkdWdWRHbDBlUzVzYVc1clpYSmtMbU5zZFhOMFpYSXViRzlqWVd3d0hoY05NakF3T0RJNAogIE1EY3hNalEzV2hjTk16QXdPREkyTURjeE1qUTNXakFwTVNjd0pRWURWUVFERXg1cFpHVnVkR2wwZVM1c2FXNXIKICBaWEprTG1Oc2RYTjBaWEl1Ykc5allXd3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnFjNzBaCiAgbDF2Z3c3OXJqQjV1U0lUSUNVQTZHeWZ2U0ZmY3VJaXM3Qi9YRlNra3dBSFU1Uy9zMUFBUCtSMFRYN0hCV1VDNAogIHVhRzRXV3Npd0pLTm43bWdvM0F3YmpBT0JnTlZIUThCQWY4RUJBTUNBUVl3RWdZRFZSMFRBUUgvQkFnd0JnRUIKICAvd0lCQVRBZEJnTlZIUTRFRmdRVTVZdGpWVlBmZDdJN05MSHNuMkMyNkVCeUdWMHdLUVlEVlIwUkJDSXdJSUllCiAgYVdSbGJuUnBkSGt1YkdsdWEyVnlaQzVqYkhWemRHVnlMbXh2WTJGc01Bb0dDQ3FHU000OUJBTUNBMGtBTUVZQwogIElRQ043bEJGTEREdmp4NlYwK1hranBLRVJSc0pZZjVhZE12bmxvRmw0OGlsSmdJaEFOdHhobmRjcitRSlB1QzgKICB2Z1VDMGQyLzlGTXVlSVZNYis0NldUQ09qc3FyCiAgLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQppbWFnZVB1bGxQb2xpY3k6IEltYWdlUHVsbFBvbGljeQppbWFnZVB1bGxTZWNyZXRzOiBudWxsCmxpbmtlcmRWZXJzaW9uOiBMaW5rZXJkVmVyc2lvbgpuZXR3b3JrVmFsaWRhdG9yOgogIGNvbm5lY3RBZGRyOiAxLjEuMS4xOjIwMDAxCiAgZW5hYmxlU2VjdXJpdHlDb250ZXh0OiBmYWxzZQogIGxpc3RlbkFkZHI6ICdbOjpdOjQxNDAnCnBvZE1vbml0b3I6IG51bGwKcG9saWN5Q29udHJvbGxlcjoKICBpbWFnZToKICAgIG5hbWU6IFBvbGljeUNvbnRyb2xsZXJJbWFnZU5hbWUKICAgIHB1bGxQb2xpY3k6IEltYWdlUHVsbFBvbGljeQogICAgdmVyc2lvbjogUG9saWN5Q29udHJvbGxlclZlcnNpb24KICBsb2dMZXZlbDogbG9nLWxldmVsCiAgcmVzb3VyY2VzOgogICAgY3B1OgogICAgICBsaW1pdDogY3B1LWxpbWl0CiAgICAgIHJlcXVlc3Q6IGNwdS1yZXF1ZXN0CiAgICBtZW1vcnk6CiAgICAgIGxpbWl0OiBtZW1vcnktbGltaXQKICAgICAgcmVxdWVzdDogbWVtb3J5LXJlcXVlc3QKcG9saWN5VmFsaWRhdG9yOgogIGNhQnVuZGxlOiBwb2xpY3kgdmFsaWRhdG9yIENBIGJ1bmRsZQogIGV4dGVybmFsU2VjcmV0OiB0cnVlCnByaW9yaXR5Q2xhc3NOYW1lOiBQcmlvcml0eUNsYXNzTmFtZQpwcm9maWxlVmFsaWRhdG9yOgogIGNhQnVuZGxlOiBwcm9maWxlIHZhbGlkYXRvciBDQSBidW5kbGUKICBleHRlcm5hbFNlY3JldDogdHJ1ZQpwcm94eToKICBjb250cm9sOiBudWxsCiAgZGVmYXVsdEluYm91bmRQb2xpY3k6IGRlZmF1bHQtYWxsb3ctcG9saWN5CiAgZ2lkOiAyMTAyCiAgaW1hZ2U6CiAgICBuYW1lOiBQcm94eUltYWdlTmFtZQogICAgcHVsbFBvbGljeTogSW1hZ2VQdWxsUG9saWN5CiAgICB2ZXJzaW9uOiBQcm94eVZlcnNpb24KICBpbmJvdW5kQ29ubmVjdFRpbWVvdXQ6ICIiCiAgaW5ib3VuZERpc2NvdmVyeUNhY2hlVW51c2VkVGltZW91dDogIiIKICBsb2dMZXZlbDogd2FybixsaW5rZXJkPWluZm8KICBvcGFxdWVQb3J0czogMjUsNDQzLDU4NywzMzA2LDU0MzIsMTEyMTEKICBvdXRib3VuZENvbm5lY3RUaW1lb3V0OiAiIgogIG91dGJvdW5kRGlzY292ZXJ5Q2FjaGVVbnVzZWRUaW1lb3V0OiAiIgogIHJlc291cmNlczoKICAgIGNwdToKICAgICAgbGltaXQ6IGNwdS1saW1pdAogICAgICByZXF1ZXN0OiBjcHUtcmVxdWVzdAogICAgbWVtb3J5OgogICAgICBsaW1pdDogbWVtb3J5LWxpbWl0CiAgICAgIHJlcXVlc3Q6IG1lbW9yeS1yZXF1ZXN0CiAgc3RhcnR1cFByb2JlOiBudWxsCnByb3h5Q29udGFpbmVyTmFtZTogUHJveHlDb250YWluZXJOYW1lCnByb3h5SW5pdDoKICBpZ25vcmVJbmJvdW5kUG9ydHM6ICIiCiAgaWdub3JlT3V0Ym91bmRQb3J0czogIjQ0MyIKICBpbWFnZToKICAgIG5hbWU6IFByb3h5SW5pdEltYWdlTmFtZQogICAgcHVsbFBvbGljeTogSW1hZ2VQdWxsUG9saWN5CiAgICB2ZXJzaW9uOiBQcm94eUluaXRWZXJzaW9uCiAga3ViZUFQSVNlcnZlclBvcnRzOiAiIgpwcm94eUluamVjdG9yOgogIGNhQnVuZGxlOiBwcm94eSBpbmplY3RvciBDQSBidW5kbGUKICBleHRlcm5hbFNlY3JldDogdHJ1ZQp3ZWJob29rRmFpbHVyZVBvbGljeTogV2ViaG9va0ZhaWx1cmVQb2xpY3kK
 kind: Secret
 metadata:
   creationTimestamp: null
diff --git a/cli/cmd/testdata/install_proxy_ignores.golden b/cli/cmd/testdata/install_proxy_ignores.golden
index e475f1cff..74e1ebc27 100644
--- a/cli/cmd/testdata/install_proxy_ignores.golden
+++ b/cli/cmd/testdata/install_proxy_ignores.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1016,15 +1016,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1362,15 +1362,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1547,10 +1547,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1809,15 +1809,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/cli/cmd/testdata/install_values_file.golden b/cli/cmd/testdata/install_values_file.golden
index 9e3b0386c..146789a87 100644
--- a/cli/cmd/testdata/install_values_file.golden
+++ b/cli/cmd/testdata/install_values_file.golden
@@ -586,7 +586,7 @@ data:
     networkValidator:
       connectAddr: ""
       enableSecurityContext: true
-      listenAddr: '[::]:4140'
+      listenAddr: ""
       logFormat: plain
       logLevel: debug
       timeout: 10s
@@ -1016,15 +1016,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1362,15 +1362,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
@@ -1547,10 +1547,10 @@ spec:
           name: sp-tls
           readOnly: true
       - args:
-        - --admin-addr=[::]:9990
+        - --admin-addr=0.0.0.0:9990
         - --control-plane-namespace=linkerd
-        - --grpc-addr=[::]:8090
-        - --server-addr=[::]:9443
+        - --grpc-addr=0.0.0.0:8090
+        - --server-addr=0.0.0.0:9443
         - --server-tls-key=/var/run/linkerd/tls/tls.key
         - --server-tls-certs=/var/run/linkerd/tls/tls.crt
         - --cluster-networks=10.0.0.0/8,100.64.0.0/10,172.16.0.0/12,192.168.0.0/16,fd00::/8
@@ -1809,15 +1809,15 @@ spec:
         - name: LINKERD2_PROXY_INBOUND_DISCOVERY_IDLE_TIMEOUT
           value: "90s"
         - name: LINKERD2_PROXY_CONTROL_LISTEN_ADDR
-          value: "[::]:4190"
+          value: "0.0.0.0:4190"
         - name: LINKERD2_PROXY_ADMIN_LISTEN_ADDR
-          value: "[::]:4191"
+          value: "0.0.0.0:4191"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDR
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_OUTBOUND_LISTEN_ADDRS
           value: "127.0.0.1:4140"
         - name: LINKERD2_PROXY_INBOUND_LISTEN_ADDR
-          value: "[::]:4143"
+          value: "0.0.0.0:4143"
         - name: LINKERD2_PROXY_INBOUND_IPS
           valueFrom:
             fieldRef:
diff --git a/pkg/charts/linkerd2/values_test.go b/pkg/charts/linkerd2/values_test.go
index 096324e63..ac239ea37 100644
--- a/pkg/charts/linkerd2/values_test.go
+++ b/pkg/charts/linkerd2/values_test.go
@@ -213,7 +213,7 @@ func TestNewValues(t *testing.T) {
 			LogLevel:              "debug",
 			LogFormat:             "plain",
 			ConnectAddr:           "",
-			ListenAddr:            "[::]:4140",
+			ListenAddr:            "",
 			Timeout:               "10s",
 			EnableSecurityContext: true,
 		},
diff --git a/testutil/inject_validator.go b/testutil/inject_validator.go
index b67a017ae..2dfe6c07b 100644
--- a/testutil/inject_validator.go
+++ b/testutil/inject_validator.go
@@ -107,7 +107,7 @@ func (iv *InjectValidator) validateProxyContainer(pod *v1.PodSpec) error {
 	}
 
 	if iv.AdminPort != 0 {
-		if err := iv.validateEnvVar(proxyContainer, "LINKERD2_PROXY_ADMIN_LISTEN_ADDR", fmt.Sprintf("[::]:%d", iv.AdminPort)); err != nil {
+		if err := iv.validateEnvVar(proxyContainer, "LINKERD2_PROXY_ADMIN_LISTEN_ADDR", fmt.Sprintf("0.0.0.0:%d", iv.AdminPort)); err != nil {
 			return err
 		}
 		if proxyContainer.LivenessProbe.HTTPGet.Port.IntVal != int32(iv.AdminPort) {
@@ -123,7 +123,7 @@ func (iv *InjectValidator) validateProxyContainer(pod *v1.PodSpec) error {
 	}
 
 	if iv.ControlPort != 0 {
-		if err := iv.validateEnvVar(proxyContainer, "LINKERD2_PROXY_CONTROL_LISTEN_ADDR", fmt.Sprintf("[::]:%d", iv.ControlPort)); err != nil {
+		if err := iv.validateEnvVar(proxyContainer, "LINKERD2_PROXY_CONTROL_LISTEN_ADDR", fmt.Sprintf("0.0.0.0:%d", iv.ControlPort)); err != nil {
 			return err
 		}
 	}
@@ -141,7 +141,7 @@ func (iv *InjectValidator) validateProxyContainer(pod *v1.PodSpec) error {
 	}
 
 	if iv.InboundPort != 0 {
-		if err := iv.validateEnvVar(proxyContainer, "LINKERD2_PROXY_INBOUND_LISTEN_ADDR", fmt.Sprintf("[::]:%d", iv.InboundPort)); err != nil {
+		if err := iv.validateEnvVar(proxyContainer, "LINKERD2_PROXY_INBOUND_LISTEN_ADDR", fmt.Sprintf("0.0.0.0:%d", iv.InboundPort)); err != nil {
 			return err
 		}
 		if proxyContainer.LivenessProbe.HTTPGet.Port.IntVal != int32(iv.AdminPort) {