EasyTier / EasyTier

A simple, decentralized mesh VPN with WireGuard support.
https://easytier.top
Apache License 2.0
459 stars 41 forks source link

MacOS 10.15 GUI界面错乱 #144

Open sbweiwei opened 2 weeks ago

sbweiwei commented 2 weeks ago

image

KKRainbow commented 2 weeks ago

怎么执行的,下载的dmg 还是自己编译的。如果是自己编译,需要执行 pnpm tauri build

sbweiwei commented 2 weeks ago

下载x64那个dmg

KKRainbow commented 2 weeks ago

可能是 tauri 的锅,他说支持 mac >= 10.13,看来实际上有问题

我没这个版本的 os,没法测试验证

KKRainbow commented 2 weeks ago

要不先试试命令行版本吧,用起来也不复杂

sbweiwei commented 2 weeks ago

我回头试试命令行

之前1.0时候办公室的win10有段时间可以组网成功也能访问,配置应该没问题的。 但是后面突然就不行了,包括1.0和1.1,现在这个版本开dhcp功能不报错也能看到组网的另外一端信息,但是虚拟ipv4获取不出来也不能访问另一端。。 不开dhcp的话命令行报错

tun device ready. dev: et_6_aio3 panic occurred: PanicInfo { payload: Any { .. }, message: Some(called Result::unwrap() on an Err value: ShellCommandError("无法完成此功能。\r\n\r\n\r\n")), location: Location { file: "easytier\src/easytier-core.rs", line: 556, col: 22 }, can_unwind: true, force_no_backtrace: false }

现在我都不知道是哪里出了问题只能尝试搬出其他上古设备试🥲。

KKRainbow commented 2 weeks ago

后面突然不行,有可能是防火墙的原因,可以试试关闭防火墙

出现这个报错的时候,你用的启动命令是什么

sbweiwei commented 1 week ago

防火墙之前看了应该没问题。。 命令行和gui基本都用最简单的name和secret,服务器用public和自己的都不行,感觉不是防火墙问题,因为开了dhcp能看到自己的其他机器 image

相同网络和设置用win7跑是报这个 panic occurred: PanicInfo { payload: Any { .. }, message: Some(called Result::u nwrap() on an Err value: TunError(WintunError(String("Failed to create adapte r")))), location: Location { file: "easytier\src/easytier-core.rs", line: 556, col: 22 }, can_unwind: true, force_no_backtrace: false }

KKRainbow commented 1 week ago

win7 要打补丁 https://www.youwindowsworld.com/en/downloads/operating-systems/windows-7/update-windows-7-kb4474419/

另外你的 virtual ip 是空的,好像 dhcp 没能成功分 ip,你手动分个 10.144.144.10 呢

sbweiwei commented 1 week ago

win7之前试了是打了补丁的,不过也先不纠结win7的了。。

问题就是我也发现不分配ip,但是关了dhcp的选项就会报错 image

KKRainbow commented 1 week ago

可以用命令行打开 log 试试么 --console-log-level info 看看具体是执行哪个命令报的错

sbweiwei commented 1 week ago
F:\easytier>easytier-core --ipv4 10.144.144.3 --peers wg://xxxxx:11011 --network-name aaaaa --network-secret aaaaa --console-log-level info

parsing listeners: ["11010"]

  2024-06-13T10:09:59.2313909+08:00  INFO easytier_core::instance::instance: [INIT] instance creating. config: instance_name = "default"

instance_id = "fd268b4b-b0da-4b90-9220-cb450cbf9851"

ipv4 = "10.144.144.3"

dhcp = false

listeners = [

    "tcp://0.0.0.0:11010",

    "udp://0.0.0.0:11010",

    "wg://0.0.0.0:11011",

    "ws://0.0.0.0:11011/",

    "wss://0.0.0.0:11012/",

]

exit_nodes = []

rpc_portal = "127.0.0.1:15888"

[network_identity]

network_name = "aaaaa"

network_secret = "aaaaa"

[[peer]]

uri = "wg://xxxxx:11011"

[console_logger]

level = "info"

[flags]

default_protocol = "tcp"

enable_encryption = true

enable_ipv6 = true

mtu = 1380

latency_first = false

enable_exit_node = false



    at easytier\src\instance\instance.rs:313

  2024-06-13T10:09:59.2318043+08:00  INFO easytier_core::peers::peer_rpc: [PEER RPC MGR] register service 1 succeed, my_node_id 1325191784

    at easytier\src\peers\peer_rpc.rs:305

Starting easytier with config:

############### TOML ###############

instance_name = "default"

instance_id = "fd268b4b-b0da-4b90-9220-cb450cbf9851"

ipv4 = "10.144.144.3"

dhcp = false

listeners = [

    "tcp://0.0.0.0:11010",

    "udp://0.0.0.0:11010",

    "wg://0.0.0.0:11011",

    "ws://0.0.0.0:11011/",

    "wss://0.0.0.0:11012/",

]

exit_nodes = []

rpc_portal = "127.0.0.1:15888"

[network_identity]

network_name = "aaaaa"

network_secret = "aaaaa"

[[peer]]

uri = "wg://xxxxx:11011"

[console_logger]

level = "info"

[flags]

default_protocol = "tcp"

enable_encryption = true

enable_ipv6 = true

mtu = 1380

latency_first = false

enable_exit_node = false

-----------------------------------

  2024-06-13T10:09:59.238285+08:00  WARN easytier_core::instance::listeners: run listener: Listener { inner: Mutex { data: TunnelListener { local_url: Url { scheme: "ring", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("fd268b4b-b0da-4b90-9220-cb450cbf9851")), port: None, path: "", query: None, fragment: None } } }, must_succ: true }

    at easytier\src\instance\listeners.rs:174

  2024-06-13T10:09:59.2396147+08:00  INFO easytier_core::tunnel::ring: listen new conn of key: ring://fd268b4b-b0da-4b90-9220-cb450cbf9851

    at easytier\src\tunnel\ring.rs:291

  2024-06-13T10:09:59.2399771+08:00  WARN easytier_core::instance::listeners: run listener: Listener { inner: Mutex { data: TunnelListener { local_url: Url { scheme: "tcp", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("0.0.0.0")), port: Some(11010), path: "", query: None, fragment: None } } }, must_succ: true }

    at easytier\src\instance\listeners.rs:174

  2024-06-13T10:09:59.2407651+08:00  WARN easytier_core::instance::listeners: run listener: Listener { inner: Mutex { data: TunnelListener { local_url: Url { scheme: "udp", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("0.0.0.0")), port: Some(11010), path: "", query: None, fragment: None } } }, must_succ: true }

    at easytier\src\instance\listeners.rs:174

  2024-06-13T10:09:59.2410047+08:00  WARN easytier_core::instance::listeners: run listener: Listener { inner: Mutex { data: TunnelListener { local_url: Url { scheme: "wg", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("0.0.0.0")), port: Some(11011), path: "", query: None, fragment: None } } }, must_succ: true }

    at easytier\src\instance\listeners.rs:174

  2024-06-13T10:09:59.2412721+08:00  WARN easytier_core::instance::listeners: run listener: Listener { inner: Mutex { data: TunnelListener { local_url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(0.0.0.0)), port: Some(11011), path: "/", query: None, fragment: None } } }, must_succ: true }

    at easytier\src\instance\listeners.rs:174

  2024-06-13T10:09:59.2417628+08:00  WARN easytier_core::instance::listeners: run listener: Listener { inner: Mutex { data: TunnelListener { local_url: Url { scheme: "wss", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(0.0.0.0)), port: Some(11012), path: "/", query: None, fragment: None } } }, must_succ: true }

    at easytier\src\instance\listeners.rs:174

  2024-06-13T10:09:59.2420448+08:00  WARN easytier_core::instance::listeners: run listener: Listener { inner: Mutex { data: TunnelListener { local_url: Url { scheme: "udp", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv6(::)), port: Some(0), path: "", query: None, fragment: None } } }, must_succ: false }

    at easytier\src\instance\listeners.rs:174

  2024-06-13T10:09:59.2424111+08:00  INFO easytier_core::peers::peer_rpc: [PEER RPC MGR] register service 7 succeed, my_node_id 1325191784

    at easytier\src\peers\peer_rpc.rs:305

  2024-06-13T10:09:59.242505+08:00  INFO easytier_core::peers::peer_rpc: [PEER RPC MGR] register service 1 succeed, my_node_id 1325191784

    at easytier\src\peers\peer_rpc.rs:305

  2024-06-13T10:09:59.2489169+08:00 ERROR wintun::log: WinTun: Failed to find matching adapter name: 找不到元素。 (Code 0x00000490)

    at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wintun-0.3.2\src\log.rs:30

  2024-06-13T10:09:59.3064407+08:00  INFO wintun::log: WinTun: Using existing driver 0.14

    at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wintun-0.3.2\src\log.rs:28

  2024-06-13T10:09:59.3105407+08:00  INFO wintun::log: WinTun: Creating adapter

    at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wintun-0.3.2\src\log.rs:28

  2024-06-13T10:09:59.4143672+08:00  INFO easytier_core::common::ifcfg: Interface found, name: "et_6_rjsq", idx: 31

    at easytier\src\common\ifcfg.rs:363

  2024-06-13T10:09:59.4179952+08:00  WARN easytier_core::connector::manual: conn_mgr_routine started

    at easytier\src\connector\manual.rs:166

  2024-06-13T10:09:59.4206294+08:00  INFO easytier_core::tunnel::ring: waiting accept new conn of key: ring://fd268b4b-b0da-4b90-9220-cb450cbf9851

    at easytier\src\tunnel\ring.rs:300

    in easytier_core::instance::listeners::run_listener with listener: Mutex { data: TunnelListener { local_url: Url { scheme: "ring", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("fd268b4b-b0da-4b90-9220-cb450cbf9851")), port: None, path: "", query: None, fragment: None } } }, peer_manager: PeerManager { my_peer_id: 1325191784, instance_name: "default", net_ns: None }, global_ctx: GlobalCtx { inst_name: "default", id: fd268b4b-b0da-4b90-9220-cb450cbf9851, net_ns: None, event_bus: "EventBus", ipv4: AtomicCell { value: Some(10.144.144.3) } }

  2024-06-13T10:09:59.4218794+08:00  INFO easytier_core::tunnel::udp: start udp accept: Url { scheme: "udp", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("0.0.0.0")), port: Some(11010), path: "", query: None, fragment: None }

    at easytier\src\tunnel\udp.rs:426

    in easytier_core::instance::listeners::run_listener with listener: Mutex { data: TunnelListener { local_url: Url { scheme: "udp", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("0.0.0.0")), port: Some(11010), path: "", query: None, fragment: None } } }, peer_manager: PeerManager { my_peer_id: 1325191784, instance_name: "default", net_ns: None }, global_ctx: GlobalCtx { inst_name: "default", id: fd268b4b-b0da-4b90-9220-cb450cbf9851, net_ns: None, event_bus: "EventBus", ipv4: AtomicCell { value: Some(10.144.144.3) } }

  2024-06-13T10:09:59.4222191+08:00  INFO easytier_core::tunnel::udp: start udp accept: Url { scheme: "udp", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv6(::)), port: Some(54221), path: "", query: None, fragment: None }

    at easytier\src\tunnel\udp.rs:426

    in easytier_core::instance::listeners::run_listener with listener: Mutex { data: TunnelListener { local_url: Url { scheme: "udp", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv6(::)), port: Some(54221), path: "", query: None, fragment: None } } }, peer_manager: PeerManager { my_peer_id: 1325191784, instance_name: "default", net_ns: None }, global_ctx: GlobalCtx { inst_name: "default", id: fd268b4b-b0da-4b90-9220-cb450cbf9851, net_ns: None, event_bus: "EventBus", ipv4: AtomicCell { value: Some(10.144.144.3) } }

2024-06-13 10:09:59: new listener added. listener: tcp://0.0.0.0:11010

2024-06-13 10:09:59: new listener added. listener: udp://0.0.0.0:11010

2024-06-13 10:09:59: new listener added. listener: wg://0.0.0.0:11011

2024-06-13 10:09:59: new listener added. listener: ws://0.0.0.0:11011/

2024-06-13 10:09:59: new listener added. listener: wss://0.0.0.0:11012/

2024-06-13 10:09:59: new listener added. listener: udp://[::]:54221

  2024-06-13T10:09:59.4396406+08:00  INFO easytier_core::common::stun: start stun packet listener

    at easytier\src\common\stun.rs:306

    in easytier_core::common::stun::stun_packet_listener

    in easytier_core::common::stun::detect_nat_type_with_socket with udp: PollEvented { io: Some(UdpSocket { addr: 0.0.0.0:54223, socket: 992 }) }

  2024-06-13T10:09:59.530238+08:00  INFO easytier_core::common::ifcfg: run shell cmd, cmd: "netsh interface ipv4 set subinterface et_6_rjsq mtu=1360", ec: Some(0), succ: true, stdout: "确定。\r\n\r\n", stderr: ""

    at easytier\src\common\ifcfg.rs:79

2024-06-13 10:09:59: tun device ready. dev: et_6_rjsq

  2024-06-13T10:09:59.5323665+08:00  INFO easytier_core::peers::peer_ospf_route: global event received in update_my_peer_info_routine, ev: Ok(TunDeviceReady("et_6_rjsq"))

    at easytier\src\peers\peer_ospf_route.rs:1354

    in easytier_core::peers::peer_ospf_route::update_my_peer_info_routine with service_impl: PeerRouteServiceImpl { my_peer_id: 1325191784, sessions: [] }

  2024-06-13T10:09:59.6209275+08:00  INFO easytier_core::instance::instance: [USER_PACKET] not ipv4 packet: Ipv4Packet { version : 6, header_length : 0, dscp : 0, ecn : 0, total_length : 0, identification : 24, flags : 1, fragment_offset : 6911, ttl : 0, next_level_protocol : IpNextHeaderProtocol(0), checksum : 0, source : 0.0.0.0, destination : 0.0.0.0, options : [],  }

    at easytier\src\instance\instance.rs:122

  2024-06-13T10:09:59.6211121+08:00  INFO easytier_core::instance::instance: [USER_PACKET] not ipv4 packet: Ipv4Packet { version : 6, header_length : 0, dscp : 0, ecn : 0, total_length : 0, identification : 8, flags : 1, fragment_offset : 6911, ttl : 254, next_level_protocol : IpNextHeaderProtocol(128), checksum : 0, source : 0.0.0.0, destination : 34.54.241.49, options : [],  }

    at easytier\src\instance\instance.rs:122

  2024-06-13T10:09:59.6222588+08:00  INFO easytier_core::instance::instance: [USER_PACKET] not ipv4 packet: Ipv4Packet { version : 6, header_length : 0, dscp : 0, ecn : 0, total_length : 0, identification : 36, flags : 0, fragment_offset : 1, ttl : 254, next_level_protocol : IpNextHeaderProtocol(128), checksum : 0, source : 0.0.0.0, destination : 34.54.241.49, options : [],  }

    at easytier\src\instance\instance.rs:122

  2024-06-13T10:09:59.6786139+08:00  INFO easytier_core::common::ifcfg: run shell cmd, cmd: "netsh interface set interface et_6_rjsq enable", ec: Some(1), succ: false, stdout: "无法完成此功能。\r\n\r\n\r\n", stderr: ""

    at easytier\src\common\ifcfg.rs:79

panic occurred: PanicInfo { payload: Any { .. }, message: Some(called `Result::unwrap()` on an `Err` value: ShellCommandError("无法完成此功能。\r\n\r\n\r\n")), location: Location { file: "easytier\\src/easytier-core.rs", line: 556, col: 22 }, can_unwind: true, force_no_backtrace: false }
sbweiwei commented 1 week ago

电脑是一个板载网卡一个usb网卡,板载网卡共享了网络给usb网卡

KKRainbow commented 1 week ago

机器重启后也会这样么

sbweiwei commented 1 week ago

是的,1.0的时候除了开始能正常使用一段时间,后面包括1.1都没有改动配置但是开始报错了。。

sbweiwei commented 1 week ago

只要加了--ipv4就会报错,不加能跑但是没有分配虚拟 ip 也没用

sbweiwei commented 1 week ago

另外请教下 wireguard 怎么配置。是 vpn portal 分配另外一个不冲突的网段,后面 22022 不用改吗?然后 生成的config需要手动改吗?

例如 软件生成的这段 config: [Interface] PrivateKey = AUxxxxVfJ6IMqmvoVaA1iR4= Address = 10.11.12.0/32 # should assign an ip from this cidr manually

[Peer] PublicKey = ItyxtxxxxM24D8ZMmC8Ln+YKy2hE= AllowedIPs = 10.10.11.0/24,10.11.12.0/24 Endpoint = 0.0.0.0:22022 # should be the public ip(or domain) of the vpn server PersistentKeepalive = 25

Address 是要改成10.11.12. 1/32这样? Endpoint是要自己手动改成如easytier.public.kkrainbow.top:22022 这样的 public 服务器吗?

KKRainbow commented 1 week ago

Address 是要改成10.11.12. 1/32这样?

是的

Endpoint是要自己手动改成如easytier.public.kkrainbow.top:22022 这样的 public 服务器吗?

Endpoint 要填你自己的开启了 vpn portal 的服务器的 ip 地址

KKRainbow commented 1 week ago

只要加了--ipv4就会报错,不加能跑但是没有分配虚拟 ip 也没用

可以发一下你 win 的详细版本信息么

sbweiwei commented 1 week ago

只要加了--ipv4就会报错,不加能跑但是没有分配虚拟 ip 也没用

可以发一下你 win 的详细版本信息么

image 不过感觉应该和版本关联不大,毕竟一开始是可以用的。但是不能用是不是我加了网卡之后不太记得了,不过尝试过拔了网卡好像也不行

sbweiwei commented 1 week ago

Address 是要改成10.11.12. 1/32这样?

是的

Endpoint是要自己手动改成如easytier.public.kkrainbow.top:22022 这样的 public 服务器吗?

Endpoint 要填你自己的开启了 vpn portal 的服务器的 ip 地址

主要没有搞懂vpn portal后面那个22022是端口吗?是需要路由器把这个端口也映射出去吗?命令行的example是用11010所以有点搞不清

KKRainbow commented 1 week ago

主要没有搞懂vpn portal后面那个22022是端口吗?是需要路由器把这个端口也映射出去吗?命令行的example是用11010所以有点搞不清

嗯,这个需要映射出去,wireguard client 才能访问到

KKRainbow commented 1 week ago

不过感觉应该和版本关联不大,毕竟一开始是可以用的。但是不能用是不是我加了网卡之后不太记得了,不过尝试过拔了网卡好像也不行

不知道有没有机会让我远程下你这个机器,我看看能不能定位出问题

sbweiwei commented 1 week ago

不过感觉应该和版本关联不大,毕竟一开始是可以用的。但是不能用是不是我加了网卡之后不太记得了,不过尝试过拔了网卡好像也不行

不知道有没有机会让我远程下你这个机器,我看看能不能定位出问题

远程倒无问题,不过公司的电脑不太方便用那些知名的远程连接软件,但是这个又连接不上。 我在想会不会是端口问题,我换个端口试试。是用--listeners还是--default-protocal来改11010端口?

sbweiwei commented 5 days ago

不过感觉应该和版本关联不大,毕竟一开始是可以用的。但是不能用是不是我加了网卡之后不太记得了,不过尝试过拔了网卡好像也不行

不知道有没有机会让我远程下你这个机器,我看看能不能定位出问题

还是说我这边怎么测试给你结果?本机用dhcp选项不设置虚拟ip就能看到节点主机但是没有分配出ip,设置ip就不行。 节点主机现在用手机wireguard连接使用无问题。节点主机参数应该没有问题吧?