在自己的VPS上利用v2ray+Tor打造代理IP池
v2ray轮询+Tor多链路,每次请求都可以拿到一个不同的IP
当我们做以下业务的时候,可能会需要大量代理IP:
- HTTP CC/DDOS网站
- 爬虫,突破反爬
- 基于IP判断用户的投票系统,刷票
- 玩pixelcanvas类型的像素画网站,用IP判断不同用户的
- ……
互联网上免费代理IP的网站很多,自建代理IP池的方法也很多。比如下面这个项目:
constverum/ProxyBroker
包括国内也有一些类似的项目。
但这些方式都有缺点,比如代理IP稳定性不可靠,需要后期二次手动校验;国外代理国内访问有困难;匿名性没有很好的保证等等。
今天介绍一种我摸索出来的方法,利用v2ray+Tor自建代理IP池。你需要有一台自己的VPS。
1. 在VPS上安装Tor命令行版本
debian/ubuntu可以运行命令:
centos可以运行命令:
安装好后,编辑/etc/tor/torrc
,进行如下编辑(部分配置项):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| SOCKSPort 38801 SOCKSPort 38802 SOCKSPort 38803 SOCKSPort 38804 SOCKSPort 38805 SOCKSPort 38806 SOCKSPort 38807 SOCKSPort 38808 SOCKSPort 38809 SOCKSPort 38810
SOCKSPolicy accept 127.0.0.1 SOCKSPolicy reject *
NewCircuitPeriod 30 CircuitBuildTimeout 10
|
/etc/tor/torrc
进阶配置:
ip使用指定方式:
1
| ExitNodes ip/fingerprint
|
或
1 2
| ExitNodes {tw} StrictNodes 1
|
避开指定方式访问网站:(黑名单)
1 2
| ExcludeExitNodes {tw} ExcludeNodes {tw}
|
2. 在VPS上配置v2ray桥接到tor端口
请参考v2ray的官方文档,这里outbounds部分配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| "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部分配置如下:
1 2 3 4 5 6 7 8 9 10
| "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。
我使用以下脚本进行测试:
1 2 3 4 5 6 7 8
| #!/bin/bash n=0 while [ $n -lt 80 ]; do echo "${n}:" curl -x socks5://127.0.0.1:10808 ifconfig.me echo "" n=$((n+1)) done
|
这样就完成了。你可以增加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. 有什么优点?
4.4. 有什么缺点?
- 有些网站禁止tor节点的IP访问
- 速度不如国内的代理IP快
- 请仔细查看你VPS提供商的ToS,需要不禁止你在机子上跑tor
4.5 Tor区域码表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246
| ASCENSION ISLAND:ac AFGHANISTAN:af ALAND:ax ALBANIA:al ALGERIA:dz ANDORRA:ad ANGOLA:ao ANGUILLA:ai ANTARCTICA:aq ANTIGUA AND BARBUDA:ag ARGENTINA REPUBLIC:ar ARMENIA:am ARUBA:aw AUSTRALIA:au AUSTRIA:at AZERBAIJAN:az BAHAMAS:bs BAHRAIN:bh BANGLADESH:bd BARBADOS:bb BELARUS:by BELGIUM:be BELIZE:bz BENIN:bj BERMUDA:bm BHUTAN:bt BOLIVIA:bo BOSNIA AND HERZEGOVINA:ba BOTSWANA:bw BOUVET ISLAND:bv BRAZIL:br BRITISH INDIAN OCEAN TERR:io BRITISH VIRGIN ISLANDS:vg BRUNEI DARUSSALAM:bn BULGARIA:bg BURKINA FASO:bf BURUNDI:bi CAMBODIA:kh CAMEROON:cm CANADA:ca CAPE VERDE:cv CAYMAN ISLANDS:ky CENTRAL AFRICAN REPUBLIC:cf CHAD:td CHILE:cl PEOPLE'S REPUBLIC OF CHINA:cn CHRISTMAS ISLANDS:cx COCOS ISLANDS:cc COLOMBIA:co COMORAS:km CONGO:cg CONGO (DEMOCRATIC REPUBLIC):cd COOK ISLANDS:ck COSTA RICA:cr COTE D IVOIRE:ci CROATIA:hr CUBA:cu CYPRUS:cy CZECH REPUBLIC:cz DENMARK:dk DJIBOUTI:dj DOMINICA:dm DOMINICAN REPUBLIC:do EAST TIMOR:tp ECUADOR:ec EGYPT:eg EL SALVADOR:sv EQUATORIAL GUINEA:gq ESTONIA:ee ETHIOPIA:et FALKLAND ISLANDS:fk FAROE ISLANDS:fo FIJI:fj FINLAND:fi FRANCE:fr FRANCE METROPOLITAN:fx FRENCH GUIANA:gf FRENCH POLYNESIA:pf FRENCH SOUTHERN TERRITORIES:tf GABON:ga GAMBIA:gm GEORGIA:ge GERMANY:de GHANA:gh GIBRALTER:gi GREECE:gr GREENLAND:gl GRENADA:gd GUADELOUPE:gp GUAM:gu GUATEMALA:gt GUINEA:gn GUINEA-BISSAU:gw GUYANA:gy HAITI:ht HEARD & MCDONALD ISLAND:hm HONDURAS:hn HONG KONG (china):hk HUNGARY:hu ICELAND:is INDIA:in INDONESIA:id IRAN, ISLAMIC REPUBLIC OF:ir IRAQ:iq IRELAND:ie ISLE OF MAN:im ISRAEL:il ITALY:it JAMAICA:jm JAPAN:jp JORDAN:jo KAZAKHSTAN:kz KENYA:ke KIRIBATI:ki KOREA, DEM. PEOPLES REP OF:kp KOREA, REPUBLIC OF:kr KUWAIT:kw KYRGYZSTAN:kg LAO PEOPLE'S DEM. REPUBLIC:la LATVIA:lv LEBANON:lb LESOTHO:ls LIBERIA:lr LIBYAN ARAB JAMAHIRIYA:ly LIECHTENSTEIN:li LITHUANIA:lt LUXEMBOURG:lu MACAO:mo MACEDONIA:mk MADAGASCAR:mg MALAWI:mw MALAYSIA:my MALDIVES:mv MALI:ml MALTA:mt MARSHALL ISLANDS:mh MARTINIQUE:mq MAURITANIA:mr MAURITIUS:mu MAYOTTE:yt MEXICO:mx MICRONESIA:fm MOLDAVA REPUBLIC OF:md MONACO:mc MONGOLIA:mn MONTENEGRO:me MONTSERRAT:ms MOROCCO:ma MOZAMBIQUE:mz MYANMAR:mm NAMIBIA:na NAURU:nr NEPAL:np NETHERLANDS ANTILLES:an NETHERLANDS, THE:nl NEW CALEDONIA:nc NEW ZEALAND:nz NICARAGUA:ni NIGER:ne NIGERIA:ng NIUE:nu NORFOLK ISLAND:nf NORTHERN MARIANA ISLANDS:mp NORWAY:no OMAN:om PAKISTAN:pk PALAU:pw PALESTINE:ps PANAMA:pa PAPUA NEW GUINEA:pg PARAGUAY:py PERU:pe PHILIPPINES (REPUBLIC OF THE):ph PITCAIRN:pn POLAND:pl PORTUGAL:pt PUERTO RICO:pr QATAR:qa REUNION:re ROMANIA:ro RUSSIAN FEDERATION:ru RWANDA:rw SAMOA:ws SAN MARINO:sm SAO TOME/PRINCIPE:st SAUDI ARABIA:sa SCOTLAND:uk SENEGAL:sn SERBIA:rs SEYCHELLES:sc SIERRA LEONE:sl SINGAPORE:sg SLOVAKIA:sk SLOVENIA:si SOLOMON ISLANDS:sb SOMALIA:so SOMOA,GILBERT,ELLICE ISLANDS:as SOUTH AFRICA:za SOUTH GEORGIA, SOUTH SANDWICH ISLANDS:gs SOVIET UNION:su SPAIN:es SRI LANKA:lk ST. HELENA:sh ST. KITTS AND NEVIS:kn ST. LUCIA:lc ST. PIERRE AND MIQUELON:pm ST. VINCENT & THE GRENADINES:vc SUDAN:sd SURINAME:sr SVALBARD AND JAN MAYEN:sj SWAZILAND:sz SWEDEN:se SWITZERLAND:ch SYRIAN ARAB REPUBLIC:sy TAIWAN (china):tw TAJIKISTAN:tj TANZANIA, UNITED REPUBLIC OF:tz THAILAND:th TOGO:tg TOKELAU:tk TONGA:to TRINIDAD AND TOBAGO:tt TUNISIA:tn TURKEY:tr TURKMENISTAN:tm TURKS AND CALCOS ISLANDS:tc TUVALU:tv UGANDA:ug UKRAINE:ua UNITED ARAB EMIRATES:ae UNITED KINGDOM (no new registrations):gb UNITED KINGDOM:uk UNITED STATES:us UNITED STATES MINOR OUTL.IS.:um URUGUAY:uy UZBEKISTAN:uz VANUATU:vu VATICAN CITY STATE:va VENEZUELA:ve VIET NAM:vn VIRGIN ISLANDS (USA):vi WALLIS AND FUTUNA ISLANDS:wf WESTERN SAHARA:eh YEMEN:ye ZAMBIA:zm ZIMBABWE:zw
|
本文仅提供技术思路,请勿用于非法业务。
参考文章:
在自己的VPS上利用v2ray+Tor打造代理IP池 (skyju.cc)
TOR浏览器进阶使用指南:指定or禁止 出口节点 - 知乎 (zhihu.com)