diff --git a/client/client.go b/client/client.go
index e8f7813ee0c9bb23ceecda565795c46311221d12..1a3ef1a5cbfb7f980bd492d044415e0814a2157d 100644
--- a/client/client.go
+++ b/client/client.go
@@ -186,14 +186,9 @@ func (c *Client) Start() (bool, error) {
 
 	c.updateState(running)
 
-	proxyAddr, err := net.ResolveUDPAddr("udp", c.ProxyAddr)
-	if err != nil {
-		return false, fmt.Errorf("cannot resolve UDP addr: %w", err)
-	}
-
-	c.openvpnConn, err = net.ListenUDP("udp", proxyAddr)
+	c.openvpnConn, err = c.createOpenvpnConnection()
 	if err != nil {
-		return false, fmt.Errorf("error accepting udp connection: %w", err)
+		return false, err
 	}
 
 	if c.hopEnabled {
@@ -466,7 +461,12 @@ func (c *Client) createOpenvpnConnection() (*net.UDPConn, error) {
 		return nil, err
 	}
 
-	return net.ListenUDP("udp", proxyAddr)
+	udpConn, err := net.ListenUDP("udp", proxyAddr)
+	if err != nil {
+		c.error("error accepting udp connection: %v", err)
+		return nil, fmt.Errorf("error accepting udp connection: %w", err)
+	}
+	return udpConn, nil
 }
 
 func (c *Client) Stop() (bool, error) {