从不同的路由器连接到 AWS 上的 RDS

Connecting to a RDS on AWS from different routers

这里是新手,

我正在尝试将数据发送到 AWS 上的 RDS。当我尝试从我的住所和附近的大专连接到数据库时,该程序能够读取和写入 MySQL 数据库。当我在办公室或附近的大学使用互联网时,我无法连接……有什么想法吗?我尝试更改端口号,但似乎没有任何影响...

    public int verifyPassword(string employeeName, string password)
    {
        string connStr = "server=endpointonAWS ;user=username;database=DB;port=2001;password=pswrd";
        MySqlConnection conn = new MySqlConnection(connStr);
        try
        {
            Console.WriteLine("Connecting to MySQL...");
            conn.Open();
            Console.WriteLine("Connection Successful");


            string sql = "INSERT INTO DB.employeeVerification (employeeName, password ) VALUES ('" + employeeName + "','" + password + "')";

            MySqlCommand cmd = new MySqlCommand(sql, conn);
            cmd.ExecuteNonQuery();
            Console.WriteLine("Data Transfer Successful");
        }
        catch (Exception ex)
        {

            Console.WriteLine(ex.ToString());
        }

如果您可以从某些位置进行连接而不是其他位置,那么问题几乎可以肯定不在您的代码中,而是在网络中的某个位置。

我能想到3个主要候选人:

  1. DNS 查询失败。检查是否可以在失败的地方将主机名解析为正确的 IP 地址。

  2. 出站过滤本地防火墙。一些企业和大学明确阻止非标准端口上的出站连接。如果它不是 HTTP 或 HTTPS,那么您可能会遇到问题。

  3. AWS 上的入站防火墙。

在这 3 种 DNS 中,DNS 最容易诊断,而出站过滤可能是最难克服的,因为如果您不是网络管理员团队的一员,您可能无权访问防火墙规则。

您可以通过将 HTTP Web 服务放在目标计算机上的端口 443 上并尝试连接到它来测试出站防火墙块。如果它适用于 HTTPS 但不适用于其他端口,那么您可以合理地假设存在防火墙。