有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

postgresql Java代理与postgres的连接

有人能帮我或提出解决方案吗?我想从有防火墙的计算机连接到运行postgres服务器的其他计算机。问题是,计算机(客户端)有防火墙,我没有权限配置它,或者打开端口,ping没有响应。PostgreSQL具有开放端口但由于防火墙原因无法从另一台连接到它的计算机(服务器)。我只能通过代理访问计算机

我怎么能用Java编程通过代理远程访问postgres忘记防火墙

Java与代理有连接。但我不知道如何把它与postgres连接起来

        System.getProperties().put( "proxySet", "true" );
        System.getProperties().put( "proxyHost", "67.210.82.198" );
        System.getProperties().put( "proxyPort", "80" );

        URL validateURL = new URL("http://domain.com");
        URLConnection urlConnection = validateURL.openConnection();

        //how put together ???

        Class.forName("org.postgresql.Driver");
        Connection connection =  DriverManager.getConnection("jdbc:postgresql://ipPublica:5432/DataBase","user", "pass"); 

共 (4) 个答案

  1. # 2 楼答案

    这个问题很老了。PostgreSQL邮件列表中也有这样的问题:

    http://archives.postgresql.org/pgsql-jdbc/2010-08/msg00021.php

    那边的答案归结起来是:

    • 穿袜子

    • 如果(大如果!)如果你想破解JDBC驱动程序源代码,你可能会(大“可能”!)能够使用SSL在HTTP代理上工作

    • 伙伴:有人提出了一个ssh隧道

  2. # 3 楼答案

    试一试

    System.setProperty("http.proxyHost", "67.210.82.198");
    System.setPropery("http.proxyPort", "80");
    
    String url = "jdbc:postgresql://host:port/database";
    Properties props = new Properties();
    props.setProperty("user","myUsername");
    props.setProperty("password","myPassword");
    props.setProperty("ssl","true");
    
    Class.forName("org.postgresql.Driver");
    Connection conn = DriverManager.getConnection(url, props);
    

    有关更多信息,请参见java networking & proxies

  3. # 4 楼答案

    那是不可能的。PostgreSQL连接不是HTTP连接。Yo无法对PostgreSQL使用HTTP代理。也许一个袜子代理会做这项工作