diff --git a/crates/net/nat/src/lib.rs b/crates/net/nat/src/lib.rs index 83b24f2ac5e..8f2303b30e5 100644 --- a/crates/net/nat/src/lib.rs +++ b/crates/net/nat/src/lib.rs @@ -231,9 +231,13 @@ pub async fn external_addr_with(resolver: NatResolver) -> Option { ); }) .ok(), - NatResolver::ExternalAddr(domain) => { - domain.to_socket_addrs().ok().and_then(|mut addrs| addrs.next().map(|addr| addr.ip())) - } + NatResolver::ExternalAddr(domain) => tokio::net::lookup_host(format!("{domain}:0")) + .await + .inspect_err(|err| { + debug!(target: "net::nat", %err, %domain, "Failed to resolve external address"); + }) + .ok() + .and_then(|mut addrs| addrs.next().map(|addr| addr.ip())), NatResolver::None => None, } }