將 ssh 路由到特定網關

將 ssh 路由到特定網關

我想知道如何強制使用我想要的介面(任何介面、Wi-Fi 或乙太網路)的連接埠 22。
例如路由 *:22 到 Wi-Fi。
我檢查了route命令,但看起來這是不可能的。
任何想法?
歡迎使用 BSD 或 Linux 指令。

答案1

常規路由僅適用於 IP 位址,並不關心傳輸的資料(包括 TCP 或 UDP)。


至少在 Linux 上,你可以使用策略路由為了這:

  1. 新增防火牆規則來標記某些資料包:

    iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 1
    
  2. 使用您所需的網關建立新的路由表:

    ip route add default via 192.168.0.1 dev wlan0 table 42
    
  3. 新增策略規則以對標記的資料包使用新的路由表:

    ip rule add fwmark 1 table 42
    

在 Windows 上,您需要一種不同的方法,例如,告訴程式使用特定的介面。有些程式有「綁定位址」選項,例如 ssh 的-b

ssh -b 192.168.0.42 root@myserver

(我不知道它與多個介面, 儘管。我有預感,可能不會。


最後,您可以新增通往特定伺服器的主機路由(透過 Wi-Fi)。

這可以擴展為透過該伺服器為所有其他連線啟用 SSH 隧道。

相關內容