Это не ssh клиент, который решает, через который должны пойти пакеты интерфейса TCP, это - ядро. Короче говоря, SSH просит, чтобы ядро открыло соединение с определенным IP-адресом, и ядро решает, какой интерфейс должен использоваться путем консалтинга с таблицами маршрутизации.
(Следующее предполагает, что Вы находитесь на GNU/Linux; общее понятие является тем же для всех Нельдов, но специфические особенности команд для выполнения и способ, которым отформатирован вывод, могут варьироваться.)
Можно отобразить таблицы маршрутизации ядра с маршрутом команд-n и/или IP шоу маршрута.
OpenConnect должен был добавить строку для tun0
интерфейс; соединения с любым адресом, соответствующим той строке, будут направлены через тот интерфейс. Например, выполнение route -n
на моем ноутбуке я получаю следующий вывод:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.30.0.1 0.0.0.0 UG 0 0 0 eth0
10.30.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Это означает, что соединения с хостами в 192.168.122.0/24 (т.е. адресует 192.168.122.0 к 192.168.122.255 согласно нотации CIDR) сеть будут направлены через интерфейс virbr0
; те, которые к 169.254.0.0/16 и 10.30.0.0/24, пройдут eth0
, и что-либо еще (0.0.0.0 строки) будет направлено через eth0 к хосту шлюза 10.30.0.1.
Это возможно, если и только если терминал отправляет различные escape-последовательности за Ctrl+Left по сравнению с Левым. Дело обстоит не так по умолчанию на консоли Linux (по крайней мере, на моей машине). Можно сделать его так путем изменения контурной карты. Точный файл для изменения может зависеть от распределения; на Debian lenny файл для изменения /etc/console/boottime.kmap.gz
. Вам нужны строки как
control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"
Вы могли бы также выбрать те же escape-последовательности в качестве своих X эмуляторов терминала. Для обнаружения, какова управляющая последовательность введите Ctrl+V Ctrl+Left в оболочке; это вставляет (на моей машине) ^[O5D
где ^[
символ ESC. В файле контурной карты, \033
представляет символ ESC.
Конфигурирование приложения в терминале для декодирования escape-последовательности является отдельной проблемой.
Высокий звук ярлыков Emacs-стиля + f, Высокий звук + b работает по умолчанию со всеми readline-приводимыми-в-действие программами командной строки, как оболочки.
Можно установить энергию как редактор командной строки и затем поразить ESC и переход вокруг стиля энергии (вперед, назад, конец, $, 0, и т.д.)
У меня была эта проблема в Debian с пустым ~ / .inputrc
файл. Устранена проблема удалением этого файла.
Это не с контрол + стрелки, но я могу набрать EscB чтобы вернуться на слово назад и EscF чтобы перейти на слово вперед в моем терминале Mac.
"\033O5D"
код, но полностью исключение, где Вы добралисьkeycode 105
иF100
коды от. Кроме того, я добираюсь^[[1;5B
и^[[1;5A
для ctrl+Down и Ctrl+Up. Как я должен обработать1;
часть? – Martin Vegter 20.04.2016, 13:08showkey
программа.1;
часть не отличается от остальных:"\033[1;5B"
и так далее. – Gilles 'SO- stop being evil' 20.04.2016, 13:29keycode 105
может быть найден с помощьюshowkey
. Но где Вы добиралисьF100
? – Martin Vegter 20.04.2016, 13:44