我想知道如何強制使用我想要的介面(任何介面、Wi-Fi 或乙太網路)的連接埠 22。
例如路由 *:22 到 Wi-Fi。
我檢查了route
命令,但看起來這是不可能的。
任何想法?
歡迎使用 BSD 或 Linux 指令。
答案1
常規路由僅適用於 IP 位址,並不關心傳輸的資料(包括 TCP 或 UDP)。
至少在 Linux 上,你可以使用策略路由為了這:
新增防火牆規則來標記某些資料包:
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 1
使用您所需的網關建立新的路由表:
ip route add default via 192.168.0.1 dev wlan0 table 42
新增策略規則以對標記的資料包使用新的路由表:
ip rule add fwmark 1 table 42
在 Windows 上,您需要一種不同的方法,例如,告訴程式使用特定的介面。有些程式有「綁定位址」選項,例如 ssh 的-b
:
ssh -b 192.168.0.42 root@myserver
(我不知道它與多個介面, 儘管。我有預感,可能不會。
最後,您可以新增通往特定伺服器的主機路由(透過 Wi-Fi)。
這可以擴展為透過該伺服器為所有其他連線啟用 SSH 隧道。