CentOS 上配置 SQL Server 网络连接的实用步骤
一 基础网络与防火墙
- 为服务器配置静态 IP,避免地址变化导致客户端无法稳定访问。示例(按实际网卡名调整,如 eth0):
- 编辑配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
- 关键参数:
- BOOTPROTO=static
- IPADDR=192.168.1.100
- NETMASK=255.255.255.0
- GATEWAY=192.168.1.1
- DNS1=8.8.8.8
- ONBOOT=yes
- 使配置生效:sudo systemctl restart network(或使用 nmcli/ifdown&ifup)。完成后用 ip addr 与 ping 验证连通性。
- 放行数据库端口(默认 TCP 1433;如启用命名实例与 SQL Browser,再放行 UDP 1434):
- 开放端口:sudo firewall-cmd --permanent --zone=public --add-port=1433/tcp
- 命名实例可选:sudo firewall-cmd --permanent --zone=public --add-port=1434/udp
- 重载规则:sudo firewall-cmd --reload
- 如启用 SELinux,需允许 SQL Server 网络访问(测试时可临时:sudo setenforce 0;生产环境建议配置正确的 SELinux 策略而非长期关闭)。
二 启用并配置 SQL Server 监听
- 启用 TCP/IP 与端口(两种等效方式,二选一或结合使用):
- 方式 A(mssql-conf,推荐):
- 编辑配置文件:sudo nano /var/opt/mssql/mssql.conf
- 启用网络与端口:
- [network] tcpip = true
- [tcpip] port = 1433
- 如需命名实例可被发现,启用 SQL Browser:
- 重启服务:sudo systemctl restart mssql-server
- 方式 B(T-SQL,动态端口改为固定端口):
- 本地连接后执行:
- exec sp_configure ‘tcp dynamic ports’, ‘’
- exec sp_configure ‘tcp port’, 1433
- RECONFIGURE
- 重启服务:sudo systemctl restart mssql-server
- 说明:
- 默认实例通常使用 1433/TCP;命名实例在不使用 Browser 的情况下,客户端需显式指定端口(如 192.168.1.100,1433)。
三 远程连接与验证
- 本地连通性测试(服务器本机):
- 命令:sqlcmd -S localhost -U SA -P ‘YourPassword’
- 局域网/远程测试(另一台机器):
- 命令:sqlcmd -S <服务器IP或主机名> -U <用户名> -P <密码>
- 如为命名实例且未启用 Browser,使用:sqlcmd -S ,<端口> -U <用户名> -P <密码>
- 连接失败快速排查清单:
- 服务器与客户端网络可达(同一网段/路由正确)。
- 服务器防火墙已放行 1433/TCP(命名实例按需放行 1434/UDP)。
- SQL Server 已启用 TCP/IP 并在 1433 监听(或客户端指定了正确端口)。
- 认证信息正确,且目标数据库对登录用户授权。必要时在 SSMS 或客户端工具中勾选“信任服务器证书”(自签名证书场景)。
四 常见场景与建议
- 固定服务器地址:为数据库服务器配置静态 IP,便于客户端与防火墙策略长期稳定。
- 命名实例与端口:若不想依赖 SQL Browser,在客户端连接字符串中显式指定端口(例如 ,1433)。
- 安全建议:仅开放必要端口;避免使用 SA 账户远程登录,创建最小权限的专用登录;生产环境保持 SELinux 开启并配置合规策略。