heiher / hev-socks5-tunnel

A high-performance tun2socks for Linux/Android/FreeBSD/macOS/iOS/WSL2 (IPv4/IPv6/TCP/UDP)
MIT License
886 stars 159 forks source link

iOS无法连接。 #157

Closed EricsXcode closed 1 month ago

EricsXcode commented 2 months ago

博主,我使用该库出现iOS无法连接到xray的问题。xray已启动端口的监听,但tun2一直在链接中。我使用本机的局域网ip则可以连接成功,使用127.0.0.1则无法连接。 xray日志: 2024/09/04 09:25:33 [Debug] app/proxyman/inbound: creating stream worker on 127.0.0.1:1085 2024/09/04 09:25:33 [Debug] app/proxyman/inbound: creating stream worker on 127.0.0.1:1082 2024/09/04 09:25:33 [Info] transport/internet/tcp: listening TCP on 127.0.0.1:1085 2024/09/04 09:25:33 [Info] transport/internet/udp: listening UDP on 127.0.0.1:1085 2024/09/04 09:25:33 [Info] transport/internet/tcp: listening TCP on 127.0.0.1:1082 tun2日志:一直循环下面的过程 [2024-09-04 17:26:58] [D] 0x107509a20 socks5 session run

[2024-09-04 17:26:58] [D] 0x107509a20 socks5 client connect server [2024-09-04 17:26:58] [D] 0x107509a20 socks5 session udp bind [2024-09-04 17:26:58] [E] 0x107509a20 socks5 client connect [2024-09-04 17:26:58] [E] 0x107509a20 socks5 client connect [2024-09-04 17:26:58] [E] 0x107509a20 socks5 session connect [2024-09-04 17:26:58] [D] 0x107509a20 socks5 session udp destruct [2024-09-04 17:26:58] [D] 0x107509a20 socks5 client udp destruct [2024-09-04 17:26:58] [D] 0x107509a20 socks5 client destruct [2024-09-04 17:26:58] [D] 0x107509a20 socks5 destruct xray路由: @{ @"listen" : @"127.0.0.1", @"protocol": @"socks", @"settings" : @{ @"auth": @"noauth",//@"password", @"udp":@(YES), @"ip":@"127.0.0.1", }, @"tag" : @"socks-in", @"port" : @(1085) }; 隧道配置: NEPacketTunnelNetworkSettings networkSettings = [[NEPacketTunnelNetworkSettings alloc] initWithTunnelRemoteAddress:@"254.1.1.1"];: NSMutableSet dns = [NSMutableSet setWithArray:[NAFutureManager sharedManager].DNS];

[_allDnsServer addObjectsFromArray:dns.allObjects];
networkSettings.DNSSettings = [[NEDNSSettings alloc] initWithServers:_allDnsServer];
networkSettings.MTU = @(8500);

// 此处其实是创建一个虚拟 IP 地址,需要自行创建路由
NEIPv4Settings *ipv4Settings = [[NEIPv4Settings alloc] initWithAddresses:@[@"198.18.0.1"] subnetMasks:@[@"255.255.255.0"]];
networkSettings.IPv4Settings = ipv4Settings;
heiher commented 1 month ago

不清楚怎么回事,也没环境分析,检查一下路由?记得有人说过类似的问题,用:1也能访问。

EricsXcode commented 1 month ago

不清楚怎么回事,也没环境分析,检查一下路由?记得有人说过类似的问题,用:1也能访问。

我使用ipv6的地址创建监听,然后使用::1链接就没问题。使用ipv4 就链接不上。

yiguous commented 1 month ago

确实存在这个问题,Apple 专属。其他平台监听 127.0.0.1 完全没问题(已验证 Android, Linux)。 但是我觉得没有解决的必要,监听 ::1 完全可以达到同样的效果。

heiher commented 1 month ago

建议通过 ::1 访问解决。