diff --git a/packages/netutil/netutil.go b/packages/netutil/netutil.go
index b1137f562a53c70bf55d901a826ac96ce8d8f6b3..b9c4932c95410068dcfc522fe583a914dc1ee972 100644
--- a/packages/netutil/netutil.go
+++ b/packages/netutil/netutil.go
@@ -87,7 +87,7 @@ func CheckUDP(local, remote *net.UDPAddr, checkAddress bool, checkPort bool) err
 		return errInvalidData
 	}
 	udpAddr := from.(*net.UDPAddr)
-	if checkAddress && udpAddr.IP.Equal(remote.IP) {
+	if checkAddress && !udpAddr.IP.Equal(remote.IP) {
 		return fmt.Errorf("IP changed: %s", udpAddr.IP)
 	}
 	if checkPort && udpAddr.Port != remote.Port {
diff --git a/packages/netutil/netutil_test.go b/packages/netutil/netutil_test.go
index f5543f8db0aaff816fc6a187da5844ea9fdc514f..99fca2cb3dd85242dd2e7cc26f4d97fddf7c68c1 100644
--- a/packages/netutil/netutil_test.go
+++ b/packages/netutil/netutil_test.go
@@ -59,7 +59,7 @@ func TestCheckUDP(t *testing.T) {
 }
 
 func getLocalUDPAddr() (*net.UDPAddr, error) {
-	addr, err := net.ResolveUDPAddr("udp", ":0")
+	addr, err := net.ResolveUDPAddr("udp", "127.0.0.1:0")
 	if err != nil {
 		return nil, err
 	}