You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中通过中间跳转服务器构建远程SQL Server连接字符串

C# 通过跳转服务器连接远程SQL Server实现方案

核心逻辑是先建立本地到跳转服务器的端口转发链路,将本地指定端口的流量转发到目标SQL Server的服务端口,C#程序直接访问本地转发端口即可完成连接,无需额外修改SQL访问逻辑。


方案1:手动配置RDP端口映射(适合开发调试场景)

无需修改代码,仅需提前配置RDP连接参数即可:

  • 打开Windows远程桌面连接工具,点击「显示选项」→ 切换到「本地资源」标签页 → 点击底部「本地设备和资源」区域的「更多」按钮 → 勾选「端口」后点击「添加」
  • 本地端口填写未被占用的端口,例如14330,远程地址填写目标SQL Server的地址+端口,例如192.168.1.100:1433
  • 保持VPN连接、RDP跳转服务器连接处于活跃状态,此时C#的SQL连接字符串直接配置为:
    Data Source=localhost,14330;Initial Catalog=你的数据库名;User ID=SQL登录账号;Password=SQL登录密码;
    即可正常访问目标SQL Server。

方案2:代码集成SSH隧道(适合生产/自动化运行场景)

如果跳转服务器开启了SSH服务(Windows Server也可内置OpenSSH服务端),可以直接在C#代码中自动建立转发链路,无需手动维护RDP连接:

  1. 首先在VS的NuGet包管理器中安装依赖包 SSH.NET
  2. 参考示例代码实现:
using Renci.SshNet;
using System.Data.SqlClient;

// 配置参数
const string JumpServerIp = "跳转服务器公网/ VPN内IP";
const int JumpSshPort = 22;
const string JumpSshAccount = "跳转服务器SSH登录账号";
const string JumpSshPassword = "跳转服务器SSH登录密码";

const string TargetSqlIp = "目标SQL Server在跳转服务器内网的IP";
const int TargetSqlPort = 1433;
const int LocalForwardPort = 14330;

// 建立SSH连接
using var sshClient = new SshClient(JumpServerIp, JumpSshPort, JumpSshAccount, JumpSshPassword);
sshClient.Connect();

if (sshClient.IsConnected)
{
    // 启动本地端口转发
    var forwardedPort = new ForwardedPortLocal("127.0.0.1", (uint)LocalForwardPort, TargetSqlIp, (uint)TargetSqlPort);
    sshClient.AddForwardedPort(forwardedPort);
    forwardedPort.Start();

    // 正常访问SQL Server
    var connectionString = @$"Data Source=localhost,{LocalForwardPort};
                            Initial Catalog=你的数据库名称;
                            User ID=SQL登录账号;
                            Password=SQL登录密码;
                            Connect Timeout=30;";
    using var sqlConnection = new SqlConnection(connectionString);
    sqlConnection.Open();

    // 此处编写你的SQL业务逻辑
    Console.WriteLine("数据库连接成功");

    // 程序退出前释放资源
    forwardedPort.Stop();
}
sshClient.Disconnect();

注意事项

  • 两种方案均需要先保持VPN连接正常
  • 本地转发端口需确认未被其他程序占用
  • 如果跳转服务器不支持SSH,也可通过调用系统命令自动启动带端口映射的RDP连接实现链路自动建立,适配Windows跳转服务器场景

内容的提问来源于stack exchange,提问作者AutomationQA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:24:01