redsocks+iptables+socks5服务商

前言

为了防止代收邮件服务被加入邮件服务商的黑名单,而导致代收失败,将代收服务不定时的更换ip出口。

代理厂商

要想实现多Ip出口,只能购买代理厂商的资源。其中又分为国内厂商与国外厂商。国外厂商支持的协议多,但延迟普遍较大,且容易被GFW封禁,所以不在此次考虑范围内。国内的厂商多而杂,下面将列出一些比较。

厂商代理类型每天去重代理数官网其他说明
蜻蜓代理HTTP/HTTPS>15whttps://proxy.horocn.com/隧道代理方式没有并发数限制
芝麻代理HTTP,HTTPS,SOCKs5https://zhimahttp.com/不支持包年服务,不限制并发,不支持隧道模式
极光爬虫代理HTTP,HTTPS,SOCKs5http://jahttp.jiguangdaili.com/隧道代理模式下,按流量购买套餐。
快代理HTTP,HTTPS,SOCKs515w(未去重)https://www.kuaidaili.com/隧道模式没有并发限制,按需选择带宽,白名单。
站大爷HTTP,HTTPS,SOCKs550w(未去重)https://www.zdaye.com/不支持隧道模式
星速云HTTP,HTTPSxingsudaili.com隧道下无并发限制(价格较高)

由于代收服务无法修改底层socket代码(使用第三方lib),而提取Ip池方式,需要定时更改系统代理软件配置,增加了不确定性。建议采用隧道代理模式,方便部署。

服务采用tcp协议,选取socks5代理。多维度对比下,选取快代理。

socks5

socks5类型的代理服务器在网络层级上是工作于应用层的会话层,很多流量都无法代理。此时则需要一个工具redsocks。

redsocks

This tool allows you to redirect any TCP connection to SOCKS or HTTPS proxy using your firewall, so redirection may be system-wide or network-wide.

部署安装

以下使用redsocks+iptables+socks5方式全局代理tcp协议。

系统环境centos7

  1. 安装libevent
yum install libevent libevent-devel -y
  1. 安装配置redsocks
git clone https://github.com/darkk/redsocks.git
cd redsocks/
make
echo 'base {
    log_debug = on;
    log_info = on;
    log = "file:/tmp/reddi.log";
    daemon = on;
    redirector = iptables;
}
redsocks {
    local_ip = 127.0.0.1;
    local_port = 2080;
    ip = tps146.kdlapi.com;
    port = 20818;
    type = socks5;
}' > redsocks.conf

注意: 替换ip = tps146.kdlapi.com;port = 20818;的配置为你的代理厂商的。

  1. 安装配置iptables
yum install -y iptables iptables-services

echo '#!/bin/bash
# Create new chain
iptables -t nat -N REDSOCKS
# Ignore LANs and some other reserved addresses.
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
#iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Anything else should be redirected to port 2080
-A REDSOCKS -d proxy_server_ip -j RETURN
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 2080
iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDSOCKS
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDSOCKS
iptables -t nat -A OUTPUT -p tcp --dport 8503 -j REDSOCKS' > iptables-proxy-start.sh

echo 'iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
killall redsocks' > iptables-proxy-stop.sh

8503为测试的出口地址,比如代收的110,143端口。

  1. 启动
systemctl start iptables

./redsocks -c redsocks.conf

sh iptables-proxy-start.sh
  1. 测试

请添加图片描述

三次访问使用的是不同的ip


版权声明:本文为witto_sdy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。