diff --git a/src/linker.tunnel/transport/TransportTcpPortMap.cs b/src/linker.tunnel/transport/TransportTcpPortMap.cs index c81b3664..ca497cf0 100644 --- a/src/linker.tunnel/transport/TransportTcpPortMap.cs +++ b/src/linker.tunnel/transport/TransportTcpPortMap.cs @@ -306,7 +306,10 @@ namespace linker.tunnel.transport if (tunnelTransportInfo.Remote.LocalIps.Any(c => c.AddressFamily == AddressFamily.InterNetworkV6) && tunnelTransportInfo.Local.LocalIps.Any(c => c.AddressFamily == AddressFamily.InterNetworkV6)) { - eps.Add(new IPEndPoint(tunnelTransportInfo.Remote.LocalIps.FirstOrDefault(c => c.AddressFamily == AddressFamily.InterNetworkV6), tunnelTransportInfo.Remote.PortMapWan)); + foreach (var item in tunnelTransportInfo.Remote.LocalIps.Where(c => c.AddressFamily == AddressFamily.InterNetworkV6).Distinct()) + { + eps.Add(new IPEndPoint(item, tunnelTransportInfo.Remote.PortMapWan)); + } } eps.Add(new IPEndPoint(tunnelTransportInfo.Remote.Remote.Address, tunnelTransportInfo.Remote.PortMapWan)); diff --git a/src/linker.tunnel/transport/TransportUdpPortMap.cs b/src/linker.tunnel/transport/TransportUdpPortMap.cs index 3e0c7005..6cc0003a 100644 --- a/src/linker.tunnel/transport/TransportUdpPortMap.cs +++ b/src/linker.tunnel/transport/TransportUdpPortMap.cs @@ -305,7 +305,11 @@ namespace linker.tunnel.transport if (tunnelTransportInfo.Remote.LocalIps.Any(c => c.AddressFamily == AddressFamily.InterNetworkV6) && tunnelTransportInfo.Local.LocalIps.Any(c => c.AddressFamily == AddressFamily.InterNetworkV6)) { - eps.Add(new IPEndPoint(tunnelTransportInfo.Remote.LocalIps.FirstOrDefault(c => c.AddressFamily == AddressFamily.InterNetworkV6), tunnelTransportInfo.Remote.PortMapWan)); + foreach (var item in tunnelTransportInfo.Remote.LocalIps.Where(c => c.AddressFamily == AddressFamily.InterNetworkV6).Distinct()) + { + eps.Add(new IPEndPoint(item, tunnelTransportInfo.Remote.PortMapWan)); + } + } eps.Add(new IPEndPoint(tunnelTransportInfo.Remote.Remote.Address, tunnelTransportInfo.Remote.PortMapWan)); @@ -329,7 +333,7 @@ namespace linker.tunnel.transport byte[] recv = new byte[1024]; SocketReceiveFromResult recvRestlt = await targetSocket.ReceiveFromAsync(recv, new IPEndPoint(ep.AddressFamily == AddressFamily.InterNetwork ? IPAddress.Any : IPAddress.IPv6Any, 0)).WaitAsync(TimeSpan.FromMilliseconds(500)).ConfigureAwait(false); - if(recv.AsSpan(0, recvRestlt.ReceivedBytes).SequenceEqual(sendt) == false) + if (recv.AsSpan(0, recvRestlt.ReceivedBytes).SequenceEqual(sendt) == false) { if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG) { diff --git a/version.txt b/version.txt index 9991b3b9..8f1204e5 100644 --- a/version.txt +++ b/version.txt @@ -1,5 +1,5 @@ v1.8.8 -2025-07-24 02:01:22 +2025-07-24 11:01:50 1. 一些累计更新 2. 管理端输入去除多余空格 3. 中继节点自动更新