将 SSH 流量转发到远程服务器

将 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 所建议的。我使用 socat 实用程序代替 IPtables,下面的配置有效并且流量转发到远程服务器。

[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

答案1

对于转发端口,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


可能的系统服务文件 ( /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

相关内容