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”。

相關內容