Back
Featured image of post 在自己的VPS上利用v2ray+Tor打造代理IP池

在自己的VPS上利用v2ray+Tor打造代理IP池

v2ray轮询+Tor多链路,每次请求都可以拿到一个不同的IP

当我们做以下业务的时候,可能会需要大量代理IP:

  • HTTP CC/DDOS网站
  • 爬虫,突破反爬
  • 基于IP判断用户的投票系统,刷票
  • 玩pixelcanvas类型的像素画网站,用IP判断不同用户的
  • ……

互联网上免费代理IP的网站很多,自建代理IP池的方法也很多。比如下面这个项目:

https://img13.360buyimg.com/ddimg/jfs/t1/142911/10/15775/154187/5fbd09e4E9f60e907/3eeef768797621a7.png

constverum/ProxyBroker

包括国内也有一些类似的项目。

但这些方式都有缺点,比如代理IP稳定性不可靠,需要后期二次手动校验;国外代理国内访问有困难;匿名性没有很好的保证等等。

今天介绍一种我摸索出来的方法,利用v2ray+Tor自建代理IP池。你需要有一台自己的VPS。

1. 在VPS上安装Tor命令行版本

debian/ubuntu可以运行命令:

apt install -y tor

安装好后,用nano或其他编辑器编辑/etc/tor/torrc,进行如下编辑(部分配置项):

SOCKSPort 38801 #这里开启多个tor端口,对于tor来说,每个端口会使用不同的链路,也就是不同的代理IP
SOCKSPort 38802
SOCKSPort 38803
SOCKSPort 38804
SOCKSPort 38805
SOCKSPort 38806
SOCKSPort 38807
SOCKSPort 38808
SOCKSPort 38809
SOCKSPort 38810

SOCKSPolicy accept 127.0.0.1 #为了安全性,只允许localhost访问tor的端口
SOCKSPolicy reject *

NewCircuitPeriod 30 #对于每个端口来说,每30秒重新创建一个新链路,也就是换一个新IP
CircuitBuildTimeout 10 #对于新建每个链路的过程来说,建立程序超过10秒则直接放弃,保障了连接到线路的质量

2. 在VPS上配置v2ray桥接到tor端口

请参考v2ray的官方文档,这里outbounds部分配置如下:

"outbounds": [{
		...(此处省略)
		{
			"protocol": "socks",
			"settings": {
				"servers": [{
					"address": "127.0.0.1",
					"port": 38801
				},{
					"address": "127.0.0.1",
					"port": 38802
				},
				...(此处省略)
				{
					"address": "127.0.0.1",
					"port": 38810
				}]
			},
			"tag": "my-tor"
		}
	]

outbounds中配置了一个tag为my-tor的socks出口,其中加入刚才tor开的一堆端口。v2ray会以轮询的方式使用每个端口,这样就可以做到每个连接都用不同的IP。

routing部分配置如下:

"routing": {
		"rules": [{
			{
				"inboundTag": ["websocket-over-https"],
				"network": "tcp",
				"outboundTag": "my-tor", #需要和上面outbound的tag名字一样
				"type": "field"
			}
		]
	}

然后自行配置一个inbound(这里不列出),我这里的配置是websocket-over-https。关于如何配置inbound,可以参考v2ray白话文教程。也可以使用v2-ui

3. 本地连接v2ray,测试可用性

本地我使用v2rayN连接VPS的v2ray,开启本地端口是10808。

我使用以下脚本进行测试:

#!/bin/bash
n=0
while [ $n -lt 80 ]; do
	echo "${n}:"
	curl -x socks5://127.0.0.1:10808 ifconfig.me #curl -x是指定代理方式连接,ifconfig.me是一个查询外网IP的网站
	echo ""
	n=$((n+1))
done

https://img12.360buyimg.com/ddimg/jfs/t1/129328/38/19814/62658/5fbd0f85Eabed1a43/99c79fdb4e55b908.png

这样就完成了。你可以增加tor开放socks端口的数量,也可以缩小NewCircuitPeriod的数值,做到尽可能的每次访问都用一个全新的IP。

4. 其他贴士

4.1. VPS连v2ray速度太慢了?

尝试给选用基于HTTPS的v2ray inbound协议,套一层Cloudflare CDN。使用better-cloudflare-ip这个项目自选最快的cf节点。

4.2. 如何进行HTTP CC/DDOS攻击?

由于v2rayN开放的本地端口是socks协议,而很多CC/DDOS软件只支持HTTP代理。那么可以安装一个proxifier,把相应软件的流量强行导向v2rayN开放的本地socks端口。

4.3. 有什么优点?

  • IP几乎是无限的、并且是高可用的
  • 匿名性非常高

4.4. 有什么缺点?

  • 有些网站禁止tor节点的IP访问
  • 速度不如国内的代理IP快
  • 请仔细查看你VPS提供商的ToS,需要不禁止你在机子上跑tor

本文仅提供技术思路,请勿用于非法业务,我对此不负责任。

Licensed under CC BY-NC-SA 4.0
-1