多个 SSH 服务复用同一端口

通过使用 tcpmux 类型的代理,您可以实现多个 SSH 服务通过同一端口进行暴露。这种方法还适用于任何支持 HTTP Connect 代理连接方式的客户端,以实现端口的复用。具体步骤如下:

1.在具有公网 IP 的机器上部署 frps修改 frps.toml 文件以包含以下内容(这里使用了最简化的配置):

    bindPort = 7000 tcpmuxHTTPConnectPort = 5002

    2.在内网机器 A 上部署 frpc创建 frpc 配置文件,例如 frpc.toml,然后将以下内容添加到配置文件中:

      serverAddr = "x.x.x.x" 
      serverPort = 7000 
      
      [[proxies]] 
      name = "ssh1" 
      type = "tcpmux" 
      multiplexer = "httpconnect" 
      customDomains = ["machine-a.example.com"] 
      localIP = "127.0.0.1" 
      localPort = 22

      3.在内网机器 B 上部署另一个 frpc创建 frpc 配置文件,例如 frpc.toml,然后将以下内容添加到配置文件中:

      serverAddr = "x.x.x.x" 
      serverPort = 7000 
      
      [[proxies]] 
      name = "ssh2" 
      type = "tcpmux" 
      multiplexer = "httpconnect" 
      customDomains = ["machine-b.example.com"] 
      localIP = "127.0.0.1" 
      localPort = 22

      4.通过 SSH ProxyCommand 访问内网机器 A使用 SSH ProxyCommand 访问内网机器 A,假设用户名为 test。使用以下命令:

      ssh -o 'proxycommand socat - PROXY:x.x.x.x:%h:%p,proxyport=5002' test@machine-a.example.com 

      要访问内网机器 B,只需更改域名,假设用户名仍然为 test:

      ssh -o 'proxycommand socat - PROXY:x.x.x.x:%h:%p,proxyport=5002' test@machine-b.example.com

        通过按照以上步骤进行配置,您可以实现多个 SSH 服务复用同一端口,以便在具有公网 IP 的机器上进行访问。

        原文链接

        AcJava,让技术学习更简单!
        我是铭轩,微信:ac_java,欢迎与我随时交流!
        © 版权声明
        THE END
        喜欢就支持一下吧
        点赞15赞赏 分享
        评论 抢沙发

        请登录后发表评论

          暂无评论内容