1
百度“有代理”,打开网站。单击选择下面“最新代理”中的第一行 “05月07日 最新代理ip地址大全”。
2
打开后会看到网页上有很多代理IP地址。
3
选择国内的一个代理服务器作为演示,如图,注释的是广东电信。
END
方法/步骤2 设置代理服务器并访问
1
打开傲游云浏览器,单击左上角的用户图标,在弹出菜单中点击“设置”。
2
跳出设置窗口,选择左侧菜单项中的“代理服务器”
3
在 “代理服务器设置” 中选择 “使用自定义代理”,点击添加。
4
在跳出窗口填写代理服务器信息,如图所示,填完然后单击确定。注意:14.29.117.37:80@HTTP 这是演示用的代理IP,其中14.29.117.37即为地址,80为端口,HTTP为类型,其中用户名和密码不用填。
5
添加成功,由于代理服务器里面只有这一个,所以被默认使用。如果含有多个代理服务器,则需要先选中要使用的服务器,再单击默认。
6
接下来就是测试是否成功啦。百度“ip”,在搜索结果中可以看到,本地ip已经变成了代理服务器ip。
7
设置代理成功。
public class MysqlProxyServer {private static final Logger logger = LoggerFactory.getLogger(MysqlProxyServer.class)
public static void main(String[] args) {
Vertx.vertx().deployVerticle(new MysqlProxyServerVerticle())
}
public static class MysqlProxyServerVerticle extends AbstractVerticle {
private final int port = 3306
private final String mysqlHost = "10.10.0.6"
@Override
public void start() throws Exception {
NetServer netServer = vertx.createNetServer()//创建代理服务器
NetClient netClient = vertx.createNetClient()//创建连接mysql客户端
netServer.connectHandler(socket ->netClient.connect(port, mysqlHost, result ->{
//响应来自客户端的连接请求,成功之后,在建立一个与目标mysql服务器的连接
if (result.succeeded()) {
//与目标mysql服务器成功连接连接之后,创造一个MysqlProxyConnection对象,并执行代理方法
new MysqlProxyConnection(socket, result.result()).proxy()
} else {
logger.error(result.cause().getMessage(), result.cause())
socket.close()
}
})).listen(port, listenResult ->{//代理服务器的监听端口
if (listenResult.succeeded()) {
//成功启动代理服务器
logger.info("Mysql proxy server start up.")
} else {
//启动代理服务器失败
logger.error("Mysql proxy exit. because: " + listenResult.cause().getMessage(), listenResult.cause())
System.exit(1)
}
})
}
}
public static class MysqlProxyConnection {
private final NetSocket clientSocket
private final NetSocket serverSocket
public MysqlProxyConnection(NetSocket clientSocket, NetSocket serverSocket) {
this.clientSocket = clientSocket
this.serverSocket = serverSocket
}
private void proxy() {
//当代理与mysql服务器连接关闭时,关闭client与代理的连接
serverSocket.closeHandler(v ->clientSocket.close())
//反之亦然
clientSocket.closeHandler(v ->serverSocket.close())
//不管那端的连接出现异常时,关闭两端的连接
serverSocket.exceptionHandler(e ->{
logger.error(e.getMessage(), e)
close()
})
clientSocket.exceptionHandler(e ->{
logger.error(e.getMessage(), e)
close()
})
//当收到来自客户端的数据包时,转发给mysql目标服务器
clientSocket.handler(buffer ->serverSocket.write(buffer))
//当收到来自mysql目标服务器的数据包时,转发给客户端
serverSocket.handler(buffer ->clientSocket.write(buffer))
}
private void close() {
clientSocket.close()
serverSocket.close()
}
}
}
测试一下
try {
Class.forName(name)//指定连接类型
Connection conn = DriverManager.getConnection(url, user, password)//url为代理服务器的地址
PreparedStatement pst = conn.prepareStatement("select * from test")//准备执行语句
ResultSet resultSet = pst.executeQuery()
while (resultSet.next()) {
System.out.println(resultSet.getLong(1) + ": " + resultSet.getString(2))
}
} catch (Exception e) {
e.printStackTrace()
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)