-
2021-12-08 17:48:00
一、工具准备
- 动态vps: 我用的是云立方的动态vps,0.5G内存,11G硬盘,20G宽带,一年1800元,动态vps主要是运行代理服务,比较耗宽带,通过拨号来更换IP,实现动态代理的效果
- 固定IP服务器:用的阿里云服务器,1核1G内存,40G云盘,一年836元,该服务器主要是实时获取动态vps的IP,并对外提供接口,这些服务不怎么耗资源,该服务器还可以用来跑爬虫或者搭网站
二、环境搭建
动态vps
- 功能:搭建代理服务,并通过在vps上拨号切换IP,将切换后的IP传到固定IP的服务器上
- 工具:代理服务-tinyproxy, 发送IP-python的requests库
- 系统:云立方的可以预装系统,我选的是CentOS7.1系统,在管理后台进行操作
- 连接服务器:ssh user@ip -p port
- 拨号操作:断开网络:adsl-stop, 拨号:adsl-start
- 查看公网IP:curl icanhazip.com
- 加代理查看IP:curl -x ‘ip:port’ -v icanhazip.com
- 判断IP是否变化:先查看公网IP,然后断开连接,重新拨号,再看下公网IP,如果发现没有变化,可以多试几次,有几率重播后公网IP依旧没变
1、代理服务搭建:tinyproxy
安装命令:
# 添加EPEL仓库,然后更新yum源: sudo yum install epel-release sudo yum update # 安装 sudo yum install -y tinyproxy
修改配置:
vim /etc/tinyproxy/tinyproxy.conf 修改 Port 端口,默认为 8888 Port 8888 注释掉 Allow 127.0.0.1,表示允许所有人访问代理
启动服务:service tinyproxy start
日志:/var/log/tinyproxy/tinyproxy.log
本地测试:curl -x ‘ip:port’ -v icanhazip.com注意点&坑:
- 我一开始用的芝麻VPS,到这一步后,在vps上用局域网IP可以通过代理服务器访问,但在本地通过公网IP就无法访问,最后发现是由于外网无法访问该服务器,试过开放端口等操作,无果,云立方的是直接可以通过公网IP使用代理
- yum安装时,报错:yum doesn’t have enough cached data to continue, 解决办法:
- 将/etc/yum.repos.d/epel.repo中的mirrorlist改为baseurl
- /etc/resolv.conf文件中增加 nameserver 144.144.144.144
- 在断开重播时,有时adsl-start会执行失败,报错:“/usr/sbin/adsl-start: line 217: 5749 Terminated C O N N E C T " CONNECT " CONNECT"@" > /dev/null 2>&1”,最后发现可能是断开连接的不干净,多执行几次adsl-stop,在执行adsl-start就会成功了
- 在代理服务tinyproxy运行期间,报过这个错:Waiting servers (0) is less than MinSpareServers (5). Creating new child.,原因是达到最大连接数,无法创建新的连接处理请求,代理服务也就挂了,重启代理服务即可,解决办法
vim /etc/tinyproxy/tinyproxy.conf MaxClients 100 -> 500 # 最大连接数 Timeout 600 -> 20 # 超时时间
2、搭建Python环境
(1) 安装Python Python依赖
sudo yum install yum-utils sudo yum-builddep 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,然后传到服务器上
tar xf Python-3.5.0.tgz cd Python-3.5.0 ./configure make sudo make install
安装完成后通过python3 -V来查看当前版本
(2) 安装虚拟环境
cd ~ mkdir venv cd venv python3 -m venv python3-forcrawl source ~/venv/python3-forcrawl/bin/activate
(3) 安装相应的python库
pip install requests # 安装其他环境导出的库 pip install -r requirements.txt
阿里云服务器:
- 功能:接受动态VPS发送的IP,并提供接口,返回动态VPS实时的IP&端口
- 工具:web服务-tornado
- 连接:ssh root@ip -p 22, 如果忘记服务器密码,可以重置实例登陆密码和远程连接密码:更多->密码、秘钥
- 搭建Python环境同上,安装tornado
pip install tornado sudo yum install -y redis # 启动服务 redis-server >> /dev/null 2>&1 & # 连接redis redis-cli
- mongo数据库(可以不进行安装,实现基本的代理功能不需要该库)
# yum中没有mongo的下载源,需要手动添加 vi /etc/yum.repos.d/mongodb-org-3.4.repo # 写入以下信息,针对centos7 [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc # 安装 sudo yum install -y mongodb-org 启动: systemctl start mongod.service
注意点&坑:
- ssh链接时,报错Permission denied (publickey,gssapi-keyex,gssapi-with-mic),解决办法:
- 通过阿里云web终端登录到服务器,修改ssh配置文件
vim /etc/ssh/sshd_config 更改:PasswordAuthentication no(默认yes) 或打开注释:PermitRootLogin yes
代码实现逻辑
1、客户端:动态vps
- 通过Python执行断开连接&拨号的操作,成功后匹配获取公网IP,通过requests库将IP发送至服务端
- 为了避免恶意干扰,可以加上一个传输秘钥,服务器验证传输秘钥,验证失败的不进行IP更新
- 设置定时任务来实现IP的更换
- 传送的数据中,包含IP、秘钥、name(区分vps服务器)
2、服务端:固定IP服务器
使用tornado启动服务,提供两个接口
- post接口:接收客户端发送的IP,验证秘钥成功后,以name为key,ip&port为val,存入redis
- get接口:从redis中取出ip&port并返回
代理检测程序:可用于检测IP的可用性,剔除失效IP
总结
- 相对直接购买代理,价格更便宜,且速度不受限制,但是缺点是,在vps拨号,到传输到服务器,再到爬虫使用代理,这个过程存在延迟,可能在切换IP时,会导致代理不可用,解决方案是设置超时时间并休眠几秒后进行重试
- 不适用于对IP切换速度要求很快的服务,拨号太频繁了,一个是IP有时不变,另一个容易拨号失败
- 如果在线上环境中使用,可以多买几台动态vps,搞一个IP池
- 代码实现见:https://download.csdn.net/download/huangbangqing12/58718986
更多相关内容 -
vps搭建代理ip服务
2021-07-26 10:00:23本文记录centos7.6拨号搭建代理ip服务器的过程。 一、购买拨号服务器。 在服务器测试拨号是否正常用到下面两个命令 pppoe-start pppoe-stop 如果拨号不正常则需要配置 pppoe-setup 具体步骤自查。 二、部署 首先安装...伪装ip是做爬虫比较常见也比较重要的一步。
本文记录centos7.6拨号搭建代理ip服务器的过程。一、购买拨号服务器。
在服务器测试拨号是否正常用到下面两个命令
pppoe-start
pppoe-stop
如果拨号不正常则需要配置 pppoe-setup 具体步骤自查。二、部署
首先安装tinyproxy
执行命令 yum -y install tinyproxy
找不到安装包的时候可以装一下epel。
安装 yum install epel-release安装完成编辑tinyproxy的配置文件
vi /etc/tinyproxy/tinyproxy.conf
主要是更改端口号和修改允许连接代理的ip。默认只允许本地。
找到"Allow"字样,注释掉,允许所有ip连接。或者写自己服务器的ip配置好了启动 :systemctl start tinyproxy.service
把设置的端口号在防火墙开放
firewall-cmd --zone=public --add-port=端口/tcp --permanent
firewall-cmd --reload检测ip是否可用
然后把ip和配置端口放到爬虫程序中测试或者在其他服务器用curl加代理访问看效果。
测试没问题直接写个shell脚本定时拨号刷ip 基本就OK,具体看业务情况配置使用。 -
http(s)代理服务器与搭建
2022-05-02 01:06:10写在前面:为了复现*ctf的oh-my-lotto那道题,...正向代理,代理服务器代表客户端向服务端发送请求,这样可以隐藏真实的客户端 反向代理表示,代理服务器代表服务端向客户端返回请求,这样可以隐藏真实的服务端 3、ho写在前面:为了复现*ctf的oh-my-lotto那道题,补了一下关于代理方面的知识,顺便做一下总结
1、代理透明度
- 全匿名代理
- 普通代理
- 全透明代理
2、正向代理和反向代理
- 正向代理,代理服务器代表客户端向服务端发送请求,这样可以隐藏真实的客户端
- 反向代理表示,代理服务器代表服务端向客户端返回请求,这样可以隐藏真实的服务端
3、hosts文件
-
位置
windows下的hosts文件
C:\Windows\System32\drivers\etc\hosts
linux下的hosts文件
/etc/hosts
-
作用
通过在本地将域名与ip地址进行映射,就不需要去dns服务器上进行域名解析,加快访问速度
-
构成
ip地址
域名或者主机名
别名
4、设置http_proxy、https_proxy
-
windows下相关命令
set http_proxy = http://124.222.172.241:8888
设置http_proxy代理set http_proxy =
清空设置的代理echo %http_proxy%
输出设置的代理内容 -
linux相关命令
export http_proxy = http://124.222.172.241:8888
设置代理unset http_proxy
清空代理export http_proxy = ""
清空代理env | grep -i http_proxy
查看代理
5、tinyproxy的配置
-
在vps上下载
sudo apt install tinyproxy
-
进行配置,主要包含代理的
端口
,ip地址
,via头
,xtinyproxy字段
-
端口 8888 注意要防火墙开启 ufw allow 8888, vps防火墙设置也要开启 8888
-
ip设置为所有的都可以访问
-
via头部,
ViaProxyName
标记代理的名称,如果没有开启下面的DisableViaHeader
,就会显示在 http请求头中,要是开启,就可以达到隐藏的效果 -
XTinyProxy字段,如果开启,会在http请求头中加入一个字段,显示客户端的ip,如果不开启,可以达到隐藏的效果
-
6、测试代理是否配置成功
-
curl命令
-v 参数
显示交互详细信息,里面可以看http_proxy-I
参数 显示响应头-x 参数
设置代理 -
网站 http://httpbin.ort/ip、http://httpbin.org/get?show_env
-
手把手教你建立sock5代理服务器
2018-12-22 14:57:46文档非常详细的介绍了sock5服务器的搭建过程,并对搭建过程中的细节进行了详细说明 -
使用tinyproxy简易搭建代理服务器
2020-02-22 13:10:14腾讯云服务器或阿里云服务器; 虚拟机; 步骤: 第一步、在自己的云服务器上安装 tinyproxy : 如果是 Ubuntu 就使用 apt install -y tinyproxy 如果是 Centos 则使用 yum install -y tinyproxy 本文用 Centos 进行...需要:
腾讯云服务器或阿里云服务器;
虚拟机;步骤:
第一步、在自己的云服务器上安装 tinyproxy :
如果是 Ubuntu 就使用apt install -y tinyproxy
如果是 Centos 则使用
yum install -y tinyproxy
本文用 Centos 进行演示
第二步:使用 vim 打开 /etc/tinyproxy/tinyproxy.conf
1、在该配置文件中搜索 Allow,大概在 210 行左右,有一句 Allow 127.0.0.1,我们将其注释掉:
2、在该配置文件中搜索 Port ,大概在 23 行左右,我们将该端口号修改成一个自己想要的端口,最好大一点,我这里使用的是41801(注意:有的端口如果不能使用的话,那我们可以去相应的云服务器上去开通这个端口)
修改完后保存退出。
第三步:重启tinyproxy这个服务systemctl restart tinyproxy
第四步:观察 tinyproxy 的日志
第五步:开一个我们本地的控制台,也就是我们的虚拟机上开一个终端
导入一个变量,这里的 ip 写自己云服务器上的 ip ,端口就写我们刚才修改的端口
导入成功后,我们可以使用 requests 来验证我们的代理 ip 是否成功,如下图可见,已经成功使用代理IP
-
Squid智能cdn服务器搭建软件(支持vps)v2.3.zip
2019-07-17 16:35:11CDNSoft推出的CDN服务器节点搭建软件是一套基于Delphi开发的CDN服务器配置软件,高效,稳定,安全!CDN配置软件可帮助大中小站长或大中小企业低成本,轻松构建自己的CDN网络或服务器群,提供专业的CDN软件,更好的CDN技术... -
最全搭建自己的SOCKS代理服务器
2020-10-16 17:19:41它是一种防火墙安全会话转换协议,该协议提供一个框架,为在 TCP 和 UDP 域中的客户机/服务器应用程序能更方便安全地使用网络防火墙所提供的服务。这个协议从概念上来讲是介于应用层和传输层之间的 “中介层(shim-... -
ADSL拨号代理服务器实现HTTP代理的搭建过程
2019-03-06 22:19:58最近做一个项目时,发现购mai的厂商的代理似乎被识别了,总是拿不到正确的响应。于是尝试自己搭建了一个ADSL代理实现HTTP代理。 ADSL拨号代理:电信...(2)远程客fu给的代理服务器,拨号成功后,安装必要的软件... -
Squid代理服务器应用(服务搭建详细步骤讲解)
2021-02-22 22:37:57Squid代理服务器应用(服务搭建详细步骤讲解) 文章目录一、代理的工作机制二、Squid 代理的类型三、Squid部署(一)、安装 Squid 服务(二)、构建传统代理服务器(三)、构建透明代理服务器1、网址设置2、Squid... -
利用腾讯云独立IP使用windows用CCProxy搭建Socks5多IP代理服务器图文教程实现单窗口单IP
2021-11-16 13:13:52腾讯云独立IP使用CCProxy搭建Socks5多IP代理服务器图文教程实现单窗口单IP 1、腾讯云介绍 2、腾讯云购mai 3、创建弹性网卡,绑定弹性公网IP 4、服务器网卡绑定内网IP 5、搭建Socks5服务 6、设置完成 7.socks5... -
如何利用VPS配置搭建frp/frps进行内网穿透
2022-04-13 14:40:56如何利用VPS配置搭建frp/frps进行内网穿透 -
FRP代理搭建
2021-07-08 15:19:37FRPFRP搭建服务器端客户端登录VPS验证总结参考 FRP搭建 frp 是一种快速反向代理,是一个隧道工具,可帮助您将 NAT 或防火墙后面的本地服务器暴露给 Internet。 截至目前,它支持TCP和UDP,以及HTTP和HTTPS协议,其中... -
ADSL 拨号代理的搭建
2022-07-18 13:24:47ADSL拨号代理的搭建 我们尝试维护过一个代理池。代理池可以挑选出许多可用代理,但是常常其稳定性不高、响应速度慢,而且这些代理通常是公共代理,可能不止一人同时使用,其IP被封的概率很大。另外,这些代理可能... -
代理服务器搭建socks5环境的方法
2016-12-23 00:50:08...1) 一台VSP服务器(或者朋友的电脑),假如公网IP地址为:202.6.6.6 2) 一台客户端 3) 一套CCProxy软件(下载地址:http://www.ccproxy.com/download.htm) SOCKS5搭建要求 -
Centos6搭建socket5教程
2017-12-20 10:10:17centos6下搭建socket5的教程非常全面,拥有这个教程可以让你快速搭建,省去很多碰壁的麻烦 -
阿里云服务器搭建过程(小白起步)
2021-06-07 10:25:27## 阿里云服务器搭建过程(小白起步) 前提: 购买过阿里云服务器+域名购买(我暂时还没用到这个) 我自己的用的是大学生免费的这种,2核4G的,选的是cenos7镜像。 连接远程服务器使用的是 XShell(其他的都行... -
linux搭建代理服务器+蚁剑配置客户端代理
2019-10-04 00:54:57一:linux搭建代理服务器 0x00 介绍 关于搭建代理服务器的方法,我也是刚刚接触,从网上找了一些能够行得通的方法来给大家做个分享: 这里我用的是Tinyproxy作为代理服务软件。这个东西很小,并没有几M。 tinyproxy... -
ssh 代理详细解释(最简单的方法搭建代理服务器)
2016-08-18 15:44:25Original url: ... ssh 代理详细解释 ssh -qTfnN -D 7070 ape@192.168.1.35 ssh -CfNg -R 1521:127.0.0.1:80 ape@192.168.1.35 参考地址: htt -
Centos7安装socks5代理服务器和http代理服务器
2021-10-14 16:36:39参考文章:Centos7安装socks5代理服务器 - gongniue - 博客园 记一次tinyproxy代理 socks5代理 - 可惜啊。 - 博客园 CentOS搭建代理服务器 - 抽象工作室upup - 博客园 -
squid代理工作原理与搭建
2021-09-26 15:30:34简称Squid)是Linux系统中最常用的一款开源代理服务软件,可以很好地实现HTTP和FTP,以及DNS查询、SSL等应用的缓存代理,功能十分强大,本文只简单讲述怎么在Ubuntu系统上简单搭建Squid代理服务器,关于其他如代理... -
api对接主机控制面板源码虚拟主机云服务器域名IDC加盟网站源码程序模板PHP代理管理系
2019-07-23 23:20:51【主要对接功能:云服务器产品系列,主机空间产品系列,VPS产品系列,域名,服务器等产品...】 平台简介简介:云服务器平台php+mysql进行开发的PHP开源IDC源码,安全,开源,免费升级 1、整合国内多家API接口,... -
如何在linux环境下搭建Tor代理服务器
2017-05-03 15:33:42介绍了在linux上安装Tor内核,实现SOCK5代理服务,用于网络匿名。 -
hexo-blog:使用 Nodejs Hexo 搭建个人博客,本地编辑 MD 文档并 ...通过反向代理服务器 Nginx 发布网站资源
2021-05-02 04:37:21Hexo 搭建个人技术博客 在线博客访问: 安装工具 nodejs [sudo apt-get install nodejs / brew install nodejs] cnpm [npm install cnpm -g] 启动服务 $ git clone https://github.com/Chester-Hee/hexo-blog.git $ ... -
简单易上手搭建ETH服务器教程,实现中转私有化节点,加密运行,并有抽水机功能
2022-05-10 23:44:56简单易上手搭建ETH服务器教程,实现中转私有化节点,加密运行,并有抽水机功能 -
亚马逊AWS-EC2云服务器部署代理服务
2019-07-18 10:52:15首先,在此阿里云/腾讯云/华为云购买一个 VPS 推荐使用阿里云的 香港服务器,毕竟香港里大陆很近,所以延迟会低很多 首先链接你的VPS,可以使用X-shell / Putty / SecureCRTPortable 等SSH链接工具 注意:如果不知道... -
使用腾讯云服务器搭建个人网盘
2021-02-14 20:39:13使用腾讯云服务器搭建...本次使用的vps为腾讯的轻量应用服务器,其在大陆地区推出了存储型实例,比较适合用来搭建网盘,本次使用的程序为cloudreve。 下载程序 https://github.com/cloudreve/Cloudreve/releases 鉴于 -
自己动手搭建正向代理
2021-04-13 15:05:15三、使用TonyProxy设置代理服务器 1)安装tinyproxy yum install -y epel-release yum update -y yum install -y tinyproxy 2)配置文件 vi/etc/tinyproxy/tinyproxy.conf 1.更改端口,默认8888。可以更改... -
【教程】腾讯云轻量应用服务器搭建聊天室
2021-12-17 21:54:32前言前些日子听朋友说,他们领的腾讯云轻量246还在吃灰,我在萌备聊天室里看见了这个系统感觉挺不错那这篇文章就教大家用宝塔来搭建一个聊天室介绍Fiora系统非常简洁,而且也有很多功能,基于 node.js, mongodb, ... -
Linux远程服务器环境搭建
2021-11-12 23:00:43Linux远程服务器环境搭建 前段时间搭建博客的时候为远程服务器配置了许多环境,由于其中踩了一些坑,故想记录下来。今日心情不错,特此一录。 Docker是用于搭建环境的不二选择,本文采用传统的方式进行环境...