diff --git a/pkg/vpn/openvpn.go b/pkg/vpn/openvpn.go
index 3df5a23703b54f6341c4a38a70f386c0df0f3d53..b15530b67d2b790da76797b0188956c78603fc74 100644
--- a/pkg/vpn/openvpn.go
+++ b/pkg/vpn/openvpn.go
@@ -160,7 +160,12 @@ func (b *Bitmask) startOpenVPN() error {
 
 		for _, gw := range gateways {
 			for _, port := range gw.Ports {
-				arg = append(arg, "--remote", gw.IPAddress, port, "tcp4")
+
+				if os.Getenv("UDP") == "1" && port != "53" {
+					arg = append(arg, "--remote", gw.IPAddress, port, "udp4")
+				} else {
+					arg = append(arg, "--remote", gw.IPAddress, port, "tcp4")
+				}
 			}
 		}
 	}