-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
重构以支持更多底层的传输协议 #452
Labels
enhancement
New feature or request
Comments
目前我发现IPv4 UDP P2P模式下好像是明文传输的 |
@rainpaper-bs 你是抓的虚拟网卡的包还是物理网卡的包,需要抓物理网卡的包 |
wc,秒回,我看一看 |
@rainpaper-bs 首先这东西是 candy, 不是 caddy. 太多人手滑打错了 其次,这不能说明 candy 往外发的 UDP 不是加密的.如果要判断的话,排除掉所有干扰因素,然后抓物理网卡的包. candy 在 P2P 传输的时候是不会发 ICMP 的,目前只会有 UDP. |
@rainpaper-bs 如果只是为了调试,可以看 debug 日志,里面会写流量转发的路径,其实发送方自己也是不确定流量怎么到接收方的,只能知道把流量发给哪个中间客户端能最快送达 |
az,不确定如何到接收方的话这功能没意义了,还是debug日志看看算了 |
Draft
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
当前的实现,在不考虑 TUN 设备的情况下,数据只会来源于服务端的 Websocket 和 IPv4 UDP 的 P2P,由于数据来源少,直接把流量的收发都放到了 client 里实现了.
这种情况下想要扩展出更多底层协议,会让 client 变得过于复杂,因此要把部分逻辑迁移到其他模块.
暂且把 client 直接处理的流量分为三个部分: TUN, Websocket 和 Peer. 当无法通过 Peer 模块发送时,回退到使用 Websocket 提供的转发功能.client 不直接处理流量,只负责流量在各模块间的转发.
Peer 内部到达指定 Peer 的最短路径,需要在这里面完成对数据的加密伪装或者混淆.对于 UDP 来说,可以使用目前的全加密方案,对于 TCP, 需要考虑全加密过防火墙可能被针对的问题,报文的前端需要有随机的可打印的字符,可以在报文的初始化向量上做手脚,让初始化向量的前两个字节为报文长度,其他字节中一半为随机的可打印字符,另一半为纯随机字符.
The text was updated successfully, but these errors were encountered: