EbrahimTahernejad / Tun2SocksKit

Tun2Socks framework repository
50 stars 32 forks source link

你好,xcode 15,Socks5Tunnel.run 返回-1, 貌似tunnelFileDescriptor 无法获取到值,大神知道什么原因吗? #2

Open RonadoLong opened 5 months ago

EbrahimTahernejad commented 5 months ago

are you sure you're calling it after setTunnelNetworkSettings is done?

800sea commented 5 months ago

我这边也是xcode15。但是我报 -5

Formerly commented 4 months ago

同样报 5 static func getSettings() -> NEPacketTunnelNetworkSettings { let settings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "127.0.0.1") settings.mtu = 8500 let ipv4Settings = NEIPv4Settings(addresses: ["198.18.0.20"], subnetMasks: ["255.255.255.0"]) ipv4Settings.includedRoutes = [NEIPv4Route.default()] settings.ipv4Settings = ipv4Settings let ipv6Settings = NEIPv6Settings(addresses: ["fd6e:a81b:704f:1211::1"], networkPrefixLengths: [64]) ipv6Settings.includedRoutes = [NEIPv6Route.default()] settings.ipv6Settings = ipv6Settings let dns = NEDNSSettings(servers: ["8.8.8.8"]) settings.dnsSettings = dns settings.proxySettings = nil return settings } WX20240123-114009@2x

EbrahimTahernejad commented 4 months ago

同样报 5 static func getSettings() -> NEPacketTunnelNetworkSettings {

    let settings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "127.0.0.1")

    settings.mtu = 8500

    let ipv4Settings = NEIPv4Settings(addresses: ["198.18.0.20"], subnetMasks: ["255.255.255.0"])

    ipv4Settings.includedRoutes = [NEIPv4Route.default()]

    settings.ipv4Settings = ipv4Settings

    let ipv6Settings = NEIPv6Settings(addresses: ["fd6e:a81b:704f:1211::1"], networkPrefixLengths: [64])

    ipv6Settings.includedRoutes = [NEIPv6Route.default()]

    settings.ipv6Settings = ipv6Settings

    let dns = NEDNSSettings(servers: ["8.8.8.8"])

    settings.dnsSettings = dns

    settings.proxySettings = nil

    return settings

}

WX20240123-114009@2x

What's your tun2socks config.

linchuIOS commented 3 months ago

同样报 5 static func getSettings() -> NEPacketTunnelNetworkSettings {

    let settings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "127.0.0.1")

    settings.mtu = 8500

    let ipv4Settings = NEIPv4Settings(addresses: ["198.18.0.20"], subnetMasks: ["255.255.255.0"])

    ipv4Settings.includedRoutes = [NEIPv4Route.default()]

    settings.ipv4Settings = ipv4Settings

    let ipv6Settings = NEIPv6Settings(addresses: ["fd6e:a81b:704f:1211::1"], networkPrefixLengths: [64])

    ipv6Settings.includedRoutes = [NEIPv6Route.default()]

    settings.ipv6Settings = ipv6Settings

    let dns = NEDNSSettings(servers: ["8.8.8.8"])

    settings.dnsSettings = dns

    settings.proxySettings = nil

    return settings

}

WX20240123-114009@2x

What's your tun2socks config.

""" tunnel: mtu: 9000 socks5: port: \(port) address: ::1 udp: 'udp' misc: task-stack-size: 20480 connect-timeout: 5000 read-write-timeout: 60000 log-file: stderr log-level: error limit-nofile: 65535 """ return 5 too.

LondonX commented 2 months ago

应该是新版本里Socks5Tunnel.run(withConfig: .string(content: tunConfigContent))的锅。 我这边改成了Socks5Tunnel.run(withConfig: .file(path: tunConfigFile))就行了。

tunConfigFiletunConfigContent来自以下方法

private func createTunnelConfig(socksPort: Int) -> String {
    return """
    tunnel:
      mtu: 9000

    socks5:
      port: \(socksPort)
      address: ::1
      udp: 'udp'

    misc:
      task-stack-size: 2048
      connect-timeout: 5000
      read-write-timeout: 60000
      log-file: stderr
      log-level: info
      limit-nofile: 65535
    """
}

private func createTunnelConfigFile(socksPort: Int) -> URL {
    let configContent = createTunnelConfig(socksPort: socksPort)
    if let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
        let fileURL = documentsDirectory.appendingPathComponent("tunnel_config.yaml")
        do {
            try configContent.write(to: fileURL, atomically: true, encoding: .utf8)
            return fileURL
        } catch {
            fatalError("Error writing to file: \(error)")
        }
    } else {
        fatalError("Error finding the documents directory.")
    }
}
vitbulio commented 6 days ago

I have the same problem. -5 code