Внезапно (читай: без изменения каких-либо параметров) моя виртуальная машина netbsd начала работать странно. Симптомы касаются туннелирования ssh.
С моего ноутбука я запускаю:
$ ssh -L 7000:localhost:7000 user@host -N -v
Затем в другой оболочке:
$ irssi -c localhost -p 7000
Отладка ssh говорит:
debug1: Connection to port 7000 forwarding to localhost port 7000 requested.
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug1: channel 2: free: direct-tcpip: listening port 7000 for localhost port 7000, connect from 127.0.0.1 port 53954, nchannels 3
Я попытался также с localhost: 80 подключиться к (удаленному) веб-серверу, с одинаковыми результатами.
Удаленный хост запускает NetBSD:
bash-4.2# uname -a
NetBSD host 5.1_STABLE NetBSD 5.1_STABLE (XEN3PAE_DOMU) #6: Fri Nov 4 16:56:31 MET 2011 root@youll-thank-me-later:/m/obj/m/src/sys/arch/i386/compile/XEN3PAE_DOMU i386
Я немного растерялся. Я попытался запустить tcpdump
на удаленном хосте, и я обнаружил эти «плохой chksum»:
09:25:55.823849 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 67, bad cksum 0 (->3cb3)!) 127.0.0.1.54381 > 127.0.0.1.7000: P, cksum 0xfe37 (incorrect (-> 0xa801), 1622402406:1622402421(15) ack 1635127887 win 4096 <nop,nop,timestamp 5002727 5002603>
Я попытался перезапустить демон ssh безрезультатно. Я еще не перезагружался - возможно, кто-то здесь может предложить другую диагностику. Я думаю, что это может быть либо драйвер виртуальной сетевой карты, либо кто-то рутировал наш ssh.
Идеи ..?
networking
ssh
connection
netbsd
lorenzog
источник
источник
$ ssh -L 7000:127.0.0.1:7000 user@host -N -v -v
. (Вы можете использовать «-v» до 3 раз, чтобы увеличить детализацию.) Кроме того, возможно ли, что ssh был недавно обновлен?ssh -L 7000... -N -v -v
(два v) илиssh -L 7000... -N -v -v -v
.Ответы:
Задача решена:
... очевидно, localhost не понравился удаленному хосту. Тем не менее, удаленный
/etc/hosts
содержит:в то время как интерфейс локальной сети
Вздох. столько за щедрость в 100рп я надел :)
источник
Хотя проблема OP уже решена, я решил поделиться решением этой проблемы, потому что я получил такое же сообщение об ошибке от ssh, и я не нашел никакого решения на других сайтах.
В моем случае мне пришлось подключиться к сервису, который прослушивает только IPv6. Я пытался:
и несколько других способов, но это не сработало. Любая попытка подключения к
http://localhost:51005
вызывает ошибки, подобные этой:channel 2: open failed: connect failed: Connection refused
Решение:
Адрес IPv6 должен быть в квадратных скобках.
источник
Я бы сначала попробовал это.
Вы можете использовать «-v» до 3 раз, чтобы увеличить детализацию.
Я думаю, что это сообщение об ошибке может появиться, если брандмауэр блокирует порт 7000, но вы уже исключили это. (Если более поздние читатели не исключают этого, посмотрите на вывод
netstat --numeric-ports
.)Я думаю, что я мог видеть это сообщение об ошибке давным-давно, когда ssh впервые узнал об адресах IPV6 после обновления. Я могу ошибаться по этому поводу. Если вы хотите поэкспериментировать, попробуйте адрес обратной связи IPV6 «0: 0: 0: 0: 0: 0: 0: 1» (или «:: 1»).
источник
"... очевидно, localhost не понравился удаленному хосту. Тем не менее, удаленный / etc / hosts содержит:"
За исключением того, что вы запускали ssh на клиенте, поэтому localhost не понравился вашему клиенту. Удаленный файл / и т.д. / хосты для удаленных , соединяющими из не входящих соединений.
источник
Я столкнулся с этой же ошибкой при попытке подключиться к mysql на другом сервере через туннель ssh. Я обнаружил, что параметр bind-address в /etc/my.cnf на целевом сервере был связан с моим внешним ip (двойной NIC-сервер), а не внутренним, который я не использовал.
Когда я установил bind-address = 127.0.0.1, я мог успешно использовать мой ssh-туннель следующим образом:
источник
Я столкнулся с этой ошибкой, когда переадресовывал порты с полным доменным именем вместо localhost:
Порт открывался только для localhost, поэтому, чтобы принимать соединения с полностью определенным именем, мне пришлось добавить описание связывающего порта :
что позволило бы соединения из любого места (так что это не так безопасно, используйте его экономно).
источник
Для меня добавление ведущего ":" работает так, что команда в вашем случае будет выглядеть так:
источник
???
В
user@host
этом нет ничего слушать порт 7000, это просто , и это все.источник
Я получил то же сообщение об ошибке:
И причиной была человеческая ошибка - я пытался получить доступ к другому порту на удаленном хосте, чем тот, который я указал.
Просто подумал, что поделюсь этим, хотя, вероятно, это не причина, по которой большинство из вас испытывают эту ошибку.
источник
Для меня я пытался,
ssh -L <port>:<remote server IP>:<port> <login>@<remote server IP>
когда я должен был сделатьssh -L <port>:127.0.0.1:<port> <login>@<remote server IP>
.Я надеюсь, что это поможет кому-то!
источник
Альтернативная интерпретация - в моем случае, вы печатаете неправильно.
Здесь происходит то, что IP-адрес имеет слишком много нулей, поэтому он не является действительным адресом. Поэтому ssh рассматривает его как доменное имя, которое не может быть разрешено. К сожалению!
PS: я дополняю это, чтобы у нас был полный список возможных проблем при устранении тех же симптомов.
источник