BraveWangDev 2020-08-19
对于一个端口转发命令:
ssh -N -o "ServerAliveInterval 30" -R 30006:localhost:30006 <remote-address>
这个命令的意思是将远程机器上的30006端口,映射到本地机器 localhost:30006的端口。这个命令在win7下面跑没有问题,但是win10下面跑,就总是不能成功。
加上-v -v -v参数查看ssh的输出日志,发现存在read failed, write failed等日志。后面通过网络搜索得到提示,是不是localhost的解析不对。
执行 ping localhost 命令,发现 localhost 解析成 ::1 这个ipv6地址,查看hosts(c:\windows\system32\driver\etc\hosts)文件,发现确实没有配置localhost的项,并且文件中有说明:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
先不管这些说明,直接在hosts文件中加上127.0.0.1 localhost,然后再执行ping localhost,发现仍然是解析成::1,说明这种方法不行。
最后干脆不管了,直接在上面ssh命令中,用127.0.0.1代替localhost,然后一些就正常了。
1.网络采用网线直连,网络连接方式采用“网络地址转换”,与方法一不同,无需对虚拟机的IP和默认网关进行设置,但需要配置“端口转发”,协议选择“TCP”,主机端口和子系统端口均填写1521,IP均不填;