非常に短くて基本的な質問です。 Web 課題に問題があります。これが私が実装するように求められたものです。
- pc1のポート83をs1のポート8000にリダイレクトするようにSSHリモートポート転送を設定します。
このために私は単純なものを使用しました。
s1:~# ssh -o StrictHostKeyChecking=no -NR 83:127.0.0.1:8000 [email protected] &
ここで、10.0.1.2はpc1のIPですが、警告が返されるたびに次のようになります。
警告:ポート83でリッスンしているリモートポート転送に失敗しました。
すでに83を使用している実行中のプログラムはありません。ローカルで(pc1から)ポート83をリッスンしようとすると、これも簡単に実行できます。
注:バインドしようとしているすべての特権ポートでこのエラーが発生します。
答え1
1024 以下のポートをバインドするには、root 権限があるか、CAP_NET_BIND_SERVICE
。これを得るには、次のように実行します。
sudo -E -- setpriv --inh-caps +net_bind_service --ambient-caps +net_bind_service --reuid $USERNAME /bin/bash
これにより、ユーティリティはルートとして実行され、setpriv
ユーザーのユーティリティに戻りますが、機能が追加されuid
ますCAP_NET_BIND_SERVICE
。
答え2
ssh_userの代わりに1024未満のポートをリダイレクトするには、pc1(別名10.0.1.2)からルートである必要があります。
pc1にログインしている場合(おそらくrootとして)、ポート83をバインドできるため、pc1から起動してSSHを介してs1にアクセスするのが簡単になります。ポート83をローカルにバインドするには、-Rの代わりに-Lを使用してください。