ループバック ネットワーク インターフェイスのポート 80 をリダイレクトして、そのポートへのアクセスが実際にポート 8080 に送信されるようにします。
次のコマンドを使用しようとしましたが、アプリケーションが 127.0.0.1:8080 でリッスンしている場合にのみ機能し、127.1.2.3:8080 でリッスンしている場合は機能しません。
sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080
追加も試してみました--source 127.1.2.3/32 --destination 127.1.2.3/32
が、まだ機能しません。
127.0.0.1:8080 でリッスンしているアプリケーションを開くと、リダイレクトが機能します。
ssh remote -L127.0.0.1:8080:192.168.0.3:80
nc 127.0.0.1 80 # works
しかし、127.1.2.3:8080 でリッスンしているアプリケーションを開くと動作しません。
ssh remote -L127.1.2.3:8080:192.168.0.3:80
nc 127.1.2.3 80 # fails
nc: connect to 127.1.2.3 port 80 (tcp) failed: Connection refused
nc 127.1.2.3 8080 # works, so the application is still listening on 8080
127.xxx のポート 8080 を同じ IP のポート 80 にリダイレクトするにはどうすればよいですか?
アップデート: モチベーション
SSH を使用して次のポート転送 (127.1.2.3:80 → 192.168.0.3:80、および 127.1.2.4:80 → 192.168.0.4:80) を実行しようとしています。
ssh remote -L127.1.2.3:80:192.168.0.3:80 -L127.1.2.4:80:192.168.0.4:80
ポート 80 は「特権」ポートであるため、ssh はローカルホスト上でそれを開くことができません。これを回避するには、いくつかの方法があります。
sudo ssh
ただし、ルート アカウントに SSH 設定とキーをコピーする必要はありません。- 機能を使用しますが、パッケージの更新によってこれが機能しなくなる可能性があります。
- 別のポート (例: 8080) を使用します。これは機能しますが、相対 URL 以外の URL は壊れます。
- 特権ポートを非特権ポートに再ルーティングすることが、私がやろうとしていることです。127.0.0.1 の単一のリダイレクトでは機能しますが、127.0.0.1 以外の IP でリダイレクトすると失敗します (上記を参照)。