代理隧道
Ⅰ 急!!自己怎么搭建HTTP/Socks5隧道代理呢
自己搭建高质量亿级IP的HTTP/Socks5隧道代理
一、前言
在做爬虫、数据采集、账号搜索项目时,需要用到高质量代理IP。目前比较流行也是最常见的代理IP服务,大部分是通过api链接提取。通过不断的访问api接口,api服务器返回一个或多个可用代理IP,然后将代理IP应用于自己的程序或软件中。api服务器维护了一个可用IP池,并且不断在更新加入新的可用IP。客户端访问时,则返回最新可用IP。
API提取方式简单实现,但也有一定弊端,主要是客户端需要不断的访问api接口获取最新代理,需要一直循环。根据代理质量的不同,获取到的代理不一定全部可用,影响了爬虫的效率。这里推荐酷鱼代理IP(https://kuyukuyu.com),有动态代理和私密代理,速度和可用率都比较好。
那么,有没有不需要api的代理方式呢,那我们来看看隧道代理。
二、隧道代理是什么
隧道代理只需设置固定接口,云端自动切换不同IP,省去了客户端频繁获取的麻烦。并且通过隧道代理的多路负载技术,大大提高的代理速度和可用率。隧道代理没有一次提取多少个IP的概念,主要是通过对不同客户的并发请求数进行限制。一般可达到50-100次/秒的并发请求。
三、隧道代理架构
隧道代理有多个可用路径进行转发,采用多路复用、择优选择技术,提高代理成功率。经测试成功率可达99%以上。
代理服务器返回结果时没有经过隧道代理,而是直接返回给代理使用者。因为隧道代理仅起到建立隧道连接的作用,并不参与数据传输。保障了代理执行效率。
使用方便,需要频繁切换代理。
支持高并发,多客户端同时使用。
五、实现步骤
首先需要找到一个可持续供给的代理IP池,代理IP最好是同时支持HTTP(s)和Socks5协议的,这样我们的隧道代理也可以支持socks5。这里推荐酷鱼私密代理 https://kuyukuyu.com/mains/secret ,可用率99%以上,速度快。
购买后在用户中心获取API提取链接,然后设置白名单和提取数量。
将获取到的代理写入Squid配置文件。/etc/squid/squid.conf
重载配置文件,使用配置生效。
每隔1秒重复一次,并不断循环。
六、Squid使用方法
将squid 做为代理服务器
备份源文件 cp /etc/squid/squid.conf /etc/squid/squid.conf.source,用于脚本自动更新
在squid所在服务器运行脚本。
七、进一步优化
由于squid只支持http(s),不支持socks5协议,所有就算购买的代理池支持socks5,隧道代理也不支持。如需支持socks5,只需要使用其他软件替代squid。如果有这方面的需要可以联系酷鱼代理客服。
可以在隧道代理上使用iptables进行限制访问,达到白名单功能。
iptables还可以对单个客户端请求数量或流量限制,达到限流功能。
文章来源:网页链接
Ⅱ 如何使用ssh建立隧道
这条通道可以用很多技术来建立,这里我们仅仅介绍如何使用SSH服务器来建立这样一个通道-他被称为SSH隧道。
如何建立本地SSH隧道
在我们计划建立一个本地SSH隧道之前,我们必须清楚下面这些数据:
中间服务器d的IP地址
要访问服务器c的IP地址
要访问服务器c的端口
现在,我们把上面这张图变得具体一些,给这些机器加上IP地址。并且根据下面这张图列出我们的计划:
需要访问234.234.234.234的FTP服务,也就是端口21
中间服务器是123.123.123.123
现在我们使用下面这条命令来达成我们的目的
ssh -N -f -L 2121:234.234.234.234:21 123.123.123.123
ftp localhost:2121 # 现在访问本地2121端口,就能连接234.234.234.234的21端口了
这里我们用到了SSH客户端的三个参数,下面我们一一做出解释:
-N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
-f 告诉SSH客户端在后台运行
-L 做本地映射端口,被冒号分割的三个部分含义分别是
需要使用的本地端口号
需要访问的目标机器IP地址(IP: 234.234.234.234)
需要访问的目标机器端口(端口: 21)
最后一个参数是我们用来建立隧道的中间机器的IP地址(IP: 123.123.123.123)
我们再重复一下-L参数的行为。-L X:Y:Z的含义是,将IP为Y的机器的Z端口通过中间服务器映射到本地机器的X端口。
在这条命令成功执行之后,我们已经具有绕过公司防火墙的能力,并且成功访问到了我们喜欢的一个FTP服务器了。
如何建立远程SSH隧道
通过建立本地SSH隧道,我们成功地绕过防火墙开始下载FTP上的资源了。那么当我们在家里的时候想要察看下载进度怎么办呢?大多数公司的网络是通过路由器接入互联网的,公司内部的机器不会直接与互联网连接,也就是不能通过互联网直接访问。通过线路D-B-A访问公司里的机器a便是不可能的。也许你已经注意到了,虽然D-B-A这个方向的连接不通,但是A-B-D这个方向的连接是没有问题的。那么,我们能否利用一条已经连接好的A-B-D方向的连接来完成D-B-A方向的访问呢?答案是肯定的,这就是远程SSH隧道的用途。
与本地SSH一样,我们在建立远程SSH隧道之前要清楚下面几个参数:
需要访问内部机器的远程机器的IP地址(这里是123.123.123.123)
需要让远程机器能访问的内部机器的IP地址(这里因为是想把本机映射出去,因此IP是127.0.0.1)
需要让远程机器能访问的内部机器的端口号(端口:22)
在清楚了上面的参数后,我们使用下面的命令来建立一个远程SSH隧道
ssh -N -f -R 2222:127.0.0.1:22 123.123.123.123
现在,在IP是123.123.123.123的机器上我们用下面的命令就可以登陆公司的IP是192.168.0.100的机器了。
ssh -p 2222 localhost
-N,-f 这两个参数我们已经在本地SSH隧道中介绍过了。我们现在重点说说参数-R。该参数的三个部分的含义分别是:
远程机器使用的端口(2222)
需要映射的内部机器的IP地址(127.0.0.1)
需要映射的内部机器的端口(22)
例如:-R X:Y:Z 就是把我们内部的Y机器的Z端口映射到远程机器的X端口上。
建立SSH隧道的几个技巧
自动重连
隧道可能因为某些原因断开,例如:机器重启,长时间没有数据通信而被路由器切断等等。因此我们可以用程序控制隧道的重新连接,例如一个简单的循环或者使用 djb’s daemontools . 不管用哪种方法,重连时都应避免因输入密码而卡死程序。关于如何安全的避免输入密码的方法,请参考我的 如何实现安全的免密码ssh登录 。这里请注意,如果通过其他程序控制隧道连接,应当避免将SSH客户端放到后台执行,也就是去掉-f参数。
保持长时间连接
有些路由器会把长时间没有通信的连接断开。SSH客户端的TCPKeepAlive选项可以避免这个问题的发生,默认情况下它是被开启的。如果它被关闭了,可以在ssh的命令上加上-o TCPKeepAlive=yes来开启。
另一种方法是,去掉-N参数,加入一个定期能产生输出的命令。例如: top或者vmstat。下面给出一个这种方法的例子:
ssh -R 2222:localhost:22 123.123.123.123 "vmstat 30"
检查隧道状态
有些时候隧道会因为一些原因通信不畅而卡死,例如:由于传输数据量太大,被路由器带入stalled状态。这种时候,往往SSH客户端并不退出,而是卡死在那里。一种应对方法是,使用SSH客户端的ServerAliveInterval和ServerAliveCountMax选项。ServerAliveInterval会在隧道无通信后的一段设置好的时间后发送一个请求给服务器要求服务器响应。如果服务器在ServerAliveCountMax次请求后都没能响应,那么SSH客户端就自动断开连接并退出,将控制权交给你的监控程序。这两个选项的设置方法分别是在ssh时加入-o ServerAliveInterval=n和-o ServerAliveCountMax=m。其中n, m可以自行定义。
如何将端口绑定到外部地址上
使用上面的方法,映射的端口只能绑定在127.0.0.1这个接口上。也就是说,只能被本机自己访问到。如何才能让其他机器访问这个端口呢?我们可以把这个映射的端口绑定在0.0.0.0的接口上,方法是加上参数-b 0.0.0.0。同时还需要打开SSH服务器端的一个选项-GatewayPorts。默认情况下它应当是被打开的。如果被关闭的话,可以在/etc/sshd_config中修改GatewayPorts no为GatewayPorts yes来打开它。
如何寻找中间服务器
如果你家里使用ADSL上网,多半你会比较幸运。一般的ADSL(例如 联通 的ADSL)都是有互联网地址的。你只需要在家里的路由器上一台装有OpenSSH server机器的SSH端口映射出去即可。同时一些提供SSH访问的虚拟主机也可以用于这一用途。例如: Hostmonser 或者 Dreamhost .
通过SSH隧道建立SOCKS服务器
如果我们需要借助一台中间服务器访问很多资源,一个个映射显然不是高明的办法(事实上,高明确实没有用这个方法)。幸好,SSH客户端为我们提供了通过SSH隧道建立SOCKS服务器的功能。
通过下面的命令我们可以建立一个通过123.123.123.123的SOCKS服务器。
ssh -N -f -D 1080 123.123.123 # 将端口绑定在127.0.0.1上
ssh -N -f -D 0.0.0.0:1080 123.123.123.123 # 将端口绑定在0.0.0.0上
通过SSH建立的SOCKS服务器使用的是SOCKS5协议,在为应用程序设置SOCKS代理的时候要特别注意。
总结
至此,我们已经对如何利用SSH隧道有一个基本的认识了。现在,文章开始时的那些问题应该迎刃而解了吧。这里要特别说一下,由于SSH隧道也使用了SSH加密协议,因此是不会被防火墙上的内容过滤器监控到的。也就是说一切在隧道中传输的数据都是被加密的。当然,离开隧道后的数据还是会保持自己原有的样子,没有加密的数据还是会被后续的路由设备监控到。
Ⅲ 求亿牛云爬虫代理python的代码示例
你用的是python的哪个模块,每个模块引入的方式不同
Ⅳ 怎么用xshell设置一个隧道和代理
没使用过腾讯云服务器。在这里提供一个思路,你试试能不能行。看了一下官方的文档,估计由于 HTTP 代理设置不当导致无法链接的可能性较大。 官方文档里提到的 SecureCRT 的 防火墙 设置,应该就是 Xshell 的 代理 设置具体设置方法是: 打开 Xshell 会话的 属性 对话框在左边找到 代理, 点进去,进入代理服务器设置页面点击右面的 浏览 按钮,弹出名为 列表代理 的对话框。根据官方文档的描述,添加一个代理服务器。添加完成后,关闭 列表代理 对话框。回到代理服务器设置页面。此时,代理服务器下拉列表里应该已出现你刚刚创建的那个代理服务器。选中它。这样,代理服务器的设置就完成了。对这个会话其他方面的设置,应该和连接普通的 Linux 机器是一样的。
Ⅳ 代理模式和通道模式的区别是什么
SSL VPN和Web Proxy技术的对比
SSL VPN与Web Proxy相比主要有以下优点:
软件开发网
其一,简单灵活。在SSL VPN的架构下,不需要在客户端安装软件,用户只要使用浏览器进行安全Web访问(https)即可。这样只要是任何装有浏览器的装置,例如可以支持Web的手机或PDA,都可以应用SSL VPN做加密保护。而且对于大多数的操作系统,只要可以支持标准的浏览器,不论是Windows、Mackintosh、Unix或是Linux,都可以通过SSL VPN做加密保护。
其二,对网络设备透明。由于是在传输层之上进行安全处理,不存在穿越NAT等防火墙设备的问题。
软件开发网
其三,应用层安全性高。在应用层建立的通道可以防止病毒、蠕虫等经由网络层传输的威胁。另外,由于SSL VPN还可以起到代理服务器的作用,所有客户端的访问都是由SSL VPN网关转发,而不能直接访问应用服务器,从而使服务器
不易受到病毒、黑客等攻击,而且还可以提供细粒度的强访问控制和日志审计。如果远程用户以IPSEC VPN的方式与公司内部网络建立联机,内部网络所连接的应用系统,都可能暴露给黑客攻击。若采取SSL VPN来联机,因为是直接开启应用系统,并没在网络层上连接,黑客不易探测出应用系统内部的网络机制,所受到的威胁也仅是所联机的应用系统,攻击机会相对减少许多。
Ⅵ 直连IP与代理服务器区别
直连IP就是你连上网后,网上显示的是你自已现在正在上网的本地IP地址。
通过代理服务器后,你上网就会显示你的本地IP为现在你所使用的代理服务器IP地址。
Ⅶ 如何使用shadowsock以及ssh反向隧道实现内网代理
这里我推荐你使用花生壳做端口映射。花生壳是一款专门做DDNS内网地址转换的软件。
Ⅷ Android手机用ssh安全隧道代理上网可以连接成功,但是不能上网!
应该不是ssh的问题,应该是max
lv的问题,我也是,现在都没法升级,而
同样的ssh账号如果在pc上能正常使用。
Ⅸ 隧道代理是什么原理呀
实现起来需要一些经济基础和技术实力。如果有隧道代理的需求,可以考虑用市面上的收费产品,不需要操心。
推荐无忧代理I"。欢迎你采纳我的回答
Ⅹ 什么是隧道代理技术
隧道代理(TB)技术提供了一种简化的隧道配置方法,它要求隧道的双方都支持双栈。通过TB,用户可以很方便地和IPv6 ISP建立隧道连接,从而访问外部可用的IPv6资源;ISP通过专用的隧道服务器提供了一种非常简捷的接入方式,并自动管理用户发出的隧道请求。
在隧道代理体系中,所有功能单元之间(包括客户和TB之间、TB和隧道服务器之间以及TB和DNS之间)都需要使用安全机制保护。在客户与TB之间,有很多的安全机制可供选择(如可以使用SSL在WEB服务器上对发送和下载进行加密,还可以使用简单的用户名/密码程序来实现访问控制,等等)。在TB与隧道服务器之间可以采用SNMP。在TB与DNS之间,如果使用动态DNS更新程序,安全性与SNMP完全相同;如果使用基于RSH命令的简便方法,也可以使用标准的IPsec。