將特定連接埠上的流量轉送到另一台電腦的最佳方法是什麼?

將特定連接埠上的流量轉送到另一台電腦的最佳方法是什麼?

我的設定是這樣的:

[client01] <-A-> [server01] <-B-> [server02]

client01server01可以存取(connection )上的連接埠 9300 Aserver01只能存取(連接)9300上的端口server02B透過 SSH。使連接埠上的所有流量都9300轉到server01連接埠9300上的最佳方法是什麼server02

client01我可以使用從到server01的ssh 隧道成功完成此操作server02,但我不想在 上運行 ssh client01。當我從轉發連接埠 9300(打開)server01進行ssh 時,它不起作用 - 我是否使用了錯誤的命令?server02ssh -g -L9300:localhost:9300 server02server01

編輯:新增 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 鏈,以確保允許流量進入。

您還需要堅持不懈地維護該隧道。

相關內容