我正在尝试通过 SOCKS 代理使用 ojdbc 驱动程序连接到 Oracle 数据库。我无法在网上找到关于这是否有效的明确答案。
\n\nOracle jdbc 驱动程序是否支持 SOCKS5 代理?似乎表明 18.1 版本应该添加 SOCKS 代理支持,但是,使用 ojdbc8-18.3,驱动程序似乎不支持代理设置,并且最新文档也没有提及。
\n\n这是与我尝试过的类似代码(数据库详细信息已编辑)。
\n\nSystem.setProperty("socksProxyHost", "myProxy");\nSystem.setProperty("socksProxyPort", "1080");\nClass.forName("oracle.jdbc.driver.OracleDriver");\n\ntry (\n Connection con = DriverManager.getConnection(\n "jdbc:oracle:thin:@myServer:1521/mySID", "myUser", "myPwd"\n );\n)\n{\n Statement stmt=con.createStatement();\n\n ResultSet rs=stmt.executeQuery(" select * from my_table ");\n while(rs.next())\n System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getInt(3));\n\xe2\x80\x8b\n} \ncatch (Exception e)\n{\n System.out.println(e);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n在这种情况下,连接成功,但是当我使用Wireshark检查传出流量时,可以看到直接建立了连接。我可以通过将代理设置更改为来进一步验证这一点...
\n\nSystem.setProperty("socksproxyHost", "should not resolve");\nSystem.setProperty("socksproxyPort", "1080");\nRun Code Online (Sandbox Code Playgroud)\n\n...并观察连接仍然建立并且数据返回。
\n\n当使用 Microsoft SQL Server 驱动程序执行相同的操作时,我看到以下错误:
\n\n\n\n\nSQLServerException: 与主机端口 1433 的 TCP/IP 连接失败。错误:“无法连接到 SOCKS 代理:不应该解决。
\n
这显然是 SQL Server 特有的,但我预计 Oracle 也会出现类似的情况。
\n| 归档时间: |
|
| 查看次数: |
2919 次 |
| 最近记录: |