V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zanjie1999
V2EX  ›  程序员

写了一个使用 WebSocket 的 Tcp 隧道代理

  •  
  •   zanjie1999 · 2021-05-11 11:34:12 +08:00 · 4663 次点击
    这是一个创建于 1074 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/zanjie1999/tcp-over-websocket

    本工具能 使用 WebSocket 创建隧道,实现 TCP 流量的端口转发

    具体能干嘛,可以发挥你自己的小宇宙~
    相当于使用只能提供 http Websocket 服务的 CDN 实现 TCP 流量代理

    用 golang 写的
    请合法使用

    20 条回复    2021-05-16 22:05:58 +08:00
    kennylam777
        1
    kennylam777  
       2021-05-11 12:15:43 +08:00
    v2ray websocket 模式可以了解一下
    lostberryzz
        2
    lostberryzz  
       2021-05-11 12:22:56 +08:00
    xray websocket 0rtt 了解一下,楼上的强化版
    zanjie1999
        3
    zanjie1999  
    OP
       2021-05-11 12:29:04 +08:00
    @kennylam777 @lostberryzz
    这对于我的环境并不合适,因为我只需要端口转发(举个🌰转发个 ssh )
    (需要 socks 只需要 ssh -D 再转出来即可)
    araaaa
        4
    araaaa  
       2021-05-11 12:34:41 +08:00
    @zanjie1999 #3 iptables
    chenqh
        5
    chenqh  
       2021-05-11 12:53:24 +08:00
    99 年,NB
    NSAgold
        6
    NSAgold  
       2021-05-11 13:16:04 +08:00 via Android
    其实有现成的 chisel 可以用,我前几天还在折腾。支持直接开个 socks,或者其他的 tcp/udp 端口。
    不过 chisel 的资料确实少,不止中文,英文资料也少,我最后还是靠一个日语博客搞定的😂
    但是 chisel 可以通过 ws/wss 传输 udp 数据,还是挺骚的。
    NSAgold
        7
    NSAgold  
       2021-05-11 13:18:04 +08:00 via Android
    @NSAgold 顺带一提,我的用法是用 chisel,通过 cf 的 cdn,走 wss 传输原先走 tcp 的、会暴露服务器 ip 的 serverstatus 探针的数据。
    Ehco1996
        8
    Ehco1996  
       2021-05-11 13:23:07 +08:00
    欢迎试试我的 @NSAgold

    https://github.com/Ehco1996/ehco

    ---

    @zanjie1999

    很棒哟,有个小建议,build 好的文件不要放在 repo 里
    比较常见的做饭是放到 release 里
    NSAgold
        9
    NSAgold  
       2021-05-11 13:26:50 +08:00 via Android
    @Ehco1996 谢谢 但是目前已经在用 https://github.com/jpillora/chisel 了,短时间内没有折腾的欲望😂😂
    sunny352787
        10
    sunny352787  
       2021-05-11 13:36:59 +08:00
    mian...强迫症血压上升了...
    zanjie1999
        11
    zanjie1999  
    OP
       2021-05-11 13:42:40 +08:00
    @araaaa iptables 并不行,因为中间有高防,只会转发 http 流量(就像 nginx 的 proxy )
    要是直接多级端口转发出来的可以直接 iptables -t nat -A PREROUTING 指定来源 ip 来复用端口
    https://cupinkie.com/iptables-useful-command.html
    zanjie1999
        12
    zanjie1999  
    OP
       2021-05-11 14:21:51 +08:00
    @sunny352787 使用 main 做文件名是为了 go (run|build) 的时候可以不输文件名,至于其他规范嘛没了解过 XD,请多多指教
    zanjie1999
        13
    zanjie1999  
    OP
       2021-05-11 14:29:43 +08:00
    @Ehco1996 #8
    看了下感觉好棒,我好像又做了多余的工程了

    另外编译输出的二进制文件确实是在 release 里,看到的 7z.exe 确确实实只是一个 7zip-Windows 而已,是为了在编译的同时生成用来骗防火墙,假装自己是图片的 zip 合成文件 tcp2ws-zip-linux.png
    sunny352787
        14
    sunny352787  
       2021-05-11 17:04:45 +08:00
    @zanjie1999 你文件名拼写错误...
    shansing
        15
    shansing  
       2021-05-11 17:13:36 +08:00
    v2ray-plugin 是可以独立使用的。
    catsoul
        16
    catsoul  
       2021-05-11 17:32:05 +08:00
    @zanjie1999 人家的意思是应该拼写为 main,你写成了 mian 。这种 typo 应该直接处理掉再提交了,因为现代化的 IDE 都会提示
    zanjie1999
        17
    zanjie1999  
    OP
       2021-05-12 10:08:19 +08:00
    @catsoul 欸我自己都没发现
    abersheeran
        18
    abersheeran  
       2021-05-12 10:37:11 +08:00
    你让我想到了我写的 [websocks]( https://github.com/abersheeran/websocks)……比起 v2ray-over-websocket 没有别的优势,只是配置简单、协议简单,用起来方便。
    zanjie1999
        19
    zanjie1999  
    OP
       2021-05-12 17:02:53 +08:00
    @abersheeran 看了下 wiki 确实简单,star+1
    zbinlin
        20
    zbinlin  
       2021-05-16 22:05:58 +08:00
    我用 websocat
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1021 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:22 · PVG 03:22 · LAX 12:22 · JFK 15:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.