![网络不可达 - MSSQL](https://linux22.com/image/1481148/%E7%BD%91%E7%BB%9C%E4%B8%8D%E5%8F%AF%E8%BE%BE%20-%20MSSQL.png)
我正在尝试远程连接到 SQL Server 2008。
我能够与本地 IP 地址建立连接(我是使用 freetds 从连接到本地网络的 Linux 操作系统中的终端进行的),并且一切正常。
我想要做的是从一个完全独立的系统访问数据库,而不是连接到本地网络。当我尝试通过公共 IP 访问服务器时,我尝试(但失败了)连接到服务器,该 IP 可从此处获取(SQL Server 配置管理器-> SQL Server 网络配置 -> SQLEXPRESS 协议 -> TCP/IP)- 照片仅供参考,在我的系统中,该 IP 已启用:
当我尝试使用 ping 它时ping6 <my_ip> 1433
,出现以下错误:
connect: Network is unreachable
以下是一些有用的信息:
- 服务器允许远程连接。
- TCP/IP 已启用
- 在SQL Server配置管理器中启用并激活特定ip,并将TCP端口设置为1433。
- 我在防火墙上为端口 1433 和所有网络的 TCP 添加了例外。
- 我还为 sqlservr.exe 添加了防火墙例外
有任何想法吗?
编辑:好的,由于我使用的 IPv6 不是正确的 IP(如指出的那样,它是本地的,而不是公共的),我如何才能获取用于连接的正确 IP?我搜索了相关内容,但我得到的只是如何查找一些本地 IP。
答案1
fe80:: 是 IPv6 链路本地地址,因此不是公共 IP。它们可以在网络内使用,但不能跨路由器使用。
因此,如果您正在使用 fe80::... IP,我确信它不是正确的选择。
啊,这也没有什么意义:
ping6 <我的ip> 1433
因为 ping 不知道端口。尝试使用
$ telnet -6 <我的 IP> 1433
相反,如果您想检查 tcp 连接。
就错误信息而言
连接:网络不可达
如果您的客户端主机没有 IPv6 连接,您也会收到此消息。
在您的客户端上尝试此操作
$ telnet -6 google.com 80
看看您是否可以建立连接或是否出现网络不可达的情况。
答案2
似乎您没有默认路线。
检查一下
# ip -6 route
你应该看到类似这样的内容:
default via 2801:95:1f0:::1 dev bond0 metric 1 mtu 1500 advmss 1440 hoplimit 4294967295
现在您可以 ping6 此 IP 地址(默认网关)并检查您的 ipv6 本地连接。如果您的默认路由是链路本地地址 (fe80::),则需要在 ping6 上输入 -I 以指定使用的以太网设备。
如果这样可以尝试
tracepath6 www.google.com
检查您在哪里停车。