隧道代理ip使用

简介

隧道代理(Tunnel Proxy)是一种特殊的代理服务,它的工作方式是在客户端与远程服务器之间建立一条"隧道"。这种技术常被用来绕过网络限制或提高网络安全性。

主要功能

  • IP地址变换:隧道代理能够改变客户端的IP地址,使得客户端访问的目标服务器看到的是代理服务器的IP地址,而不是客户端的真实IP地址。
  • 数据加密传输:某些隧道代理服务会提供加密功能,确保数据在客户端与远程服务器之间的安全传输。
  • 动态IP池管理:隧道代理通常由云服务提供支持,具有动态分配IP地址的能力,这意味着可以频繁更换IP以避免被目标服务器封锁。
  • 简化开发流程:对于开发者来说,使用隧道代理可以减少管理IP池的复杂度,从而降低开发成本。

使用

注册隧道代理服务

https://www.kuaidaili.com/?ref=nes3yyyaelhd

互联网上有许多代理服务商,这个以其中一个举例

选择对应方式

按个人所需购买不同方式,若仅为短时非高频使用,建议购买按量付费模式。

代码实现

这里以java语言为例

jsoup

java 复制代码
import java.io.IOException;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class TestProxyJsoup {
    // 用户名密码, 若已添加白名单则不需要添加
    final static String ProxyUser = "t****";
    final static String ProxyPass = "*****";

    // 隧道域名、端口号
    final static String ProxyHost = "***.***.com";
    final static Integer ProxyPort = '****';

    public static String getUrlProxyContent(String url) {
        Authenticator.setDefault(new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(ProxyUser, ProxyPass.toCharArray());
            }
        });

        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ProxyHost, ProxyPort));

        try {
            // 此处自己处理异常、其他参数等
            Document doc = Jsoup.connect(url).followRedirects(false).timeout(3000).proxy(proxy).get();
            if (doc != null) {
                System.out.println(doc.body().html());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

    public static void main(String[] args) throws Exception {
        // 目标网站
        String targetUrl = "https://***.***.com/****";

        // JDK 8u111版本后,目标页面为HTTPS协议,启用proxy用户密码鉴权
        System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");

        getUrlProxyContent(targetUrl);
    }
}

hutool

java 复制代码
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpRequest;

// 代理验证信息
class ProxyAuthenticator extends Authenticator {
    private String user, password;

    public ProxyAuthenticator(String user, String password) {
        this.user     = user;
        this.password = password;
    }

    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(user, password.toCharArray());
    }
}


public class TestProxyHutool {
    // 用户名密码, 若已添加白名单则不需要添加
    final static String ProxyUser = "t****";
    final static String ProxyPass = "*****";

    // 隧道域名、端口号
    final static String ProxyHost = "***.***.com";
    final static Integer ProxyPort = '*****';

    public static void main(String[] args) {
        // 目标网站
        String url = "https://***.***.com/***";
        // JDK 8u111版本后,目标页面为HTTPS协议,启用proxy用户密码鉴权
        System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
        // 设置请求验证信息
        Authenticator.setDefault(new ProxyAuthenticator(ProxyUser, ProxyPass));

        // 发送请求
        HttpResponse result = HttpRequest.get(url)
                .setHttpProxy(ProxyHost, ProxyPort)
                .timeout(20000)//设置超时,毫秒
                .execute();
        System.out.println(result.body());
    }
}

结束

相关推荐
FPGA_Linuxer27 分钟前
xilinx hbm ip运用
网络·网络协议·tcp/ip
i嗑盐の小F32 分钟前
【 ACM独立出版,见刊后1个月检索!!!】第二届通信网络与机器学习国际学术会议(CNML 2024,10月25-27)
网络·图像处理·人工智能·深度学习·算法·机器学习·计算机视觉
金灰1 小时前
wx小程序渗透思路
网络·windows·安全·小程序·notepad++
mit6.8241 小时前
[Linux#49][UDP] 2w字详解 | socketaddr | 常用API | 实操:实现简易Udp传输
linux·网络·c++·笔记·后端
南叔先生1 小时前
Linux 性能优化 copy
网络·数据库·php
不悔哥2 小时前
openwrt wsdd模块介绍
linux·c语言·网络·tcp/ip·智能路由器
SUGERBOOM2 小时前
华为eNSP使用详解
网络·华为
洁洁!2 小时前
【计算机网络】数据链路层深度解析
网络·网络协议·计算机网络
Aomnitrix4 小时前
网络协议全景:Linux环境下的TCP/IP、UDP
linux·运维·网络·c++·网络协议·tcp/ip·运维开发
哲伦贼稳妥4 小时前
网络运维故障处理
运维·网络·经验分享·职场和发展