温馨提示×

Debian系统如何配置SQL Server的网络

小樊
38
2025-11-22 23:52:37
栏目: 云计算

Debian 上配置 SQL Server 网络的实用步骤

一 启用 TCP IP 与端口

  • 使用 mssql-conf 启用网络并设定端口(默认端口为 1433):
    • 启用 TCP/IP:sudo mssql-conf set network.tcpip_enabled true
    • 设置监听端口:sudo mssql-conf set network.tcpport 1433
    • 应用并重启:sudo systemctl restart mssql-server
  • 说明:SQL Server on Linux 通过 mssql-conf 完成网络开关与端口设置,无需图形化的“SQL Server 配置管理器”。

二 开放防火墙端口

  • 使用 UFW(若已启用):
    • 允许端口:sudo ufw allow 1433/tcp
    • 启用防火墙:sudo ufw enable
  • 使用 firewalld(若系统采用 firewalld):
    • 永久放行:sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
    • 重载规则:sudo firewall-cmd --reload
  • 建议仅对需要来源网段放行,生产环境避免使用 0.0.0.0/0 的全放开策略。

三 允许远程连接与身份验证

  • 启用远程连接(T-SQL):
    • 执行:EXEC sp_configure 'remote access', 1; RECONFIGURE;
  • 身份验证建议:
    • 在 Linux 上启用混合模式(SQL 身份验证):sudo mssql-conf set security.mode SQL
    • 重启服务:sudo systemctl restart mssql-server
  • 完成后,客户端可用 SA 或具备相应权限的 SQL 登录进行远程连接。

四 监听地址与连通性验证

  • 确认服务与端口监听:
    • 服务状态:sudo systemctl status mssql-server
    • 端口监听:sudo ss -lntp | grep 1433(应看到 sqlservr 监听 0.0.0.0:1433 或指定 IP 的 1433)
  • 本机连通性测试:
    • 命令:sqlcmd -S localhost -U SA -P '<YourPassword>'
  • 远程连通性测试:
    • 命令:sqlcmd -S <服务器IP>,1433 -U SA -P '<YourPassword>'
  • 若使用非默认端口,请在连接字符串中显式指定端口号(例如 ,1433)。

五 常见问题与排查要点

  • 无法远程连接但本机可连:
    • 核对防火墙是否放行 1433/tcp,云主机还需检查安全组/NACL 规则。
    • 确认 mssql-conf 已启用 TCP 并设置了端口,且服务已重启。
  • 端口未监听或被占用:
    • 使用 ss -lntp | grep 1433 检查;若被占用,修改 network.tcpport 为未占用端口并重启。
  • 命名实例与浏览器服务:
    • Linux 上的 SQL Server 通常直接通过 IP,端口 访问;若需按实例名访问,需自行部署并维护实例端口映射,通常不依赖 Windows 上的 SQL Browser(其默认 1434/udp 在 Linux 场景较少使用)。
  • 日志与排错:
    • 查看服务日志:sudo journalctl -u mssql-server -n 100 -f,根据报错信息调整网络与权限配置。

0