精华内容
下载资源
问答
  • 代理服务器实际上是一台服务器,介于浏览器和你要访问的网站...代理服务器按用途分类可以分成以下几种类型。 1、Http代理:最常用的代理代理客户机的http访问,主要代理浏览器访问网页,它的端口一般为80、8080、31.

    image.png

    代理服务器实际上是一台服务器,介于浏览器和你要访问的网站之间。当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器中取回网页,而是首先向代理服务器发出请求,由代理服务器到要访问的网站上取回网页,然后再传送给你的浏览器。所以当你用代理服务器浏览时,网站记录下的是代理服务器地址,不会记录下你的IP地址的!目前网上的代理服务器很多,大都是免费的。

    代理服务器按用途分类可以分成以下几种类型。

    1、Http代理:最常用的代理,代理客户机的http访问,主要代理浏览器访问网页,它的端口一般为80、8080、3128等。

    2、SSL代理也叫HTTPS代理,支持最高128位加密强度的http代理,可以作为访问加密网站的代理。加密网站是指以https//开始的网站。ssl的标准端口为443。

    3、HTTP CONNECT代理:允许用户建立TCP连接到任何端口的代理服务器,这种代理不仅可用于HTTP,还包括FTP、IRC、RM流服务等。

    4、FTP代理:代理客户机上的ftp软件访问ftp服务器,其端口一般为21、2121。

    5、POP3代理:代理客户机上的邮件软件用pop3方式收邮件,其端口一般为110。

    6、Telnet代理:能够代理通信机的telnet,用于远程控制,入侵时经常使用。其端口一般为23。

    7、Socks代理:是全能代理,就像有很多跳线的转接板,它只是简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型,socks 4只支持TCP协议而socks 5支持TCP/UDP协议,还支持各种身份验证机制等协议。其标准端口为1080。

    8、TUNNEL代理:经HTTPTunnet程序转换的数据包封装成http请求(Request)来穿透防火墙,允许利用HTTP服务器做任何TCP可以做的事情,功能相当于Socks5。

    9、Ssso代理:代理客户机上的ssso程序访问远程网站,具有SSL加密强度的超级代理,支持socks。

    10、Flat代理:代理客户机上的flatsurfer程序访问远程网站,具有高强度加密数据流的特殊代理,支持socks,最大可设置三次级联,可以设置穿越代理。其端口一般为6700。

    11、SoftE代理:代理客户机上的SoftEther程序访问远程网站,应用虚拟集线器HUB和虚拟网卡技术,具备VPN功能及多种认证方式的代理,符合https协议。

    12、文献代理:可以用来查询数据库的代理,通过这些代理,可以获得互联网的相关科研学术的数据库资源,例如查询Sciencedirect网站(简称SD)、Academic Press、IEEE,SPRINGER等数据库。

    13、教育网代理:指学术教育机构局域网通过特定的代理服务器可使无出国权限或无访问某IP段权限的计算机访问相关资源。

    14、跳板代理:应用于跳板程序,可以看作一种具有动态加密的特殊socks5代理,,也可直接用于PSD软件。

    其端口一般为1813。

    据我所了解,现在市面上有很多代理IP软件、爬虫代理,都提供HTTP、HTTPS、SOCKS5三种模式。

    展开全文
  • 代理几种方式

    万次阅读 2019-05-24 21:56:55
    1.kali中挂代理 执行命令如下所示: root@Kali:~# leafpad /etc/proxychains.conf 可视化显示配置文件信息 在配置文件底部添加代理,一般用SOCKS4和SOCKS5 因为proxyresolv保存在/usr/lib/proxychains3/目录中...

    1.kali中挂代理

    执行命令如下所示:

    root@Kali:~# leafpad /etc/proxychains.conf
    可视化显示配置文件信息
    在这里插入图片描述在配置文件底部添加代理,一般用SOCKS4和SOCKS5
    因为proxyresolv保存在/usr/lib/proxychains3/目录中,而不能被执行。proxyresolv会被proxychains调用,所以将这两个文件放在一个目录中,如/usr/bin

    root@kali:~# cp /usr/lib/proxychains3/proxyresolv /usr/bin/

    展开全文
  • Java代理几种方式

    千次阅读 2019-05-25 21:37:46
    什么是代理 什么是代理呢,其实很好理解,就是不直接访问目标,而是通过一个中间层来访问,就好像下面这样: Java的静态代理 举个例子,如果我们一些水果,比如:香蕉、苹果等,写成Java代码,大概是下面这个样子:...

    什么是代理

    什么是代理呢,其实很好理解,就是不直接访问目标,而是通过一个中间层来访问,就好像下面这样:

    Java的静态代理

    举个例子,如果我们一些水果,比如:香蕉、苹果等,写成Java代码,大概是下面这个样子:

    //Fruit.java
    
    /**
    
    * 水果的接口
    
    */
    
    public interface Fruit {
    
    /**
    
    * 获取水果的名字
    
    */
    
    public String getName();
    
    }
    
    //Apple.java
    
    public class Apple implements Fruit {
    
    @Override
    
    public String getName() {
    
    return "苹果";
    
    }
    
    }
    
    //Banana.java
    
    public class Banana implements Fruit {
    
    @Override
    
    public String getName() {
    
    return "香蕉";
    
    }
    
    }
    

    但是吃水果,你要削皮吧,你不能每个水果都写一个子类,类处理削皮这个事情吧。因此,我们可以做一个代理 ,吃苹果之前,先把它削皮。 就像下面这样,把原来的水果包一层:

    //PeelFruitProxy.java
    
    /**
    
    * 代理,让每个水果去皮
    
    */
    
    public class PeelFruitProxy implements Fruit {
    
    private Fruit mFruit;
    
    public PeelFruit(Fruit fruit) {
    
    this.mFruit = fruit;
    
    }
    
    @Override
    
    public String getName() {
    
    System.out.println("proxt:" + proxy.getClass().getName());
    
    return "去皮的" + mFruit.getName();
    
    }
    
    }
    

    添加了测试类,测试类如下:

    //Main.java
    
    public class Main {
    
    public static void main(String[] args) {
    
    Apple apple=new Apple();//原始的苹果
    
    Banana banana=new Banana();//原始的香蕉
    
    PeelFruitProxy peelApple=new PeelFruitProxy(apple);//代理,添加去皮功能
    
    PeelFruitProxy peelBanana=new PeelFruitProxy(banana);//代理,添加去皮功能
    
    System.out.println(peelApple.getName());
    
    System.out.println(peelBanana.getName());
    
    }
    
    }
    

    以上就是Java的静态代理,简单点说,就是把原来的目标对象包一层,加入新东西再去调用目标本身。 但是如果只是这样的静态代理,一个接口,就需要一个代理,实现起来是不是很繁琐。

    Java的动态代理

    在Java中,有一个干这个事情的类,叫做Proxy,可以直接使用反射方式,代理拦截。 先简单的介绍一下这个类,其实最常用的只有一个静态方法Proxt.newProxyInstance(),是这样的:

    public static Object newProxyInstance(ClassLoader loader,
    
    Class<?>[] interfaces,
    
    InvocationHandler h)
    

    首先我们要实现InvocationHandler,实现其中的invoke方法,在调用目标对象的时候,会先调用到invoke方法,需要实现者在这个方法中,在主动调用被调用者方法。

    //FruitInvocationHandler.java
    
    /**
    
    * 调用方法拦截器
    
    */
    
    public class FruitInvocationHandler implements InvocationHandler {
    
    private Fruit mFruit;
    
    public FruitInvocationHandler(Fruit fruit) {
    
    this.mFruit = fruit;
    
    }
    
    @Override
    
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    
    String result = (String) method.invoke(mFruit, args);//需要在这个方法里面,主动调用被代理的对象。
    
    return "去皮的" + result;
    
    }
    
    }
    

    运行一下:

    //Main.Java
    
    public class Main {
    
    public static void main(String[] args) {
    
    Apple apple = new Apple();
    
    Fruit proxyApple = (Fruit) Proxy.newProxyInstance(Fruit.class.getClassLoader(), new Class[]{Fruit.class}, new FruitInvocationHandler(apple));
    
    System.out.println(proxyApple.getClass().getName());
    
    System.out.println(proxyApple.getName());
    
    Banana banana = new Banana();
    
    Fruit proxyBanana = (Fruit) Proxy.newProxyInstance(Fruit.class.getClassLoader(), new Class[]{Fruit.class}, new FruitInvocationHandler(banana));
    
    System.out.println(proxyApple.getClass().getName());
    
    System.out.println(proxyBanana.getName());
    
    }
    
    }
    

    这个方法,就是生成一个上文中的PeelFruitProxy(当然,我们看到的他名字叫:com.sun.proxy.$Proxy0),动态的生成,避免每次都需要写,这个也是叫他动态代理的原因,因为我们可以在运行时代理任意类。 很多程序中的AOP就是这样实现的,但是我们发现一些特点,newProxyInstance()的第二个参数,是一个interfaces的列表,为啥要有这个这个列表呢?

    因为我们动态生成的代理类,也需要实现接口,这样才方便向下转型,使用其中的方法,不然,生成的类,类名就是com.sun.proxy.$Proxy0这种,并且是在内存中,无法调用生成的方法。 所以,这种动态代理的方法,有一个致命的缺点,那就是被代理的类,必须要实现接口。

    CGLib代理

    cglib is a powerful, high performance and quality Code Generation Library, It is used to extend JAVA classes and implements interfaces at runtime.

    另一个大名鼎鼎的Java代理实现,就是CGLib(Code Generation Library),一个基于ASM的代码生成框架,可以用他来动态生成类,然后实现对方法的拦截,就可以避开JDK的动态代理, 必须要目标类实现接口的问题了。 也就是说,可以用CGLib来生成上文中的PeelFruitProxy。

    简单介绍一下怎么用,首先这个CGLib是一个三方的库,我们要把它依赖进来:

    compile 'cglib:cglib:3.2.8'
    

    最新版本可以在这里看(新版本)[https://github.com/cglib/cglib/releases] 然后我们来试一试,我们来实现一下上面的代理

    //FruitMethodInterceptor.java
    
    /**
    
    * CGLib代理的方法拦截器
    
    */
    
    public class FruitMethodInterceptor implements MethodInterceptor{
    
    @Override
    
    public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
    
    String result = (String) proxy.invokeSuper(obj, args);//主要,这里调用的是父类,也就是说, 生成的类和原始类是继承关系
    
    return "去皮的"+result;
    
    }
    
    }
    
    //Main.java
    
    public class Main {
    
    public static void main(String[] args) {
    
    Enhancer enhancer = new Enhancer();
    
    enhancer.setSuperclass(Apple.class);
    
    enhancer.setCallback(new FruitMethodInterceptor());
    
    Apple apple = (Apple) enhancer.create();
    
    System.out.println(apple.getClass().getName());
    
    System.out.println(apple.getName());
    
    }
    
    }
    

    运行效果如下:

    我们看到,实现了同样的功能,但是,Apple已经不是原来的Apple类了,变成了com.zjiecode.learn.java.proxy.Apple$$EnhancerByCGLIB$$44ade224,没错,我们正真使用的是这个类,而不是原来的Apple了,这个类继承自Apple,最后实现了对Apple类的代理。 这种方式,因为使用的是继承,所以,无需被代理的类实现接口。当然,他也可以通过接口来实现代理。

    总结

    • 第一种代理,就不说了,只适合单一的一个接口的代理,在编译时就决定好了。
    • 第二、三种代理,都是动态时代理 ,但是我们看到也有差别:
    • JDK的动态代理 ,只能实现接口代理,并且是包装的被代理对象(类的实例),也就是说,在代理的过程中,有2个对象,一个代理对象,一个目标对象,目标对象被包装在代理对象里面。
    • CGLib的代理,是继承目标对象,生成了一个新的类,然后来实现代理,这样,在内存中就是有代理对象,没有目标对象了,使用的是直接继承的方式
    • 生成代理类是在运行时,有别于javapoet在编译时生成类。
    展开全文
  • MAC下终端走代理几种方法

    千次阅读 2017-07-07 10:34:35
    转自让终端走代理几种方法,实际使用中因为用得比较多的是github,所以觉得直接改git的配置就行了。用proxychains的方案需要关闭SIP,请自行判断风险。 方法1: 在终端中直接运行命令 export ...

    转自让终端走代理的几种方法,实际使用中因为用得比较多的是github,所以觉得直接改git的配置就行了。用proxychains的方案需要关闭SIP,请自行判断风险。
    方法1:
    在终端中直接运行命令

    export http_proxy=http://proxyAddress:port

    这个办法的好处是简单直接,并且影响面很小(只对当前终端有效)。
    方法2:
    把代理服务器地址写入shell配置文件.bashrc或者.zshrc
    直接在.bashrc或者.zshrc添加下面内容

    export http_proxy="http://localhost:port"
    export https_proxy="http://localhost:port"

    以使用shadowsocks代理为例,ss的代理端口为1080,那么应该设置为

    export http_proxy="http://127.0.0.1:1080"
    export https_proxy="http://127.0.0.1:1080"

    localhost就是一个域名,域名默认指向 127.0.0.1,两者是一样的。
    然后ESC后:wq保存文件,接着在终端中执行source ~/.bashrc
    或者退出当前终端再起一个终端。 这个办法的好处是把代理服务器永久保存了,下次就可以直接用了。
    方法3:
    改相应工具的配置,比如apt的配置

    sudo vim /etc/apt/apt.conf

    在文件末尾加入下面这行

    Acquire::http::Proxy "http://proxyAddress:port"

    保存apt.conf文件即可。关于apt的代理设置可以参考这里
    关于git的代理设置看这里:用shadowsocks加速git clone
    方法4:
    利用proxychains在终端使用socks5代理
    补充:
    如果代理服务器需要登陆,这时可以直接把用户名和密码写进去

    http_proxy=http://userName:password@proxyAddress:port
    展开全文
  • JAVA几种代理总结

    万次阅读 2016-03-31 13:16:31
    JAVA几种代理总结 一 java使用IE代理 (在这之前不能使用过http连接)首先需要设置System.setProperty("java.net.useSystemProxies","true"); 如果设置的是Http代理,然后java URLConnection访问会默认走代理。...
  • 动态代理几种实现方式及优缺点

    千次阅读 2020-02-13 17:32:05
    动态代理:是使用反射和字节码,在运行期间创建指定接口或类的子类以及它的实例...java的动态代理技术的实现主要方式: JDK原生动态代理 CGLIB动态代理 JDK原生动态代理: 使用到一个类Proxy和一个接口Invoc...
  • Linux 让终端走代理几种方法

    千次阅读 2020-09-04 14:29:40
    最近使用终端git的时候觉得速度有点慢,考虑一下是不是可以通过让终端走代理的方式来加快速度,尝试了一下以后确实是可以的。如果只是为了设置git的话可以直接在文章最后找到git的设置代理的方法。 前期准备: 认识...
  • 终端走代理几种方法

    万次阅读 2016-02-09 19:22:15
    当前终端有效 ...把代理服务器地址写入shell配置文件.bashrc或者.zshrc 直接在.bashrc或者.zshrc添加下面内容 export http_proxy=”http://localhost:port” export https_proxy=”http://local
  • spring的动态的代理模式 JDK动态代理,基于接口(默认代理模式),CGLIB动态代理(若要使用需要进行配置) JDK动态代理是由java JDK提供  其缺点是只能为接口创建代理,返回的代理对象也只能转到某个接口类型...
  • nginx做代理服务器的几种简单配置

    千次阅读 2018-11-24 17:04:00
    首先要知道nginx的代理相对于lvs不同是七层的代理,报文在流经PREROUTING时发现对方的目标IP是自己会将数据发往应用层,nginx的proxy模块会将数据解析然后以自己的ip地址为源地址发送给被代理的服务器。所以返回的...
  • 几种反向代理 服务器比较

    万次阅读 2014-02-18 09:08:05
    磁盘缓存容量优势; 性能中等 多; 支持ACL角色控制; 支持ICP缓存协议 支持外部文件读取及热加载; 支持热启动 Varnish 多核支持; 内存缓存; 性能强 够用; 支持集群,但不支持ICP集群; 支持后端存活...
  • Spring的两动态代理:Jdk和Cglib 的区别和实现 一、原理区别: java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。 而cglib动态代理是利用asm开源包,对代理...
  • AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。...
  • ... 不知道为什么今天PPA又只能使用代理...在终端下间接使用Socks5代理几种方法(privoxy,tsocks,proxychains) URL: http://blog.ihipop.info/2011/01/1988.html Please Reserve This Link,Thanks! 
  • 代理模式  代理模式是常用的java设计模式,他的特征是代理类与委托类同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,...按照代理的创建时期,代理类可以分为。  静态代理:由
  • 经过一番折腾,我总结出如下四方式。 方式 1、抓包类工具 常用的抓包工具有Wireshark、Fiddler、Charles。 这里我拿Charles举例子,把线上资源代理到本地叫本地文件映射。 菜单路径: Tools -> ...
  • 集群分为几种,用的软件分别是什么? 补充:涉及的组件 1.1、apache 跨平台的网页服务器,主要使用它做静态资源服务器,也可以做代理服务器转发请求 1.2、ngnix 高性能的 HTTP和反向代理服务器,ngnix处理能力...
  • 1 Microsoft Proxy ServerMicrosoft Proxy Server是把对Intemet的访问带入一个组织内部每一个桌面上去的一容易而又安全的方法,它包括Web Proxy服务器,Winsock Proxy服务器和Socks Proxy服务器。Web Proxy为Cache...
  • java中使用代理访问网络的几种方法

    千次阅读 2007-09-20 22:37:00
    http://javasky.bloghome.cn/posts/86087.html有些时候我们的网络不能直接连接到外网, 需要使用http或是https...方法一使用系统属性来完成代理设置, 这种方法比较简单, 但是不能对单独的连接来设置代理: /** *@parama
  • 2.在外网IP的机器上,部署代理服务器。 3.你的程序,使用轮训替换代理服务器来访问想要采集的网站。 好处: 1.程序逻辑变化小,只需要代理功能。 2.根据对方网站屏蔽规则不同,你只需要添加更多的代理就行了。 3....
  • 天猫店铺分为几种店铺类型?

    千次阅读 2019-08-07 17:59:54
    电子商务的蓬勃发展,一定程度上影响到了线下实体商店的市场经营,所以为了避免陷入窘境,很多商家都向电商行业进行靠拢,选择运营一家网络...而选择在天猫开设这样的店铺,就需要商家对天猫店铺分为几种进行相...
  • 代理(Proxy)是一设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要...
  • 动态代理的两方式以及区别

    万次阅读 多人点赞 2018-09-19 12:37:09
    动态代理的两方式,以及区别。 JDK动态代理:利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。 CGlib动态代理:利用ASM(开源的Java字节码编辑库,操作字节码)开源包,将...
  • 代理的三实现方式

    千次阅读 2018-07-23 18:05:34
    代理(Proxy)是一设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 简单来说就是说代理就是增强方法,...
  • 几种常用的设计模式实例:单例 工厂 代理 命令 策略
  • Java 中几种常用设计模式

    万次阅读 多人点赞 2018-08-09 16:50:32
    Java 中一般认为23种设计模式,当然暂时不需要所有的都会,但是其中常见的几种设计模式应该去掌握。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、...
  • 种代理模式详解

    千次阅读 多人点赞 2020-10-25 14:30:11
    文章目录二、代理模式(Proxy Pattern)1、常见的几种代理模式:2、静态代理3、JDK动态代理4、CGLib代理5、CGLib和JDK动态代理的区别 二、代理模式(Proxy Pattern) 根据B站狂神视频整理:...
  • 缓存类型几种 - 缓存篇

    千次阅读 2020-11-05 11:10:22
    目录web缓存的类型数据库数据缓存服务器端缓存代理服务器缓存CDN缓存DNS缓存浏览器端缓存web应用层缓存CDN的优势浏览器缓存的优点 ...比如常用的缓存方案memcached等。 服务器端缓存 代理服务器缓存 代理服务器是浏览
  • 上篇讲到了代理模式出现的原因,实现方式以及跟其他相似设计模式的区别。传送门@_@ http://blog.csdn.net/wonking666/article/details/794975471.静态代理的不足设计模式里面的代理模式,代理类是需要手动去写的。...
  • 代理模式的使用总结

    万次阅读 多人点赞 2020-04-20 14:14:37
    一、代理模式 二、静态代理 (一)静态代理 (二)静态代理简单实现 三、动态代理 (一)动态代理 (二)动态代理简单实现 四、动态代理原理分析 五、InvocationHandler接口和Proxy类详解 六、JDK动态代理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 382,508
精华内容 153,003
关键字:

代理分为几种