登录免费试用免费试用

动态拨号VPS代理服务器搭建HTTP代理ip教程

发布日期:2021-01-04 15:36:53    作者:Michael

怎么使用动态拨号vps代理服务器搭建HTTP代理ip?今天小编给大家做个详细的教程:

 

关于动态拨号vps代理服务器搭建HTTP代理ip的流程分为以下几步:

 

第一步:购买动态拨号vps服务器;

 

第二步:连接动态拨号vps服务器,拨号成功后,安装必要的软件;

 

第三步:安装及启动TinyProxy搭建代理;

 

第四步:安装python/编写HTTP代理池脚本;

 

第五步:提取ip,测试,搭建完成,投入使用。

 


 

一,购买动态拨号vps代理服务器

 

首先,确认自己需要的动态拨号vps服务器类型:目前91vps提供有拨号vps服务器和动态ECS服务器二种,均包含有全国混播/单地区,然后在选择配置,目前91vps提供有4种类型的配置可供选择;最后确认购买,购买完成。(关于机器的选择,可根据自己的需求来,如不清楚,可联系91vps在线客服:800193021咨询推荐)

 

点击直达:91vps动态拨号vps服务器购买地址

 

点击查看:91VPS动态拨号VPS服务器购买开通教程

 

动态拨号VPS代理服务器搭建HTTP代理ip教程

 

二    远程连接拨号vps服务器,并调试成功

 

这里就不多做介绍了,需要强调一点的是,搭建http代理,必须使用liunx系统连接,所以,这个直接提供liunx系统连接的详细教程:

 

点击查看:动态拨号vps服务器lunix使用教程

 

动态拨号VPS代理服务器搭建HTTP代理ip教程

 

三    TinyProxy代理搭建

 

1.安装TinyProxy

yum install -y epel-release

yum update -y     ——升级yum,可能会等很长一段时间

yum install -y tinyproxy

 

2.配置TinyProxy

(1)vi /etc/tinyproxy/tinyproxy.conf修改两处配置:端口号和允许连接该代理的IP白名单:

 

动态拨号VPS代理服务器搭建HTTP代理ip教程

 

上图中,默认用8888端口作为代理端口,可以修改为你用作代理端口的端口号;

 

动态拨号VPS代理服务器搭建HTTP代理ip教程

 

允许访问该代理端口的IP,默认为只有本机可以使用该代理,把这行注释掉可以使所有IP都可以使用该代理。

 

(2)配置完后,重启TinyProxy

systemctl enable tinyproxy.service

systemctl restart tinyproxy.service

防火墙开放你的配置的代理端口:

iptables -I INPUT -p tcp --dport 8888 -j ACCEPT

 

3.验证TinyProxy

在另一台主机上运行以下命令检查是否用了代理:

curl -x 代理服务器IP地址:代理端口 httpbin.org/get

动态拨号VPS代理服务器搭建HTTP代理ip教程

上图中访问httpbin.org/get得到本地IP为119.23.xx.x,通过代理端口访问该地址,得到的IP地址为114.104.xx.x,这说明代理搭建成功。

 

四    安装python及编写脚本

 

1.安装python

下面是我的安装脚本,我每次都是直接用这个脚本来自动安装。

 

#!/usr/bin/env bash

yum -y install wget zlib zlib-devel openssl-devel gcc make

wget -P /usr/local/src/ https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

tar -xzvf /usr/local/src/Python-3.6.5.tgz

 

cd Python-3.6.5

./configure --prefix=/usr/local --with-ssl

make

make altinstall

make clean

cd ../

rm -rf Python-3.6.5*

 

ln -s /usr/local/bin/python3.6 /usr/bin/python3

ln -s /usr/local/bin/pip3.6 /usr/bin/pip3

pip3 install --upgrade pip

python3 -V && pip3 -V

2.编写更新代理的脚本

由于ADSL拨号服务器拨号后,IP已经变化为新的IP,这时候要通知其他使用IP者新的IP地址是什么,这就需要有一个接口或者缓存供其调用、存储变化后的IP。我这里采用redis来缓存。

import re, time, requests

from requests.exceptions import ConnectionError, ReadTimeout

# coding=utf-8

# 拨号间隔

ADSL_CYCLE = 60*60*2

# 拨号出错重试间隔

ADSL_ERROR_CYCLE = 5

# ADSL命令

ADSL_BASH = '/sbin/ifdown ppp0;/sbin/ifup ppp0'

# 代理运行端口

PROXY_PORT = 8888

# 拨号网卡

ADSL_IFNAME = 'ppp0'

# 代理池键名

PROXY_KEY = 'adsl'

# 测试URL

TEST_URL = 'http://www.baidu.com'

# 测试超时时间

TEST_TIMEOUT = 20

# API端口

API_PORT = 8000

# coding=utf-8

import re

import time

import requests

from requests.exceptions import ConnectionError, ReadTimeout

from redis import StrictRedis

import platform

if platform.python_version().startswith('2.'):

import commands as subprocess

elif platform.python_version().startswith('3.'):

import subprocess

else:

raise ValueError('python version must be 2 or 3')

class Sender():

def get_ip(self, ifname=ADSL_IFNAME):

"""

获取本机IP

:param ifname: 网卡名称

:return:

"""

(status, output) = subprocess.getstatusoutput('ifconfig')

if status == 0:

pattern = re.compile(ifname + '.*?inet.*?(\d+\.\d+\.\d+\.\d+).*?netmask', re.S)

result = re.search(pattern, output)

if result:

ip = result.group(1)

return ip

def test_proxy(self, proxy):

"""

测试代理

:param proxy: 代理

:return: 测试结果

"""

try:

response = requests.get(TEST_URL, proxies={

'http': 'http://' + proxy,

'https': 'https://' + proxy

}, timeout=TEST_TIMEOUT)

if response.status_code == 200:

return True

except (ConnectionError, ReadTimeout):

return False

def remove_proxy(self):

"""

移除代理

:return: None

"""

redis = StrictRedis(host='xxx.xx.xx.x', port=26379, password='xxxxxx', db=0)

redis.hdel('proxy', PROXY_KEY)

print('Successfully Removed Proxy')

def set_proxy(self, proxy):

"""

设置代理

:param proxy: 代理

:return: None

"""

rediscli = StrictRedis(host='xxx.xx.xx.x', port=26379, password='xxxxxx', db=0)

if rediscli.hset('proxy', PROXY_KEY, proxy):

print('Successfully Set Proxy', proxy)

def adsl(self):

"""

拨号主进程

:return: None

"""

while True:

print('ADSL Start, Remove Proxy, Please wait')

try:

self.remove_proxy()

except:

pass

(status, output) = subprocess.getstatusoutput(ADSL_BASH)

if status == 0:

print('ADSL Successfully')

ip = self.get_ip()

if ip:

print('Now IP', ip)

print('Testing Proxy, Please Wait')

proxy = '{ip}:{port}'.format(ip=ip, port=PROXY_PORT)

if self.test_proxy(proxy):

print('Valid Proxy')

self.set_proxy(proxy)

print('Sleeping')

time.sleep(ADSL_CYCLE)

else:

print('Invalid Proxy')

else:

print('Get IP Failed, Re Dialing')

time.sleep(ADSL_ERROR_CYCLE)

else:

print('ADSL Failed, Please Check')

time.sleep(ADSL_ERROR_CYCLE)

if __name__ == '__main__':

sender = Sender()

sender.adsl()

3.代理池中的代理检查

 

动态拨号VPS代理服务器搭建HTTP代理ip教程

 

打开redsi可以看到对应的db中已经有相应的代理。

上一篇:静态ip和动态ip那好?怎么选择下一篇:国内ip转换器,换ip软件哪个比较好用
91vps最新活动
购物车
在线客服
客户定制
大客户
公众号
91vps微信公众号

扫码关注微信公众号

返回顶部

意见建议

意见一旦采用,我们将有偿奖励

马上开启91VPS云计算之旅

47358+用户的选择,75648+小时稳定运行

立即注册
91vps

Copyright © 齐创云计算 All Rights Reserved. 2014-2022
本模板版权局已登记·盗版必究,登记号:黔作登字-2020-F-00124514

91vps微信客服

微信客服

91vps微信公众号

关注公众号

《中华人民共和国增值电信业务经营许可证》ISP/IDC:B1-20221128 EDI在线数据处理与交易处理业务许可证:鄂B2-20210063 互联网虚拟专用网业务许可证:鄂B1-20221128
公安备案标识 鄂网公安备案: 42090202000094号 工信部ICP备案:鄂ICP备20001916号-10 技术支持:齐创云计算
“安全联盟认证”