如果是客户端的话,使用ifconfig -a即可得到ip地址,从中即可发现是否拥有了ipv6地址。
- root@ubuntu904:~# ifconfig
- eth2 Link encap:以太网 硬件地址 00:0c:29:20:01:31
- inet 地址:10.20.60.24 广播:10.20.255.255 掩码:255.255.0.0
- inet6 地址: fe80::20c:29ff:fe20:131/64 Scope:Link
- UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
- 接收数据包:58001 错误:0 丢弃:0 过载:0 帧数:0
- 发送数据包:2912 错误:0 丢弃:0 过载:0 载波:0
- 碰撞:0 发送队列长度:1000
- 接收字节:6705622 (6.7 MB) 发送字节:393072 (393.0 KB)
- 中断:19 基本地址:0x2000
root@ubuntu904:~# netstat -anp |grep ssh 如果是服务器端的话,查看sshd服务器是否监控ipv6的22号端口,运行netstat -anp |grep ssh
- tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2536/sshd
- tcp6 0 0 :::22 :::* LISTEN 2536/sshd
或者运行netstat -ln -A inet6 得到开启ipv6的服务,知道了机器是否支持ipv6,下面就可以书写ipv6的跳转了,目标机的ipv6地址为fe80::20c:29ff:fe2b:dfe5,跳转主机的ipv6地址为fe80::20c:29ff:fe92:3f,执行命令:
ssh -L 55555:[fe80::20c:29ff:fe2b:dfe5%eth0]:22 root@fe80::20c:29ff:fe92:3f%eth2
- root@ubuntu904:~ssh -L 55555:[fe80::20c:29ff:fe2b:dfe5%eth0]:22 root@fe80::20c:29ff:fe92:3f%eth2
- root@fe80::20c:29ff:fe92:3f%eth2's password:
- Last login: Sun Nov 27 22:28:29 2011 from 10.20.60.24
- [root@localhost ~]#
- root@ubuntu904:~# netstat -an |grep 55555
- tcp 0 0 127.0.0.1:55555 0.0.0.0:* LISTEN
- tcp6 0 0 ::1:55555 :::* LISTEN
- root@ubuntu904:~# ssh -p 55555 ::1
- root@::1's password:
- Last login: Mon Nov 28 14:29:07 2011 from fe80::20c:29ff:fe92:3f%eth0
- [root@localhost ~]#
在这条跳转命令中eth2是执行命令的主机的网卡,eth0则是跳转机的网卡,这一点很关键。另外附上sftp的在ipv6情况下的命令格式,第一条命令是采用ssh2协议
sftp -oPort=22 root@[fe80::20c:29ff:fe20:131%eth0]
ssh 第一版协议的命令如下:
sftp -1 -oPort=22 root@[fe80::20c:29ff:fe2b:dfe5%eth0],如果报bash: /usr/lib/misc/sftp-server: No such file or directory的错误,则加上-s参数,后面跟server路径,具体如下sftp -1 -oPort=22 -s /usr/libexec/openssh/sftp-server root@[fe80::20c:29ff:fe2b:dfe5%eth0]
telnet的ipv6登录命令如下
$telnet fe80::7a2b:cbff:fe9e:f76d%eth0,eth0也是执行命令的主机出口网卡