多個 SSH 服務(wù)復(fù)用同一端口

2024-12-30 11:48 更新

通過使用 tcpmux 類型的代理,您可以實現(xiàn)多個 SSH 服務(wù)通過同一端口進(jìn)行暴露。這種方法還適用于任何支持 HTTP Connect 代理連接方式的客戶端,以實現(xiàn)端口的復(fù)用。

步驟

  1. 在具有公網(wǎng) IP 的機(jī)器上部署 frps修改 frps.toml 文件以包含以下內(nèi)容(這里使用了最簡化的配置):
    bindPort = 7000
    tcpmuxHTTPConnectPort = 5002
    
  2. 在內(nèi)網(wǎng)機(jī)器 A 上部署 frpc創(chuàng)建 frpc 配置文件,例如 frpc.toml,然后將以下內(nèi)容添加到配置文件中:
    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. 在內(nèi)網(wǎng)機(jī)器 B 上部署另一個 frpc創(chuàng)建 frpc 配置文件,例如 frpc.toml,然后將以下內(nèi)容添加到配置文件中:
    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 訪問內(nèi)網(wǎng)機(jī)器 A使用 SSH ProxyCommand 訪問內(nèi)網(wǎng)機(jī)器 A,假設(shè)用戶名為 test。

使用以下命令:

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

要訪問內(nèi)網(wǎng)機(jī)器 B,只需更改域名,假設(shè)用戶名仍然為 test:

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

通過按照以上步驟進(jìn)行配置,您可以實現(xiàn)多個 SSH 服務(wù)復(fù)用同一端口,以便在具有公網(wǎng) IP 的機(jī)器上進(jìn)行訪問。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號