vps搭建代理上网,如何搭建vps代理服务

  vps搭建代理上网,如何搭建vps代理服务

  一、准备动态vps的工具:我用的是云立方的动态vps,0.5G内存,11G硬盘,20G宽带,一年1800元。动态vps主要运行代理服务,消耗大量带宽,通过拨号改变IP,达到动态代理的效果。固定IP服务器:阿里云服务器,1G内存1核,40G云盘,一年836元。服务器主要实时获取动态vps的IP,并对外提供接口。这些服务不会消耗太多资源,服务器也可以用来运行爬虫或者建立网站。第二,环境构建动态vps功能:构建代理服务,通过在vps上拨号切换IP,将切换后的IP转移到固定IP的服务器上。工具:代理服务-tinyproxy,发送IP-python的请求库系统:云立方的系统可以预装,我选择的是CentOS7.1系统,在管理后台运行。连接服务器:ssh用户@ip -p口拨号操作:断网:ADSL-停止,拨号:ADSL-开始查公网ip:curl icanhazip.com加代理查IP:curl-x IP:port -v icanhazip.com判断IP是否有变化:先查公网IP,然后断网,再拨号,再看公网IP。如果没有发现变化,可以试几次。在重放之后,公共IP有可能保持不变。1.代理服务安装程序:tinyproxy安装命令:

  #添加EPEL仓库,然后更新yum来源:sudo yum安装epel-release sudo yum更新#安装sudo yum安装-y tinyproxy修改配置:

  vim/etc/tiny proxy/tiny proxy . conf修改端口Port,默认为8888port888。注释掉Allow 127.0.0.1,表示允许所有人访问代理启动服务:service tinyproxy start。

  log:/var/log/tiny proxy/tiny proxy . log

  本地测试:curl-x IP:port -v icanhazip.com

  注意坑:

  我开始用芝麻vps。过了这一步,我就可以通过VPS上带局域网IP的代理服务器访问了,但是不能通过公网IP本地访问。最后发现是因为外网无法访问服务器,尝试了打开端口等操作,无果。云立方可以使用代理yum通过公共IP直接安装。错误:yum没有足够的缓存数据继续,解决方法:将/etc/yum.repos.d/epel.repo中的mirrorlist更改为baseurl/etc/resolv.conf文件,并添加名称服务器144.144.144.144。当重放断开时,有时adsl-start会失败。错误:"/usr/SDR ddy/ADSL-start:line 217:5749 terminated c o n e c t connect @ /dev/null 21 "。最后发现可能是断开连接的不干净。执行几次adsl-stop,当执行adsl-start时就会成功。在代理服务tinyproxy的操作过程中,您报告了此错误:Waiting servers (0)小于minspareservers (5)。创建新的孩子。原因是您无法创建新的连接处理请求,因为您已达到最大连接数。代理服务也会挂机,重启代理服务即可,解决方案vim/etc/tiny proxy/tiny proxy . conf max clients 100-500 #最大连接数超时600-20 #超时2。构建Python环境(1)安装Python Python依赖项。

  Sudyum安装yum-utils sud yum-build dep Python Python源代码连接:https://www.python.org/ftp/python/

  Curl-o https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz我用curl的时候下载不了。我可以从官网下载指定版本的Python,然后传到服务器上。

  tarxf Python-3 . 5 . 0 . tgz CD Python-3 . 5 . 0。/ConfigureMakeSudo安装完成后,通过Python 3-V检查当前版本。

  (2)安装虚拟环境。

  CD ~ MKDIR Venvcd venvpython 3-M Venv python 3-for crawl source ~/Venv/Python 3-for crawl/Drddy/Activate(3)安装相应的Python库

  Piprequests #安装从其他环境导出的库pip install -r requirements.txt阿里云服务器:功能:接受动态VPS发送的ip,提供返回动态VPS的接口。实时IP端口工具:web service -tornado连接:ssh root@ip -p 22,如果忘记了服务器密码,可以重置实例登录密码和远程连接密码:More-passwords,秘钥构建Python环境如上,安装Tornado Pip安装Tornado Sudo Yum Install-y Redis #启动服务redis-server /dev/null 21 #连接redis-climongo数据库(可以不安装,不需要这个库实现基本的代理功能。)在# yum里没有mongo的下载源。需要手动添加VI/etc/yum . repos . d/MongoDB-org-3.4 . repo #并写入以下信息,对于CentOS 7[MongoDB-org-3.4]name=MongoDB repository base URL=3359repo.mongoDB.org/yum/red hat/7/MongoDB-org/3.4/x86 _ 64/gp check=1 enabled=1 gpg key=3359www.mongodb.org/static/PGP/server-3.4.asc # install sudo yum install-y MongoDB-org start:system CTL start mongod . service注意坑:

  ssh链接时,错误权限被拒绝(公钥,gssapi-keyex,gssapi-with-mic)。解决方法:通过阿里云web终端登录服务器。修改ssh配置文件vim/etc/ssh/sshd _ config Change:password authentic ation no(默认为yes)或者打开注释:PermitRootLogin yes代码实现逻辑1。客户端:动态vps

  通过Python,断开连接,拨号。成功后,通过匹配获得公有IP,通过requests库将IP发送给服务器。为了避免恶意干扰,可以添加传输密钥,服务器会对传输密钥进行验证。如果验证失败,您可以更改IP,而无需为IP更新设置固定任务。传输的数据包括IP、密钥和名称(区分vps服务器)。2.服务器:固定IP服务器。

  用tornado启动服务,并提供两个接口。

  Post接口:接收客户端发送的IP,密钥验证成功后,以name为key,以ipport为val,存储在redis接口:将ipport从redis中取出,返回给代理检测程序;它可以用来检测IP的可用性,并消除无效的IP。

  总结相比直接购买代理商,价格更便宜,速度不限。但缺点是在vps拨入,传输到服务器,再由爬虫使用代理的过程中存在延迟,可能导致IP切换时代理不可用。解决方法是设置超时,休眠几秒再重试,不适合要求IP交换速度快的业务。拨号太频繁。一个是IP有时候不变。又一个简单的拨号失败。如果是在线环境下使用,可以多买几个动态vps,做一个IP池代码实现。参见:https://download.csdn.net/download/huangbangqing12/58718986

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: