使用WebSocket接口调用IPV6 IP

use*_*858 16 javascript ipv6 websocket google-chrome-extension node.js

[ 我已将此问题标记为由主持人删除,直到我得到回答问题为止 ]

说话时的Node.js(在Ubuntu上,更多的我的JavaScript客户端工作正常,在这里通过的WebSocket接口IPV4的IP地址)的服务器.

即使我的主机提供商已经准备好为我分配IPV4,但我现在改为使用IPV6,因为现在IPV4供应有限.

使用IPV6 IP时出现此错误:

WebSocket连接到'ws:// [2600:3c00 :: f03c:91ff:fe73:2b08]:31333 /'失败:连接建立错误:net :: ERR_ADDRESS_UNREACHABLE

我已经使用工具检查了端口31333是否确实打开:http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-port-scanner.php

我甚至尝试过在IPv6地址中提供解决方案,在internet explorer-10 websocket中给出语法错误 - 即:2600-3c00-0-0-f03c-91ff-fe73-2b08.ipv6-literal.net

我运行此客户端,并且能够在基于Ubuntu的远程服务器上运行时连接到服务器:

var WebSocket = require('ws')
  , ws = new WebSocket('ws://[2600:3c00::f03c:91ff:fe73:2b08]:31333');
ws.on('open', function() {
    ws.send('something');
});
ws.on('message', function(message) {
    console.log('received: %s', message);
});
Run Code Online (Sandbox Code Playgroud)

但是,当我从家用Windows 7运行同一个客户端而服务器是远程Ubuntu时,它无法连接:

> $ node c2.js events.js:85
>       throw er; // Unhandled 'error' event
>             ^ Error: connect ENETUNREACH
>     at exports._errnoException (util.js:746:11)
>     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
Run Code Online (Sandbox Code Playgroud)

我甚至在Google Chrome中运行此代码:

var ws = new WebSocket("ws://[2600:3c00::f03c:91ff:fe73:2b08]:31333");

ws.onerror = function(err)
{ 
    console.log(err);
    alert("Connection is error..."); 
};
Run Code Online (Sandbox Code Playgroud)

但是我得到了同样的错误:

WebSocket连接到'ws:// [2600:3c00 :: f03c:91ff:fe73:2b08]:31333 /'失败:连接建立错误:net :: ERR_ADDRESS_UNREACHABLE websocket.html:37事件

可能是什么问题?

PS:此刻我已经在31333端口停止了服务器.

Min*_*tch 2

Realtek PCIe GBE 系列控制器上未启用 IPv6。如果是的话,ipconfig 结果中将会有一行显示“链路本地 IPv6 地址”。

转至控制面板 > 网络 > 更改适配器设置 > 右键单击​​适配器 > 属性。检查 IPv6 是否打开。