非常简短和基本的问题,我在网络作业中遇到了麻烦。这是我被要求实现的一点:
- 配置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”。