NATを実行するときに短期開発接続を許可したいので、次のことを試してください。
$ ssh [email protected] -R 80:localhost:80
低いポートをバインドしようとすると失敗します。
Warning: remote port forwarding failed for listen port 80
setcap 'cap_net_bind_service=+ep' /my/application
そのため、1024より低いポートでリッスンできることがわかりました。だから私はsuders crontabでこれを得ました:
@reboot setcap 'cap_net_bind_service=+ep' /usr/sbin/sshd
しかし、まだポート80をバインドすることは許可されていません。私は何が間違っていましたか?私はnginxを使って8080やiptablesなどをプロキシするつもりですが、なぜ私がやろうとしているのがうまくいかないのか疑問に思います。
ベストアンサー1
@dwurfで説明したように受け入れられた回答、ssh
1024未満のポートのみがユーザーにバインドされますroot
。
socat
それ以外の場合、これは優れたユースケースですroot
。
まず、8080
リモートシステムのポート(または他の許可されたポート)にリモートで転送します。
ssh [email protected] -R 8080:localhost:80
その後、リモートシステムはポートを80
ポートにマッピングします8080
。
sudo socat TCP-LISTEN:80,fork TCP:localhost:8080
メモ:
Dirk Hoffmanの提案に従って、これら2つのコマンドを1行にまとめることができます。
ssh -t [email protected] -R 8080:localhost:80 sudo socat TCP-LISTEN:80,fork TCP:localhost:8080
(パスワード-t
入力に対話型端末が必要な場合はsudo
必須です。)