私のLinux VMには2つの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
答え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