1. 安装SQL Server
在Debian上配置网络前,需先完成SQL Server的基础安装。通过Microsoft官方仓库安装,确保版本兼容性:
# 导入微软公钥并注册仓库
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/debian/$(lsb_release -rs)/prod.list)"
# 更新包列表并安装
sudo apt-get update
sudo apt-get install -y mssql-server
# 安装过程中设置SA账户密码(必填)
此步骤为后续网络配置的前提,确保SQL Server服务正常运行。
2. 启用并配置TCP/IP协议
SQL Server默认可能未启用TCP/IP,需通过配置文件或工具手动开启:
/etc/sqlserver/sqlserver.conf,找到[network] section,设置:[network]
tcpip = true
tcpport = 1433 # 默认端口,可自定义(如1434)
sudo mssql-conf set network.tcpip_enabled true
sudo mssql-conf set network.tcp_port 1433
修改后需重启服务生效:sudo systemctl restart mssql-server
此步骤确保SQL Server监听TCP连接,是远程访问的基础。3. 配置防火墙允许SQL Server端口
Debian默认使用ufw防火墙,需开放SQL Server端口(默认1433):
# 允许TCP端口1433
sudo ufw allow 1433/tcp
# 重新加载防火墙规则
sudo ufw reload
若使用iptables,可执行:
sudo iptables -A INPUT -p tcp --dport 1433 -j ACCEPT
防火墙是网络安全的关键,未开放端口会导致远程连接失败。
4. 配置SQL Server允许远程连接
默认情况下,SQL Server仅允许本地连接(localhost),需通过以下步骤开启远程访问:
sqlcmd工具登录SQL Server,执行:sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourStrong@Passw0rd>'
登录后,运行以下SQL命令:EXEC sp_configure 'remote access', 1; -- 启用远程访问
RECONFIGURE; -- 应用配置
ALTER LOGIN sa ENABLE; -- 启用SA账户
ALTER LOGIN sa WITH PASSWORD = '<YourStrong@Passw0rd>'; -- 设置强密码
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'security.mode', 1; -- 1=混合模式,0=Windows模式
RECONFIGURE;
混合模式是远程连接的常见要求,确保非Windows用户可访问。5. 可选:配置SQL Server Browser服务(实例名访问)
若需通过实例名称(如MSSQLSERVER)而非IP地址连接,需启动SQL Server Browser服务:
# 启动服务
sudo systemctl start sqlbrowser
# 设置开机自启
sudo systemctl enable sqlbrowser
# 开放UDP端口1434(Browser服务端口)
sudo ufw allow 1434/udp
此服务将实例名称解析为IP地址和端口,方便客户端连接。
6. 验证网络连接
使用sqlcmd从远程机器测试连接,确保配置正确:
sqlcmd -S <Debian服务器IP>,1433 -U SA -P '<YourStrong@Passw0rd>'
若连接成功,将进入SQL命令行界面,表示网络配置无误。
关键注意事项
netstat -tulnp | grep 1433检查端口占用。/var/opt/mssql/log/errorlog)定位问题,常见原因包括端口未开放、身份验证模式错误。