
我的設定是這樣的:
[client01] <-A-> [server01] <-B-> [server02]
client01
server01
可以存取(connection )上的連接埠 9300 A
。server01
只能存取(連接)9300
上的端口server02
B
透過 SSH。使連接埠上的所有流量都9300
轉到server01
連接埠9300
上的最佳方法是什麼server02
?
client01
我可以使用從到server01
的ssh 隧道成功完成此操作server02
,但我不想在 上運行 ssh client01
。當我從轉發連接埠 9300(打開)server01
進行ssh 時,它不起作用 - 我是否使用了錯誤的命令?server02
ssh -g -L9300:localhost:9300 server02
server01
編輯:新增 server02 只能透過 ssh 存取
答案1
您可以使用 iptables DNAT 規則來執行此操作 - 類似於:
iptables -A PREROUTING -p tcp -d x.x.x.x --dport 9300 -j DNAT --to-destination y.y.y.y:9300
替換為 server01 的 IP 位址x.x.x.x
和 server02 的位址即可y.y.y.y
完成設定。
當然,這一切都假設您在 server01 上執行 iptables。這也假設 server02 正在使用 server01 將流量路由回 Internet。如果 server02 不是,那麼這不會做你想做的事。
根據機器之間僅 SSH 連線進行編輯:
SSH 連接埠轉送的命令列看起來沒問題,只是「L」和「9300」之間需要一個空格。您還需要確保 server01 電腦將接受連接埠 9300 上的入站連線。 檢視過濾器表 ( iptables -L INPUT
) 中的 iptables INPUT 鏈,以確保允許流量進入。
您還需要堅持不懈地維護該隧道。