IPv6 地址在 Ubuntu 中不起作用

IPv6 地址在 Ubuntu 中不起作用

使用 echo 服务的 Telnet 连接对于localhost127.0.0.1主机名成功,但对于主机名失败::1

alex@u120432:~$ telnet localhost 7
尝试 127.0.0.1...
已连接到本地主机。
转义字符是‘^]’。
123
123
^]

telnet> q
连接已关闭。
alex@u120432:~$ telnet ::1 7
正在尝试::1...
telnet:无法连接到远程主机:连接被拒绝
alex@u120432:~$

我自己的程序尝试使用 IPv6 地址进行通信也失败了。为什么 IPv6 地址被拒绝?

操作系统:Ubuntu 12.04 32 位。

附加信息:

对于任何 TCP/UDP 服务器-客户端程序(不仅仅是 telnet + echo),我尝试了不同的主机名。假设计算机 IP 地址为 10.90.185.73 (fe80::21b:21ff:fe5e:28af),我测试了以下选项:

localhost-有效
127.0.0.1——有效
::1 – 连接被拒绝
10.90.185.73 - 有效
计算机名称-作品
::ffff:10.90.185.73 - 有效
fe80::21b:21ff:fe5e:28af-连接被拒绝

答案1

flags = IPv6通过在 \etc\xinetd.d\echo 文件中添加行可以解决该问题:

服务回音
{
    禁用 = 否
    类型 = 内部
    id = 回显流
    socket_type = 流
    协议 = tcp
        标志 = IPv6  
    用户 = root
    等待 = 不
}                                                                               


服务回音
{
    禁用 = 否
    类型 = 内部
    id = echo-dgram
    socket_type = dgram
    协议 = udp
        标志 = IPv6  
    用户 = root
    等待 = 是
}                                                                               

答案2

我认为这对你有用...首先xinetd使用此命令进行安装。

root@localhost:~#apt-get install xinetd

然后切换到这个目录

root@localhost:~# cd /etc/xinetd.d/

在名为的文件上创建telnet

打开该文件(telnet)并将该内容复制到该文件

服务 telnet
 { 禁用 = 否
   标志 = 重复使用
   socket_type = 流
   等待 = 不
   用户 = root
  服务器 = /usr/sbin/in.telnetd
log_on_failure += 用户ID
}

然后使用此命令重新启动 xinetd 服务

root@localhost:~# 重启 xinetd 服务

就是这样。

现在检查 telnet

root@localhost:~# telnet 127.0.0.1
尝试 127.0.0.1...
已连接到 127.0.0.1。
转义字符是‘^]’。
Ubuntu 12.04 LTS
本地主机登录:最大
密码:
上次登录:2012 年 11 月 29 日星期四 20:00:24 IST,来自 pts/3 上的 localhost
欢迎使用 Ubuntu 12.04 LTS(GNU/Linux 3.2.0-23-generic-pae i686)

 * 文档:https://help.ubuntu.com/

max@localhost:~$ 退出
登出
外部主机关闭连接。
root@localhost:~# telnet ::1
正在尝试::1...
已连接到::1。
转义字符是‘^]’。
Ubuntu 12.04 LTS
本地主机登录:最大
密码:
上次登录:2012 年 11 月 29 日星期四 20:01:26 IST 从 localhost 登录,pts/5
欢迎使用 Ubuntu 12.04 LTS(GNU/Linux 3.2.0-23-generic-pae i686)

 * 文档:https://help.ubuntu.com/

max@localhost:~$ 退出
登出
外部主机关闭连接。

答案3

该地址并未被拒绝,而是连接被拒绝,因为该地址的回显端口上没有服务器列表。

回显服务器很可能由其管理,xinetd并且会有一个/etc/xinetd.d/echo-stream文件指定它应该监听的端口和地址——阅读man xinetd.conf应该可以帮助您了解如何通过 IPv6 启用它。

相关内容