Я понимаю, что rsync использует порт 22 в качестве порта назначения (так как я использую -e SSH для шифрования моего канала), но тогда, как я и ожидал, исходный порт выглядит как порт со случайным номером намного выше 1000. Я не хотел бы ограничивать скорость, используя флаг --bwlimit=LIMIT а вместо этого определял локальный порт передачи, который устанавливает соединение. Затем, используя мой маршрутизатор, автоматически уменьшите приоритет передачи всех пакетов с этим портом SRC. Надеюсь, что это не замедлит мою обычную веб-активность на других портах во время передачи.

Я уже знаю, как установить QoS на моем маршрутизаторе, мне просто нужно знать, как принудительно установить исходный порт для Rsync. И я уже знаю о параметре --port=PORT , но он устанавливает порт DST, а не порт SRC на пакетах ... Я предполагаю, что реальный вопрос заключается в следующем: есть ли способ указать исходный порт для просто rsync НЕ для всех соединений SSH. У кого-нибудь есть идеи?

1 ответ1

0

Вы не можете сделать это напрямую, но ...

Возможные решения и альтернативные идеи:

  • QoS по классу DSCP или типу обслуживания IPv4. Последние версии клиента ssh имеют опцию IPQoS . Вы можете указать это специально для rsync или глобально для всех неинтерактивных сеансов. (В старых версиях SSH он жестко прописан в "lowdelay" (интерактивный) и "пропускная способность" (не интерактивный).)

  • Опция ssh ProxyCommand , использующая netcat или socat для создания TCP-соединения. Например, прокси-команда socat tcp:%h:%p,bind=192.168.0.1:4242 stdio всегда будет подключаться с указанной пары адрес: порт. Это самый близкий ответ на ваш вопрос ("указать исходный порт rsync"), но, вероятно, не лучшее решение для QoS.

  • QoS по IP-адресу. Вы можете назначить второй IP-адрес своему компьютеру и указать rsync использовать его для передачи (опция ssh BindAddress). Это грязный хак, но может быть применен ко всем программам.


Можно указать все перечисленные выше параметры ssh :

  • через rsync ; -e "ssh -oIPQoS=cs2"

  • через псевдоним, определенный в ~/.ssh/config:

    Host myserver-qos
        Hostname myserver
        IPQoS cs2
    
    $ rsync /path myserver-qos:/path
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .