telnet 某个 IP 1433
在 Windows 7 上,此行不起作用。它说无法建立连接。我 100% 确定服务器已打开此端口。对于我的一个朋友,此行有效。
我怀疑有两个原因:
- 我的 ISP 阻止了这个端口。
- 我的系统阻止了它。
我关闭了防火墙和 Windows 防火墙。我还能做些什么来确保问题与我的系统配置无关?
顺便说一句,我不知道这是否重要,但是
telnet 某个 IP 80
工作正常
编辑
我更换了尝试 telnet 的 IP
<my_ip>
答案1
使用 telnet 是一种非常好且有用的工具,可以跟踪/排除连接故障。
这是我的做法:
a) 在 SQL Server 机器上:telnet localhost 1433 ——这是为了确保可以进行远程连接
b) 在另一台机器上,与 SQL 服务器机器位于同一个本地网络上:telnet 1433 —— 这会告诉您是否有可能访问“机器外”的端口
c) 现在,如果一切正常……这取决于您拥有的工具和访问权限。例 1:是否可以从 SQL Server 所在的防火墙进行 telnet?例 2:是否可以从必须穿过该防火墙的另一个非本地 SQL 系统进行 telnet?
通常你只能通过“b”,然后你必须一步步看三件事:
- SQL Server 所在的防火墙
- 您这边的防火墙硬件(运行 telnet 的地方)
- 运行 telnet 的机器上的本地操作系统防火墙(例如出站过滤器或阻止出站连接的防火墙)
答案2
在 PC 上运行流量嗅探器(如 Wireshark 或 Network Monitor),查看尝试打开 telnet 连接时网络的响应。这将告诉您该端口上的出站流量是否被黑洞化或以其他方式被篡改。
ISP 封锁端口 1433 或带有 Telnet 标记的应用层流量的可能性极小。尝试使用同一 LAN 上的另一台 PC 或设备(如智能手机)来缩小可能性。
答案3
我花了两天时间排查同一个问题:telnet 1433 端口失败。费了好大劲,终于找到问题所在了!
问题在于服务器互联网连接被标识为“公共网络”,而它应该是域网络。
重启NLA服务后(参考域控制器认为它位于公共网络上),网络再次被识别为域网络,然后问题就消失了。我的防火墙设置设置为“域”配置文件,当它是公用网络时,防火墙设置不起作用。
我希望这些信息能够对其他人有所帮助。
答案4
只是为了确定以下查询返回什么
declare @dir nvarchar(4000)
exec master.dbo.xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'SOFTWARE\Microsoft\MSSQLServer\SuperSocketNetLib\Tcp\IPAll',
N'TcpDynamicPorts',
@dir output
select @dir
或者,编辑实例名称后
declare @dir nvarchar(4000)
exec master.dbo.xp_regread
N'HKEY_LOCAL_MACHINE',
N'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.SQL110EXP02\MSSQLServer\SuperSocketNetLib\Tcp\IPAll',
N'TcpDynamicPorts',
@dir output
select @dir