sqlserver 本地无法通过网络连接,局域网内其他主机却可以连接 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
magicyao
V2EX    程序员

sqlserver 本地无法通过网络连接,局域网内其他主机却可以连接

  •  
  •   magicyao 2024-09-26 09:29:45 +08:00 1647 次点击
    这是一个创建于 380 天前的主题,其中的信息可能已经有所发展或是发生改变。

    sqlserver 本地无法通过网络连接,局域网内其他主机却可以连接

    近期出现了一个奇怪的问题,不确定是哪方面的原因

    服务拓扑

    两台服务器

    1. A 服务器 [ 192.168.5.100 ] :redis 、mongo 、sqlserver 、一个 wcf 服务主要用于缓存更新
    2. B 服务器 [ 192.168.5.150 ] :一些后端服务
    3. A 服务器有两张网卡,之前已经被禁用一张。

    问题情况

    1. wcf 无法连接本地 redis ,后续重启服务器、重启 redis 、重启 wcf 服务莫名其妙可以连接 redis 了,这里应该存在某个网络问题,顺便检查了所有服务的启用情况,都在启用中。

    2. wcf 可以连接 redis 之后,发现无法连接 sqlserver ,遂排查端口占用,redis 无端口占用,发现 wcf 端口被 [ NT Kernel & System ] 这个 system 服务占用,于是修改 wcf 端口,然而还是没有解决这个问题。

    3. 遂排查 sqlserver ,这时候吊诡的情况终于出现了,使用 ssms 进行访问

      1. 计算机名访问 sqlserver 可以
      2. localhost 访问 sqlserver 可以
      3. 127.0.0.10.0.0.0访问 sqlserver 不可以
      4. 192.168.5.100访问 sqlserver 不可以
      5. 在服务器 B 通过192.168.5.100访问服务器 A 的 sqlserver 可以
    4. 补充:之前出现过同样的问题,初步认定为是双网卡导致的,于是禁用了一张网卡,当时这个问题就被解决,现在这个问题再出现,可能也与双网卡有关,但是不知道关系在哪

    问题:如果排查 sqlserver 的时候,仅仅出现前四步可以认定为没有开放远程,但是第五步就……很吊诡了

    后续处理:将 wcf 中 sqlserver 的连接字符串中的 127.0.0.1 修改为 192.168.5.100 ,随后 wcf 顺利运行,但是为什么呢

    第 1 条附言    2024-09-26 14:32:55 +08:00
    还有一些其他的信息可以提供。
    1 、wcf 服务是突然出现故障的,ssms 访问也是。
    2 、ip 配置等都没有问题。
    3 、在 sqlserver 那台机器上有一个 iis 的.net 服务,可以通过一切可用 ip (包含 localhost ,127.0.0.1 ,0.0.0.0 ,192.168.5.100 )去访问该服务,都没有问题
    11 条回复    2024-09-26 19:15:43 +08:00
    billccn
        1
    billccn  
       2024-09-26 10:03:10 +08:00
    防火墙规则查一下?

    还有 SQLServer 是可以设置哪个 IP 监听,没有监听的 IP 用来访问就无效。

    还有可能是有人乱搞路由表
    yuhuai
        2
    yuhuai  
       2024-09-26 10:39:09 +08:00
    去 SQL Server Configuration Manager 网络配置下的 TCP/IP ,IP3,4,5 这几个配置是否 Enabled 和 Active 以及是否正确配置端口号,如果你找不到 Configuration Manager,看这个 https://learn.microsoft.com/zh-cn/sql/relational-databases/sql-server-configuration-manager?view=sql-server-ver16
    zhangeric
        3
    zhangeric  
       2024-09-26 10:55:45 +08:00
    这个应该是再配置管理器对应得 ip 地址没有设置吧.你检查一下 ipall 这个设置了么?
    datocp
        4
    datocp  
       2024-09-26 10:58:47 +08:00
    大家对 sqlserver 这个防火墙有没有深入研究,或者说 sql 自身是不是也有什么重启规则

    公司的 ERP 一直有问题,程序员说是网络问题。。。

    1 。今年的服务器一开始没有上 windows 自带防火墙
    2 。由于一直咬定网络有问题,这次用了移动的 5G 网络来测试,一开始的 7 天一直没问题,似乎一直到我启用了 windows 防火墙,5G cpe 开始反复的出问题。。。就是同事反应一天掉个 3 次线
    3 。后来通过狂 ping 服务器,确实又出现了当天没掉线的情况
    @echo off
    echo 检查网络是否联通来,长时间没反应请点右上角 关闭
    :check
    ping -n 1 192.168.5.34|find "TTL"
    IF ERRORLEVEL 1 goto startConnect
    IF ERRORLEVEL 0 goto check
    pause > nul
    ::这里进行命令的执行等操作,操作的满足条件就是网络通畅
    :startConnect
    echo %time:~0,2%%time:~3,2%%time:~6,2% >>a.txt
    goto check
    pause>nul

    4 。由于用的华为的 s5735 交换机,无线 192.168.5.x 跨 vlan 访问 192.168.1.x 的服务器,最后一直搞不清楚什么问题,不开防火墙也不行啊。
    ::netsh advfirewall reset
    ::netsh advfirewall set allprofiles state off
    netsh advfirewall firewall del rule name="srv_icmp"
    netsh advfirewall firewall del rule name="rv_svchost"
    :::netsh advfirewall firewall del rule name="srv_mssqlt"
    :::netsh advfirewall firewall del rule name="srv_mssqlu"
    netsh advfirewall firewall del rule name="srv_sqlservr"
    ::netsh advfirewall firewall del rule name="srv_sqlbrowser"
    ::
    ::netsh advfirewall firewall add rule name="srv_icmp" protocol=icmpv4:8,any dir=in action=allow
    netsh advfirewall firewall add rule name="srv_icmp" protocol=icmpv4:any,any dir=in action=allow
    netsh advfirewall firewall add rule name="srv_svchost" dir=in action=allow protocol=TCP localport="20,21,49152-65535"
    :::netsh advfirewall firewall add rule name="srv_mssqlt" dir=in action=allow protocol=TCP localport="135,1433,1434,4022"
    :::netsh advfirewall firewall add rule name="srv_mssqlu" dir=in action=allow protocol=UDP localport="1434"
    netsh advfirewall firewall add rule name="srv_sqlservr" dir=in action=allow program= "D:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" enable=yes
    netsh advfirewall firewall add rule name="srv_sqlservr" dir=out action=allow program= "D:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" enable=yes
    ::netsh advfirewall firewall add rule name=srv_sqlbrowser" dir=in action=allow program= "C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe" enable=yes

    5 。上次似乎 sqlserver 本身也有什么 reset 的机制


    至今无法保持长连接,除了狂 ping 以后。反正客户端/软件端/网络/服务器端/防火墙,各种妖怪,至今排除不了这个问题。。。
    cccvno1
        5
    cccvno1  
       2024-09-26 11:44:28 +08:00
    先命令行 ping 下看看 127.0.0.1 能不能被解析
    能解析的话看看 sqlserver 配置管理器网络配置里有没有加 127.0.0.1
    不能的话看看防火墙和 ipv6 这些配置
    magicyao
        6
    magicyao  
    OP
       2024-09-26 14:25:00 +08:00
    @billccn 这个 WCF 程序之前一点问题没有,是突然出现故障的,然后防火墙规则和 sqlserver 管理器里面的 ip 配置是检查过没有问题的,路由表是怎么看?
    magicyao
        7
    magicyao  
    OP
       2024-09-26 14:27:00 +08:00
    @yuhuai 这个 WCF 程序之前一点问题没有,是突然出现故障的,ip 配置刚刚也检查过没问题,通过刚刚的 4 、5 排查是可以推论出不存在这个问题,所以这才是吊诡的地方
    magicyao
        8
    magicyao  
    OP
       2024-09-26 14:28:46 +08:00
    @zhangeric 刚刚有另外检查过,你看 4 、5 条,本机通过 100 无法访问,服务器 b 可以通过 100 访问,所以我才会觉得吊诡
    zhangeric
        9
    zhangeric  
       2024-09-26 14:42:55 +08:00
    @magicyao #8 实在 sqlserver 配置管理器那里找到对应得网络配置里得 tcp/ip,双击打开,弹出得窗口里有个 ip 地址配置页,你可以添加对应得 ip 配置或者直接在 ipall 里配置 1433 端口.
    magicyao
        10
    magicyao  
    OP
       2024-09-26 16:05:09 +08:00
    @zhangeric 就是那里配置的,如果没配置好的话,服务器 b 无法通过 192.168.5.100 去访问的,而且在此之前所有的访问都是没问题的,各个地址都有试过
    billccn
        11
    billccn  
       2024-09-26 19:15:43 +08:00
    @magicyao 命令行: netsh int ipv4 sh route

    另外我在想你说 WCF 端口被占用,应该是它的 TCP 端口共享功能,就是多个程序可以监听同一个 TCP 端口,内核按照他们请求的内容分发到相应的程序。你可以用这个文档里面的 iplisten 和 urlacl 确定一下是不是正常: https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-http

    我有点怀疑是你原先有个 WCF 服务锁死了但进程还在
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2190 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 00:40 PVG 08:40 LAX 17:40 JFK 20:40
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86