突然间(阅读:没有改变任何参数)我的 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
在远程主机上运行,我发现了这些“错误的校验和”:
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。
想法..?
问题解决了:
...显然,远程主机不喜欢“ localhost ”。然而,远程
/etc/hosts
包含:而本地网络接口是
叹。我投入的 100rp 的赏金就这么多了:)
虽然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”。远程 /etc/hosts 文件用于远程连接而不是传入连接。
对我来说,添加前导“:”是有效的,因此在您的情况下命令将如下所示:
我在尝试通过 ssh 隧道连接到另一台服务器上的 mysql 时遇到了同样的错误。我发现目标服务器/etc/my.cnf 中的bind-address 参数绑定到我的外部ip(双网卡服务器)而不是内部,我没有用。
当我设置 bind-address=127.0.0.1 时,我可以成功使用我的 ssh 隧道,如下所示:
我在使用完整域名而不是 localhost 转发端口时遇到了这个错误:
该端口仅为本地主机打开,因此要接受具有完全限定名称的连接,我必须添加绑定端口描述:
这将允许来自任何地方的连接(因此它不是那么安全,请谨慎使用)。
???
在
user@host
7000端口什么都没有监听,很简单,就是这样。就我而言,替代解释是您输入错误。
这里发生的是 IP 地址有一个太多的零,因此不是一个有效的地址。因此 ssh 将其视为无法解析的域名。哎呀!
PS:我对此进行了补充,以便我们在对相同症状进行故障排除时获得可能出现的问题的完整列表。
我收到了同样的错误信息:
原因是人为错误——我试图访问远程主机上与我指定的端口不同的端口。
只是想我会分享这一点,尽管这可能不是你们中的大多数人遇到此错误的原因。