heiher / hev-socks5-tunnel

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

在 macos 上有crash #134

Closed Yewenyu closed 6 months ago

Yewenyu commented 6 months ago

412675838 2794230798 200838437 1315098732 3682539047 1177464268 1496813081

heiher commented 6 months ago

Check the task-stack-size (>= 81920): https://github.com/heiher/hev-socks5-tunnel/blob/master/conf/main.yml#L37

Yewenyu commented 6 months ago

Check the task-stack-size (>= 81920): https://github.com/heiher/hev-socks5-tunnel/blob/master/conf/main.yml#L37

`tunnel: mtu: 9000 multi-queue: true

socks5: port: 7890 address: ::1 udp: 'udp'

misc: task-stack-size: 4096 connect-timeout: 2000 read-write-timeout: 2000 ` 你的意思是必须大于81920吗

heiher commented 6 months ago

你的意思是必须大于81920吗

对的。为了整体上更节省内存,现在Ring Buffer在栈上分配。

(后面考虑在配置模块中增加最低阈值限制,以避免这类配置导致的问题。

heiher commented 6 months ago

https://github.com/heiher/hev-socks5-tunnel/commit/9f2b55c8a95f7a5978aad533d137d0a5ca5bdb86

Yewenyu commented 6 months ago

你的意思是必须大于81920吗

对的。为了整体上更节省内存,现在Ring Buffer在栈上分配。

(后面考虑在配置模块中增加最低阈值限制,以避免这类配置导致的问题。

还是会崩

2727212609(1)

heiher commented 6 months ago

试试再调高task-stack-size测测,如果还是有不行,就是其它未知问题了。最好能定位一下是哪个修改引起的,提供更详细的错误上下文信息。

sholiverlee commented 6 months ago

我也碰到了这个问题

Yewenyu commented 6 months ago

试试再调高task-stack-size测测,如果还是有不行,就是其它未知问题了。最好能定位一下是哪个修改引起的,提供更详细的错误上下文信息。

我也碰到了这个问题

task-stack-size 调到 102400就可以了

cattyhouse commented 6 months ago

我没改 task-stack-size 也没有崩, 试试调高 maxfiles?

ulimit -nS ; launchctl limit maxfiles

launchctl limit maxfiles 400000

cattyhouse commented 6 months ago

我没改 task-stack-size 也没有崩, 试试调高 maxfiles?

  • 先查询下

ulimit -nS ; launchctl limit maxfiles

  • 改大

launchctl limit maxfiles 400000

或者直接改 yml

misc:
  limit-nofile: 65535
heiher commented 6 months ago

正常来说task-stack-size: 81920应该足够了,这已经是包含了一定的冗余了。如果是栈溢出导致的问题,也可以试试 make CFLAGS="-fno-stack-protector" 编译,以防止是某些版本的编译器默认开启了比较激进的栈保护。

heiher commented 6 months ago

试试再调高task-stack-size测测,如果还是有不行,就是其它未知问题了。最好能定位一下是哪个修改引起的,提供更详细的错误上下文信息。

我也碰到了这个问题

task-stack-size 调到 102400就可以了

默认的task-stack-size还需要调大吗?

sholiverlee commented 6 months ago

不需要调大了,已经可以了。非常感谢支持!

heiher commented 6 months ago

不需要调大了,已经可以了。非常感谢支持!

那就好,谢谢~

Yewenyu commented 5 months ago

试试再调高task-stack-size测测,如果还是有不行,就是其它未知问题了。最好能定位一下是哪个修改引起的,提供更详细的错误上下文信息。

我也碰到了这个问题

task-stack-size 调到 102400就可以了

默认的task-stack-size还需要调大吗?

我在mac arm架构的不需要,在x86上就需要调大

heiher commented 5 months ago

@Yewenyu 感谢反馈,能否提供一下具体的复现的步骤,比如使用什么发行版和什么工具链版本?

Yewenyu commented 5 months ago

@Yewenyu 感谢反馈,能否提供一下具体的复现的步骤,比如使用什么发行版和什么工具链版本?

使用了clash的trojan,开启了websocket

https://github.com/Mejituu/clash

打包成macos的framework,在macos的packetTunnel开启了tun2socks和trojan进行代理

cattyhouse commented 5 months ago

我的 macbook air m1 (arm64) 也不需要任何调整,也不会崩溃。 对接的是本地运行的 trojan-go 或者 trojan-r.

然后通过 pfctl 来做简单的基于 chnroute ip 列表的分流。