连接后在“远程端”上绑定隧道 ssh 端口需要哪些权限?错误是“绑定 [127.0.0.1]:没有权限”

连接后在“远程端”上绑定隧道 ssh 端口需要哪些权限?错误是“绑定 [127.0.0.1]:没有权限”

正如许多其他人遇到的那样,我的系统位于“远程” DHCP 路由器后面,出于各种原因,该系统需要使用反向端口映射与“本地”系统可靠地连接 - 基本上是为了备份和维护。

令人高兴的是,我使用 ssh 的出站连接与我的“本地” Fedora 服务器建立连接,一切顺利。

不幸的是,它随后就停止工作了。

有什么变化?本地系统升级了,哦,我不确定 Fedora 的版本,但可能是 28 左右;我刚刚用 Fedora 38 上的新设置将其全部替换。

设置“完全相同”,但显然并非如此!

“远程”系统使用:

ssh -N -R :<port>:localhost:22 <user>@<local_system>

“远程”端看到:

Warning: remote port forwarding failed for listen port <port>

在“本地”方面,/var/log/secure我们看到:

May 30 18:18:38 server1 sshd[45591]: Accepted publickey for <user> from <remote_IP> port 41158 ssh2: RSA SHA256:<some_key>
May 30 18:18:38 server1 sshd[45591]: pam_unix(sshd:session): session opened for user <user>(uid=<uid>) by (uid=0)
May 30 18:18:38 server1 sshd[45593]: error: bind [127.0.0.1]:<port>: Permission denied

好的,那么:权限被拒绝 - 似乎足够清楚!但是什么权限,在哪里?我该如何解决它?

答案1

当前有效的“特权”(因此ssh假定不可用)和“非特权”端口之间的边界可以通过以下命令找到:

cat /proc/sys/net/ipv4/ip_unprivileged_port_start

如果低于该数字,则不要将其用于此目的,高于该数字则没问题。此外,由于措辞方式,人们会认为恰好是该数字的端口也是无特权的,因此也是可以的。

关于此方法的其他方面,例如端口号过大,作者仍不清楚。但是,我的问题已经解决,也许这也会帮助其他人。

相关内容