
매우 짧고 기본적인 질문입니다. 제가 겪고 있는 네트워크 숙제에 문제가 있습니다. 이것이 내가 구현하도록 요청받은 요점입니다.
- 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 미만의 포트를 바인딩하려면 루트이거나 해당 기능이 있어야 합니다 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에 로그온한 경우(아마도 루트로) 포트 83을 바인딩할 수 있으므로 pc1에서 시작하고 ssh에서 s1로 시작하는 것이 더 쉬울 수 있습니다. 포트 83을 로컬로 바인딩하려면 '-R' 대신 '-L'을 사용하세요.