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
Uh oh!
There was an error while loading. Please reload this page.
-
最近在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