正向socks代理实现多路复用 · Issue #12 · EddieIvan01/iox · GitHub

您所在的位置:网站首页 socks5加密 正向socks代理实现多路复用 · Issue #12 · EddieIvan01/iox · GitHub

正向socks代理实现多路复用 · Issue #12 · EddieIvan01/iox · GitHub

2023-01-12 17:42| 来源: 网络整理| 查看: 265

思考了一下,换成字母标记也不够好,建议重新设计UI逻辑,因为加密和多路复用功能是 iox 私有的通讯协议,即 iox 两端连接的协议才支持加密和多路复用,并且在 iox 需要两端连接时,由于多路复用的优势明显应默认开启,那有两个方案:

方案一 (即目前上面讨论的方案) iox 自动识别连接端是否 iox,自动启用多路复用,检测是否有 -k 参数存在则自动对 iox 间尝试进行加密通讯 但是存在 正反向 socks 不统一的问题,(并且反向 socks 还需要按顺序。。。我老是记错),如:

反向 socks 使用 ./iox proxy -l @*0.0.0.0:9999 -k ff ./iox fwd -l 1080 -r @*1.1.1.1:9999 -k ff 正向 socks 使用 ./iox proxy -r 1.1.1.1:9999 ./iox proxy -l 9999 -l 1080 // notice, the two port are in order

方案二 类似 socat 一样,为连接端标记类型,这样所见即所得,并且不区分两端参数左右顺序

两端的链接格式,类似 socat :[ip:] mark: tcp -- TCP 连接(协议命名,也方便后续如果有 udp 协议等) tcp-l -- TCP 监听 proxy -- proxy 监听 (因为 proxy 暂时只有监听,后续要是考虑支持 socks 连接转发隧道,则可以恢复 proxy-l 的命名; 如果还考虑更多的 socks4a 等协议,建议 proxy 改名为 socks5) iox -- 这里说的是 iox 自己的通讯协议连接,即 `-k` 可选的加密并默认的就是多路复用协议(也可以通过添加参数禁用多路复用),但是这是 iox 自己的协议,命名暂未想到好的这里称叫 iox... iox-l -- iox 私自可加密的多路复用协议监听 TCP 端口转发 (没有过多的变化) ./iox fwd -l 8888 -l 9999 => ./iox tcp-l:8888 tcp-l:9999 ./iox fwd -l 8888 -r 1.1.1.1:9999 => ./iox tcp-l:8888 tcp:1.1.1.1:9999 ./iox fwd -r 1.1.1.1:8888 -r 1.1.1.1:9999 => ./iox tcp:1.1.1.1:8888 tcp:1.1.1.1:9999 本地 proxy (没有过多的变化) server: ./iox proxy -l 1080 => ./iox proxy:1080 反向 proxy (不会搞混 socks 是连 9999 还是 1080,`proxy:1080` 已经标记了) server: ./iox proxy -l 9999 -l 1080 => ./iox iox-l:9999 proxy:1080 client: ./iox proxy -r 1.1.1.1:9999 => ./iox iox:1.1.1.1:9999 正向 proxy (其实与反向是相对的,仅 iox 协议两端连接方向发生变化,也清晰知道 socks 是 cilent 端的 1080) server: ./iox proxy -l 0.0.0.0:9999 => ./iox iox-l:9999 client: ./iox fwd -l 1080 -r 1.1.1.1:9999 => ./iox proxy:1080 iox:1.1.1.1:9999 补充说明: -k 参数仅对 iox iox-l 端协议生效 如有必要后续可以补充一个参数,让 iox 自己的协议,关闭多路复用

对比之下,方案一要实现自动检测才能省去标记加密和多路复用的麻烦,并且正反向代理的不统一,两端参数还需要有序要求,暴露出很多设计问题,而方案二简单理解就是给 socat 添加了,两个协议 proxy 和自己的可加密多路复用协议 iox,也同样方便后续的协议支持扩展,建议重新设计使用第二个方案,使用逻辑更加简单,扩展性也更加好~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3