diff --git a/tcp.go b/tcp.go
index e424f694d90dbfa908c1cb21069bbd01b4334e23..a206256818277a81691498bccc73584a88bab237 100644
--- a/tcp.go
+++ b/tcp.go
@@ -51,7 +51,11 @@ func tcpHandleConnection(conn net.Conn, logger *zap.Logger) {
 	}
 
 	targetAddr := Opts.TargetAddr6
-	if AddrVersion(saddr) == 4 {
+	if saddr == nil {
+		if AddrVersion(conn.RemoteAddr()) == 4 {
+			targetAddr = Opts.TargetAddr4
+		}
+	} else if AddrVersion(saddr) == 4 {
 		targetAddr = Opts.TargetAddr4
 	}