Отвечая на другой ваш вопрос: "Почему я не могу получить пакеты на enp0s3?"
Он указывает на локальную сеть 192.168.10.0/24
Таким образом,если у вас нет сервера в локальной сети, который отвечает на запросы о доставке пакетов, вы не получите ничего по этому маршруту.
Это можно сделать с помощью ProxyCommand
, который действует как альтернатива необработанному соединению TCP. Вы можете указать ProxyCommand
в глобальной конфигурации для ssh
(/etc/ssh/ssh_config
), вашей частной конфигурации(~/.ssh/config
)или в командной строке как ssh -o ProxyCommand=…
.
Тривиальное ProxyCommand
— это nc %h %p
или эквивалентное (использование nc
, ncat
, socat
с правильным синтаксисом, все, что может дать вам необработанное TCP-соединение с сервером SSH ). Чтобы поговорить с сервером, ваш ssh
будет писать на стандартный ввод этой команды и читать ее из стандартного вывода. Единственный nc %h %p
почти подобен соединению без ProxyCommand
(, когда ssh
выполняет работу nc
внутри ).
Хитрость в том, что вы можете вставлять фильтры между nc %h %p
и ssh
с обеих сторон. Таким образом, вы можете ограничить соединение. Представьте, что ваши ssh
разговоры через это:
pv -qL 20K | nc %h %p | pv -qL 10K
То, что ssh
отправляет на сервер, ограничивается первым pv
; то, что ssh
получает от сервера, ограничивается вторым pv
.
Чтобы запустить ssh
, который говорит через приведенную выше команду, вызовите:
ssh -o ProxyCommand='pv -qL 20K | nc %h %p | pv -qL 10K' …
Примечания:
С помощью этого метода вы ограничиваете все соединение SSH, все, что через него проходит, все туннели, переадресацию X11, другие сеансы (в случае совместного использования соединения ), все . Вы ограничиваете необработанное TCP-соединение.
Если вы используете ssh -N
, то вы можете захотеть, чтобы pv
не молчали и фактически сообщали о пропускной способности туннеля (с):
ssh -o ProxyCommand='pv -cN out -L 20K | nc %h %p | pv -cN in -L 10K' -ND 8080 user@server
С помощью pv -R
(, вызванного в стороне ), вы можете изменить настройки работающего pv
, таким образом, вы можете отрегулировать газ в любое время. Если вы хотите сделать это, то pv -P
внутри ProxyCommand
будет полезно указать, какой PID принадлежит какому pv
. Подробности см. в man 1 pv
.