写了一个使用 WebSocket 的 Tcp 隧道代理 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zanjie1999
V2EX    程序员

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

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

    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     Solana     932 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 21:36 PVG 05:36 LAX 14:36 JFK 17:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86