Это также происходит когда /etc/sshd_config
имеет
AllowTcpForwarding no
набор. Переключите его на yes
позволить передачу TCP.
Я попробовал следующие шаги, которые должны работать, но работают не работает на Mac (перенаправляет текстовые сообщения UDP с порта 20 на порт 29), но вы все равно можете попробовать это:
cd / tmp
mkfifo backpipe
sudo nc -ulk 20 0
echo -n «это тест» | sudo nc -4u -w1 localhost 20
Возможно, использование неверно или специальный файл fifo не работает.
Однако я нашел «более легкий» способ.
gcc -w udp_redirect.c -o udp_redirect
sudo ./udp_redirect 127.0.0.1 20 127.0.0.1 29 &
sudo nc -ul 29
echo «это тест» | sudo nc -4u -w1 localhost 20
Этот тест отправляет текстовые сообщения UDP на порт 20 и следит за тем, как прослушиватель порта 29 в первом терминале печатает сообщения. Вы также можете настроить прослушиватель на порт 20 и видеть, что сообщения НЕТ, все они пересылаются (не дублируются) на порт 29.
Я говорю, что это «проще», потому что двоичный файл udp_redirect
имеет много более простое использование, не требует специального файла FIFO, не требует каналов, не требует утилиты nc
и, самое главное, работает!