Iptables

將 SSH 流量轉發到遠端伺服器

  • September 23, 2021

在我的 linux VM 上,我有兩個 IP

192.168.11.88 192.168.11.99

我希望 8889 埠上來自 192.168.11.99 的 ssh 流量將流量轉發到埠 22 上的遠端伺服器 172.16.5.80

如何使用 IPTables 實現這一點

謝謝


正如 FelixJN 所建議的那樣。我使用了 IPtables 的 socat 實用程序,以下配置有效,流量轉發到遠端伺服器。

[Unit]
Description=forwards local port 192.168.56.70:8889 to 192.168.56.70:22
After=multi-user.target

[Service]
ExecStart=/usr/bin/socat -lf /var/log/socat-ssh.log TCP-LISTEN:8889,fork,bind=192.168.56.71 TCP:192.168.56.70:22
Restart=On-Failure
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target

對於轉發埠,socat可能是最簡單的

socat TCP-LISTEN:8889,fork,bind=192.168.11.99 TCP:172.16.5.80:22

偵聽埠8889,但僅用於本地 IP 192.168.11.99。將所有傳入流量轉發到172.16.5.80:22


可能的 systemd-service 文件 ( /etc/systemd/system/socat-ssh.service)

[Unit]
Description=forwards local port 192.168.11.99:8889 to 172.16.5.80:22
After=ssh

[Service]
ExecStart=/usr/bin/socat -lf /var/log/socat-ssh.log TCP-LISTEN:8889,fork,bind=192.168.11.99 TCP:172.16.5.80:22
Restart=On-Failure
RestartSec=5

[Install]
WantedBy=default.target

(檢查socat您系統的路徑)

啟用(用於啟動時自動啟動)並啟動(用於首次初始化):

systemctl enable socat-ssh
systemctl start socat-ssh

引用自:https://unix.stackexchange.com/questions/670091