Встроенное время Bash возвращает статус завершения команды. Вы можете довольно легко проверить это с помощью time false
; после этого echo $?
печатает 1, как и ожидалось. Вы также можете проверить что-то с другим кодом выхода, чтобы убедиться, что другие коды сохранены:
$ time bash -c 'exit 42'; echo "Exit code: $?"
real 0m0.002s
user 0m0.000s
sys 0m0.000s
Exit code: 42
Давайте пока проигнорируем ssh
и сделаем что-нибудь более простое.
Если да
telnet localhost 143
затем выполняется подключение от localhost
кlocalhost
Если вместо этого
telnet my.ip.address 143
затем выполняется подключение от my.ip.address
кmy.ip.address
В обоих случаях мы подключаемся к порту 143 на одной и той же машине, но исходный адрес меняется. Итак, мы видим, что целевой IP-адрес меняет исходный IP-адрес.
То же самое относится и к переадресации портов ssh
.
В первой версии вы подключаетесь к localhost
, поэтому источником является localhost
. Во второй версии вы устанавливаете соединение с основным IP-адресом сервера (и IP-адресом remote.host.net ), поэтому источник находится с этого IP-адреса.
Это не ssh
конкретная проблема; так обычно работает IP-маршрутизация.