更多>>关于我们

西安鲲之鹏网络信息技术有限公司从2010年开始专注于Web(网站)数据抓取领域。致力于为广大中国客户提供准确、快捷的数据采集相关服务。我们采用分布式系统架构,日采集网页数千万。我们拥有海量稳定高匿HTTP代理IP地址池,可以有效绕过各种反采集策略。

您只需告诉我们您想抓取的网站是什么,您感兴趣的字段有哪些,你需要的数据是哪种格式,我们将为您做所有的工作,最后把数据(或程序)交付给你。

数据的格式可以是CSV、JSON、XML、ACCESS、SQLITE、MSSQL、MYSQL等等。

更多>>官方微博

西安鲲之鹏
陕西 西安

加关注

  • 【经验分享】如何让Squid Web隧道支持SSH协议?
    默认Web隧道下连接22端口是不被允许的,会返回403错误。
    编辑/etc/squid3/squid.conf,加入如下配置行
    acl SSL_ports port 22
    acl Safe_ports port 22
    然后重启Squid即可。 ​​​​
    发布时间:2018-05-16 11:41:42
  • 当当网有多少图书,你知道吗?>>> http://t.cn/R3h6hiH ​​​​
    发布时间:2018-05-08 13:53:19
  • 【经验分享】Ubuntu下如何识别无线网卡?
    以普联的TL-WDN6200为例,使用的是rtl8812au(http://t.cn/RuR1Drh这个驱动):
    wget http://t.cn/RuR1DrP
    unzip master.zip
    cd rtl8812au-master
    make
    sudo install
    然后重启系统,运气好的话你就能看到Wifi图标和热点列表了,如下图所示(Ubuntu14.04下亲测)。
    发布时间:2018-05-03 19:10:52
  • 【经验分享】DeleGate跑了3天日志吃了18G硬盘,如何关掉日志呢?
    查文档(ftp://www.delegate.org/pub/DeleGate/Manual.htm#LOGDIR),找到了方法,加上参数LOGFILE=""即可,原文:
    You can stop logging by specifying null file name like LOGFILE="" or PROTOLOG="". ​​​​
    发布时间:2018-04-28 18:08:15
  • 【经验分享】命令下如何优雅地展示JSON数据?
    jq is a lightweight and flexible command-line JSON processor. >>> http://t.cn/Ry7MrH2
    示例:curl http://t.cn/Rui9UFI |jq '.'
    效果如附图所示。 ​​​​
    发布时间:2018-04-27 17:15:06
  • 最常见浏览器User Agent列表(Most Common User Agents)  >>> http://t.cn/R5ZC20T
    PS:隐约感觉某网站开始通过随机UA检测爬虫了。 ​​​​
    发布时间:2018-04-27 13:08:00
  • 【经验分享】在多网络接口(IP)环境下Squid,Tinyproxy和DeleGate如何指定出口(IP) >>> http://t.cn/RucmfQu ​​​​
    发布时间:2018-04-25 18:16:40
  • 【经验分享】Linux网络接口名称最大允许长度为15字符 >>> http://t.cn/RuG4k0R ​​​​
    发布时间:2018-04-24 11:05:16
  • 【经验分享】抓取Web of Science经验分享 >>> http://t.cn/RmlDirP ​​​​
    发布时间:2018-04-15 14:03:24
  • 【最新】百度指数最新采集方案演示(视频),有点如下:
    1. 受限账号仍可继续采集(不会提示访问太频繁);
    2. 一次可以获取近90天的数据(理论上还可以更多); L西安鲲之鹏的秒拍视频 ​​​​
    发布时间:2018-04-13 14:15:02
当前位置: 首页 > 技术文章 >
在多网络接口(IP)环境下Squid,Tinyproxy和DeleGate如何指定出口(IP)
发布时间:2018-04-25 来源:未知 浏览:

在多网络接口(即多IP)环境下,如何设置代理程序使用的出口(IP)呢?

这里的出口(IP)指的是代理程序访问目标网站的时候采用的接口(IP),就是目标网站能够检测到的访问者IP。默认情况下,代理程序都是走的默认路由(接口)。

本文的前提是你已经设置好了路由规则,每个接口(IP)都能正常的工作了,如何你还不清楚如何设置多IP环境下的路由,可以参考这篇文章:http://www.plugged.in/linux/add-multiple-gateways-multiple-nics-ubuntu-server.html

1. Squid

Squid无疑是Linux下代理软件的王者,以功能强大和稳定闻名天下。它提供了tcp_outgoing_address选项,用于指定使用特定的出口IP。

直接看官方文档(http://www.squid-cache.org/Doc/config/tcp_outgoing_address/)里面的例子(如下):

	  acl normal_service_net src 10.0.0.0/24
	  acl good_service_net src 10.0.2.0/24

	  tcp_outgoing_address 10.1.0.1 normal_service_net
	  tcp_outgoing_address 10.1.0.2 good_service_net
	  

不难理解,目的是让:来自接口10.0.0.0/24段的请求,通过10.1.0.1接口访问目标网站;来自接口10.0.2.0/24段的请求,通过 10.1.0.2接口访问目标网站。

2. Tinyproxy

Tinyproxy的主页在这里:http://tinyproxy.github.io,源码在这里:https://github.com/tinyproxy/tinyproxy

它的特定是简单易用,不需要复杂的配置,它的参数也很容易理解。

它提供了一个BindSame参数,当其值为yes时,出口将采用和入口相同的IP。例如,服务器上存在某IP 61.134.1.4,当你请求该IP对应的Tinyproxy代理时,Tinyproxy也通过61.134.1.4出口访问目标网站。

3. DeleGate

好多人对DeleGate不熟悉,但是它功能异常强大,它不但支持HTTP协议,还支持FTP,  SMTP, POP, IMAP, Telnet, SOCKS, DNS等多种协议。它的主页是:http://delegate.hpcc.jp/delegate/

由于网上DeleGate相关的资料比较少,加之它的文档(http://delegate.hpcc.jp/delegate/Manual.shtml)比较复杂,在很长的一段时间里我们都以为它不支持指定出口IP。抱着试试的态度给作者发了个邮件咨询该问题,没想到作者竟然给回复了。那就是使用SRCIF参数(http://delegate.hpcc.jp/delegate/Manual.shtml?SRCIF),例如,如下是一个启动DeleGate代理完整的命令行实例:

./delegate -P117.40.5.183:8888 SERVER=http PERMIT="*:*:*"  AUTHORIZER="-list{test:test}" AUTH=viagen:- ADMIN="redice@163.com" SRCIF="117.40.5.183:*:*:*:*"

DeleGate监听117.40.5.183:8888,并且使用117.40.5.183访问目标网站(SRCIF参数限定出口IP)。

下面是两次对比测试的截图:

所在机器的默认路由接口对应的IP是182.84.192.214。

图1 - 没有使用SRCIF参数指定出口IP。DeleGate代理使用了默认的路由出口访问目标网站(http://httpbin.org/ip),和不使用代理时返回的IP一样,都是182.84.192.214;

delegate没有使用SRCIF参数限定出口IP时测试截图

图2 - 使用SRCIF参数指定了出口IP为117.40.5.183(和监听的IP相同),DeleGate代理使用了117.40.5.183访问目标网站(http://httpbin.org/ip),返回的IP是117.40.5.183。

delegate使用了SRCIF参数限定出口IP时测试截图

顺便说一下,Squid,Tinyproxy以及DeleGate都是开源的。

特别说明:该文章为鲲鹏数据原创文章 ,您除了可以发表评论外,还可以转载到别的网站,但是请保留源地址,谢谢!!(尊重他人劳动,我们共同努力)
☹ Disqus被Qiang了,之前的评论内容都没了。如果您有爬虫相关技术方面的问题,欢迎发到我们的问答平台:http://spider.site-digger.com/
QQ在线客服
欢迎咨询,点击这里给我发送消息。
欢迎咨询,点击这里给我发送消息。