leaf的一些问题
#273
Replies: 2 comments 1 reply
-
1早已修复,2是衡量后的选择,sniff会引入一个延迟,尽管这种情况很少,另外只实现了TLS的sniff,这块功能现在只当作是fakedns的补充,3你可以考虑做个持久化,带上时间限制 |
Beta Was this translation helpful? Give feedback.
0 replies
-
1.这个好像没有修复吧。2.为什么不实现其他协议的sniff呢?3.fakedns的作用是什么呢?持久化得leaf里做吧。有可能的话加个微信或者qq聊下?
发自我的iPhone
… 在 2022年5月9日,12:54,eycorsican ***@***.***> 写道:
1早已修复,2是衡量后的选择,sniff会引入一个延迟,尽管这种情况很少,另外只实现了TLS的sniff,这块功能现在只当作是fakedns的补充,3你可以考虑做个持久化,带上时间限制
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
最近在IOS上做了个VPN,使用了leaf,实际使用中发现了一些问题。以下讨论基于0.4.2。但是最新版本问题依然存在
当l2r关闭时,rw也必须关闭,相同的,当r2l关闭时,lw也需要关闭。因为http协议的结束,会依赖于FIN信号,考虑以下场景:
客户端发起http请求,服务器发送响应,最后发送FIN信号,dispatcher.rs收到了服务器的FIN信号,但是并没有通知客户端,这样客户端会一直等待http请求结束,直到timeout,导致http请求时间变长,如果客户端设置了请求超时,并且超时时间大于timeout,那么请求会失败。
解决:
read关闭时,必须close wirte
tcp的上行和下行应该互不干扰,shutdown函数可以只关闭上行或者下行,如果上行关闭,下行依然可以接收数据
问题1:不能假设https流量一定是443端口,也不能假定443端口的一定是https流量。
问题2:只对https进行了sniff
问题3:如果fakedns没有记录,http流量不能正确route
解决:
应该只对请求的数据进行sniff,不应该判断端口(http也不一定肯定是80端口),应该对http,https等协议都做sniff。
有些应用会缓存dns结果,考虑以下场景:
leaf重启后,ip和域名的映射关系也丢失了,会导致各种问题
总的来说leaf还是一个很好的项目,无奈rust不熟悉,暂时无法修改,只能口嗨一下
Beta Was this translation helpful? Give feedback.
All reactions