温馨提示×

SQL Server在Ubuntu上如何配置网络

小樊
32
2025-12-22 01:15:10
栏目: 云计算

Ubuntu 上 SQL Server 网络配置实操指南

一 环境准备与基础检查

  • 确认系统版本与网络工具:lsb_release -a、ip a、ping 网关IP、ss -lntp | grep 1433。
  • 安装 SQL Server(如尚未安装):导入 GPG 密钥与仓库后执行 sudo apt-get update && sudo apt-get install -y mssql-server,运行 sudo /opt/mssql/bin/mssql-conf setup 设置 SA 密码与版本,最后 sudo systemctl start mssql-server && sudo systemctl enable mssql-server。
  • 安装命令行工具便于本地验证:sudo apt-get install -y mssql-tools unixodbc-dev,并将 /opt/mssql-tools/bin 加入 PATH,便于使用 sqlcmd 连接测试。

二 配置 SQL Server 监听与端口

  • 启用 TCP/IP 并固定端口为 1433
    sudo /opt/mssql/bin/mssql-conf set network.tcpip-enable true
    sudo /opt/mssql/bin/mssql-conf set network.tcpip-port 1433
    sudo systemctl restart mssql-server
  • 本地连通性自检:
    sqlcmd -S localhost,1433 -U SA -P ‘<你的SA密码>’ -Q “SELECT 1”
    ss -lntp | grep 1433 应能看到 sqlservr 监听在 0.0.0.0:1433 或 :::1433。

三 配置 Ubuntu 主机网络与防火墙

  • 静态 IP(Netplan,适用于 Ubuntu 18.04/20.04/22.04 等使用 netplan 的版本):
    1. 查看配置:ls /etc/netplan/*.yaml(如 00-installer-config.yaml)。
    2. 编辑示例(按需替换 addresses、gateway4/gateway6、nameservers):
      network:
      version: 2
      ethernets:
      eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers: { addresses: [8.8.8.8, 1.1.1.1] }
    3. 应用:sudo netplan apply(远程环境建议先准备控制台,避免断连)。
  • 防火墙放行 SQL Server 端口:
    sudo ufw allow 1433/tcp
    sudo ufw status(确认规则生效)。

四 远程连接与安全加固

  • 从客户端连接:在 SSMS 或 sqlcmd 中使用 “服务器名/IP,1433”,身份验证选择 SQL Server 身份验证,使用 SA 或自建登录名。
  • 创建示例登录与授权(在 sqlcmd 中执行):
    CREATE LOGIN [dbadmin] WITH PASSWORD = ‘StrongP@ssw0rd!’;
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [dbadmin];
    – 或仅授予某库权限:
    USE [YourDB]; CREATE USER [dbadmin] FOR LOGIN [dbadmin];
    EXEC sp_addrolemember ‘db_datareader’, ‘dbadmin’;
    EXEC sp_addrolemember ‘db_datawriter’, ‘dbadmin’;
  • 安全建议:
    • 避免使用 SA,创建最小权限的专用登录;
    • 将端口改为非默认并限制来源 IP;
    • 启用 TLS 加密(生产环境强烈建议)。

五 常见问题排查清单

  • 服务未监听或被占用:systemctl status mssql-server;ss -lntp | grep 1433;必要时 lsof -iTCP:1433 -sTCP:LISTEN。
  • 端口未放行:sudo ufw status;云主机还需检查安全组/NACL 是否允许入站 1433/tcp
  • 监听地址受限:确认已设置 network.tcpip-enable 与 network.tcpip-port 并重启服务。
  • 客户端连通性:
    • 本机:sqlcmd -S localhost,1433 -U SA
    • 远程:sqlcmd -S <服务器IP>,1433 -U <登录名>
    • 端口探测:nc -vz <服务器IP> 1433 或 telnet <服务器IP> 1433
  • 日志定位:/var/opt/mssql/log/errorlog 可快速发现绑定失败、认证错误等根因。

0