• 请不要在回答技术问题时复制粘贴 AI 生成的内容
maladaxia
V2EX  ›  程序员

可不可以在 zmodem 协议之上创建一个 http proxy 呢

  •  
  •   maladaxia · Feb 24, 2023 · 3070 views
    This topic created in 1193 days ago, the information mentioned may be changed or developed.

    公司的服务器需要堡垒机才能登陆, 使用 ssh tunnel 创建 proxy 不太可行.
    但可以用 rz/sz 命令上传下载文件.

    所以我就想, 文件跟 socket 连接在操作系统看来没有什么本质不同.
    那么有没有可能使用 zmodem 协议创建一个 http proxy 呢

    这样就可以在本机上连接服务了, 还有其他用处.

    Supplement 1  ·  Mar 31, 2023
    感谢 @beordle 大佬的 https://github.com/beordle/termtunnel
    正是我想要的
    27 replies    2023-03-30 23:01:38 +08:00
    tairan2006
        1
    tairan2006  
       Feb 24, 2023
    用 frp ?

    不过你最好别瞎折腾,有可能犯法
    maladaxia
        2
    maladaxia  
    OP
       Feb 24, 2023
    @tairan2006 用 frp 立即就会被公司运维发现
    ho121
        3
    ho121  
       Feb 24, 2023
    没研究过,不过盲猜 natcat 可以做到
    maladaxia
        4
    maladaxia  
    OP
       Feb 24, 2023
    @ho121 netcat 需要服务器开放 ip + 端口才能连接上啊,
    因为有堡垒机, 个人电脑不能直接连接上这台服务器
    seanzxx
        5
    seanzxx  
       Feb 24, 2023
    没看明白,为什么堡垒机不能用 ssh tunnel 创建 proxy 呢?
    flush9f
        6
    flush9f  
       Feb 24, 2023
    找现成的 ppp 就可以吧,如果自己写的话,基于 ssh 包一个 tun ,对端直接开 raw 模式就行吧,要不要编码就看有没有命令劫持啥的了。
    ysc3839
        7
    ysc3839  
       Feb 24, 2023 via Android
    不需要 rzsz 呀,建立 ssh 后就有了个基于流的管道了,自己实现个 UDP over “TCP”协议,最简单的就是先发包长度然后发数据,走这个管道发就行了,然后对接 tun 虚拟网卡,一个最简单的 VPN 就完成了。
    darrh00
        8
    darrh00  
       Feb 24, 2023 via iPhone
    用信鸽都能实现 tcp ,http 不在话下
    maladaxia
        9
    maladaxia  
    OP
       Feb 24, 2023
    @seanzxx 你可以理解为用的是修改过的 ssh 登陆的, 功能有限制
    billlee
        10
    billlee  
       Feb 24, 2023 via Android
    远古科技 slirp 可以。
    rrfeng
        11
    rrfeng  
       Feb 24, 2023 via Android
    我记得本站有人发过一个轮子,就是干这个的。但是没搜到。
    kenvix
        12
    kenvix  
       Feb 24, 2023
    @flush9f 已经有 pppossh 这个东西了
    ysc3839
        13
    ysc3839  
       Feb 24, 2023 via Android
    @kenvix 多谢提醒,找到了这个页面,有很多种方式 https://wiki.archlinux.org/title/VPN_over_SSH
    kenvix
        14
    kenvix  
       Feb 24, 2023
    @ysc3839 说实话还是尽量不要考虑在 SSH 上跑 L2 或者 L3 级别的协议,这样会有 TCP over TCP 的问题,会让网速变得很拉垮。
    seers
        15
    seers  
       Feb 24, 2023
    插眼,我司堡垒机是浏览器页面一个插件调起本地 xshell ,也是一直想搞个 ssh 动态端口到本地,但是调起的时候又没地方配置,有时候也需要一个内网环境做些测试,和你需求类似
    maladaxia
        16
    maladaxia  
    OP
       Feb 25, 2023
    @billlee 这种远古科技都快失传了, 网上资料都很少
    ShineyWang
        17
    ShineyWang  
       Feb 25, 2023 via Android
    xshell 支持代理,你看看你堡垒机的文档连接方法看看?
    flush9f
        18
    flush9f  
       Feb 25, 2023
    @kenvix 我想的是 netgraph 。。有这一个楼主想怎么搞都行。。
    flush9f
        19
    flush9f  
       Feb 25, 2023
    @kenvix 这个倒是还好,我现在就是 tcp over tcp, 只要不丢包,和 udp 差别没太大
    maladaxia
        20
    maladaxia  
    OP
       Feb 25, 2023
    @ShineyWang 不可以的, 因为通过堡垒机跳了好几层, 用的不是标准 ssh
    ShineyWang
        21
    ShineyWang  
       Feb 25, 2023 via Android
    @maladaxia xshell 支持多层代理的
    ShineyWang
        22
    ShineyWang  
       Feb 27, 2023
    我前两天刚研究了阿里云盾的直连方法
    阿里云有介绍透明代理:https://help.aliyun.com/document_detail/61503.html

    另外 Xshell 支持 JumpHost,在代理里面可以配置多级代理连接
    你可以试试
    maladaxia
        23
    maladaxia  
    OP
       Feb 27, 2023
    @ShineyWang 感谢回复, 不过 我司的堡垒机是自己研发的, 用的也是修改过的 ssh, ssh tunnel 不可行.
    我是 mac 环境, 也没法用 xshell
    pp3182429
        24
    pp3182429  
       Mar 27, 2023
    最后有方案么?同样遇到可以 ssh 但是无法 tunnel 的情况。不过 szrz 是通的。
    maladaxia
        25
    maladaxia  
    OP
       Mar 27, 2023
    @pp3182429 还没找到可行的方案.
    通过调研, zmodem 是个文本协议. 直接使用 zmodem 协议是不行的.
    不过如果通过修改 zmodem 协议, 或者自己设计一个新的文本协议, 技术上是可行的
    beordle
        26
    beordle  
       Mar 30, 2023   ❤️ 1
    maladaxia
        27
    maladaxia  
    OP
       Mar 30, 2023
    @beordle 哇哦, 这就是我想要的
    Thank you very much!

    本来已经研究好 lszrz 和 zmodem 了, 想自己写一个呢
    这下不用费事了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5838 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 01:45 · PVG 09:45 · LAX 18:45 · JFK 21:45
    ♥ Do have faith in what you're doing.