SSH:远程端口转发。 - 绑定特权端口

SSH:远程端口转发。 - 绑定特权端口

非常简短和基本的问题,我在网络作业中遇到了麻烦。这是我被要求实现的一点:

  • 配置SSH远程端口转发,将pc1的83端口重定向到s1的8000端口。

为此,我使用了一个简单的

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

您要么需要 root 身份才能绑定 1024 以下的端口,要么有能力CAP_NET_BIND_SERVICE。为了获得它,运行:

 sudo -E -- setpriv --inh-caps +net_bind_service --ambient-caps +net_bind_service --reuid $USERNAME /bin/bash

这会以 root 身份运行该setpriv实用程序,它会切换回您的uid,但会添加该CAP_NET_BIND_SERVICE功能。

答案2

您需要成为 pc1(又名 10.0.1.2)的 root 才能重定向小于 1024 的端口,而不是 ssh_user。

由于如果您登录到 pc1(大概以 root 身份),则可以绑定端口 83,因此从 pc1 启动并通过 ssh 访问 s1 可能会更容易。使用“-L”在本地绑定端口 83,而不是“-R”。

相关内容