
очень короткий и базовый вопрос, у меня возникли проблемы с домашним заданием по сети. Вот что мне предлагается реализовать:
- Настройте переадресацию удаленного порта SSH, чтобы перенаправить порт 83 компьютера pc1 на порт 8000 компьютера s1.
Чтобы сделать это, я использовал простой
s1:~# ssh -o StrictHostKeyChecking=no -NR 83:127.0.0.1:8000 [email protected] &
Где 10.0.1.2 — это IP-адрес ПК1, однако каждый раз я получаю предупреждение:
Предупреждение: Не удалось выполнить переадресацию удаленного порта для прослушиваемого порта 83
У меня нет запущенных программ, которые бы использовали порт 83, также если я попытаюсь локально (с ПК1) попробовать прослушивать порт 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
Это запускает setpriv
утилиту от имени пользователя root, которая переключается обратно на ваш uid
, но добавляет CAP_NET_BIND_SERVICE
возможности.
решение2
Для перенаправления портов ниже 1024 вам необходимо иметь права root на компьютере pc1 (он же 10.0.1.2), а не ssh_user.
Поскольку вы можете привязать порт 83, если вошли на pc1 (предположительно как root), может быть проще начать с pc1 и ssh на s1. Используйте '-L' для локальной привязки порта 83 вместо '-R'.