Iptables
將 SSH 流量轉發到遠端伺服器
在我的 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
,但僅用於本地 IP192.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