在 CentOS 上配置 SQL Server 网络的实用步骤
一 基础网络与防火墙
- 开放数据库引擎端口:SQL Server 默认使用 TCP 1433;如部署命名实例或需要浏览器服务,放行 TCP 1434。
- 开放端口并持久化:
sudo firewall-cmd --permanent --zone=public --add-port=1433/tcp
sudo firewall-cmd --permanent --zone=public --add-port=1434/tcp
sudo firewall-cmd --reload
- 验证:firewall-cmd --zone=public --list-ports
- 确保服务与开机自启:
sudo systemctl enable --now mssql-server
sudo systemctl status mssql-server
上述步骤可确保操作系统层网络与防火墙已放行 SQL Server 所需端口。
二 配置 SQL Server 监听与端口
- 启用 TCP/IP 并固定端口:编辑配置文件 /var/opt/mssql/mssql.conf
sudo nano /var/opt/mssql/mssql.conf
在 [network] 段落确保:
[network]
tcpip = true
[tcpip]
port = 1433
- 可选:启用 SQL Browser(便于按名称解析命名实例)
[browser]
enable = true
- 使配置生效:
sudo systemctl restart mssql-server
以上为 Linux 上的 SQL Server 原生配置方式,无需 Windows 上的“SQL Server 配置管理器”。
三 验证与连通性测试
- 本机连通性:
sqlcmd -S 127.0.0.1 -U SA -P ‘YourPassword’
若 localhost 解析异常,优先使用 127.0.0.1 进行本机验证。
- 远程连通性(从另一台主机):
sqlcmd -S <服务器IP或主机名> -U SA -P ‘YourPassword’
- 端口可达性(Linux 端):
ss -lntp | grep 1433
nc -vz <服务器IP> 1433
- 常见问题排查:
- 出现登录超时或 prelogin 延迟,优先用 127.0.0.1 验证本机,再检查防火墙/云安全组/监听地址。
- 命名实例与端口映射问题,可临时启用 1434 并确认客户端使用正确端口或启用 Browser。
以上步骤覆盖本机与远程连接验证,并给出常见超时的快速定位方法。
四 可选与安全加固
- SELinux:若启用 SELinux,可先临时设置为宽容模式排查是否为策略阻断:
sudo setenforce 0(测试用,生产请恢复为 enforcing 并配置合适策略)
- 最小暴露面:仅开放必要端口(如仅 1433),避免使用 1434 暴露不必要的实例信息。
- 强口令与加密:为 SA 设置强密码,生产环境建议启用 TLS 加密传输(另行配置证书与强制加密)。
- 云环境:在云厂商控制台同步放行 1433/TCP(以及需要的 1434/TCP)的安全组规则。
以上为常见加固与排障建议,可提升安全性与可维护性。