glider–将机场节点变为爬虫代理池的神器

glider–将机场节点变为爬虫代理池的神器

手里有大量的机场节点,由于渗透、攻防、爬虫等需要,想要把这些机场的ip作为代理池使用。这时候就需要一个上游代理把这些机场节点汇总在一起。

大家可能遇到过这样一种场景

glider 完全满足这类场景,而且可以定期对ip进行健康检测,自动轮询等功能,可作为系统服务稳定运行。glider 对于 trojan、v2ray、ss、ssr这几类常见的机场协议都是支持的,同时还支持很多其他的协议。

可参考:https://github.com/nadoo/glider#protocols

ProtocolListen/TCPListen/UDPForward/TCPForward/UDPDescription
HTTPclient & server
SOCKS5client & server
SSclient & server
Trojanclient & server
VLESSclient & server
VMessclient only
SSRclient only

安装部署

https://github.com/nadoo/glider/releases

下载对应的版本进行安装。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
wget https://github.com/nadoo/glider/releases/download/v0.16.0/glider_0.16.0_linux_amd64.tar.gz
tar xvf glider_0.16.0_linux_amd64.tar.gz
cd glider_0.16.0_linux_amd64/
cp config/examples/4.multiple_forwarders/glider.conf ./
cat glider.conf
wget https://github.com/nadoo/glider/releases/download/v0.16.0/glider_0.16.0_linux_amd64.tar.gz tar xvf glider_0.16.0_linux_amd64.tar.gz cd glider_0.16.0_linux_amd64/ cp config/examples/4.multiple_forwarders/glider.conf ./ cat glider.conf
wget https://github.com/nadoo/glider/releases/download/v0.16.0/glider_0.16.0_linux_amd64.tar.gz
tar xvf glider_0.16.0_linux_amd64.tar.gz 
cd glider_0.16.0_linux_amd64/
cp config/examples/4.multiple_forwarders/glider.conf ./
cat glider.conf

配置机场订阅节点

我们通过glider提供的模板配置文件进行修改。

添加✈️机场订阅的节点。因为机场订阅内容通常是用base64编码过的,所以需要解码拿到原始的节点内容。

这里我用trojan的机场节点做演示。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
curl -s http://你的机场订阅链接 | base64 -d | sed 's/^/forward=&/g'
curl -s http://你的机场订阅链接 | base64 -d | sed 's/^/forward=&/g'
curl -s http://你的机场订阅链接 | base64 -d | sed 's/^/forward=&/g'

将上面的节点内容放在配置文件中。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Verbose mode, print logs
verbose=True
listen=:8443
# 机场节点放在这里
forward=trojan://password@domain
forward=trojan://password@domain
forward=trojan://password@domain
# Round Robin mode: rr
# High Availability mode: ha
strategy=rr
# forwarder health check
check=http://www.msftconnecttest.com/connecttest.txt#expect=200
# check interval(seconds)
checkinterval=3000
# Verbose mode, print logs verbose=True listen=:8443 # 机场节点放在这里 forward=trojan://password@domain forward=trojan://password@domain forward=trojan://password@domain # Round Robin mode: rr # High Availability mode: ha strategy=rr # forwarder health check check=http://www.msftconnecttest.com/connecttest.txt#expect=200 # check interval(seconds) checkinterval=3000
# Verbose mode, print logs
verbose=True

listen=:8443

# 机场节点放在这里
forward=trojan://password@domain
forward=trojan://password@domain
forward=trojan://password@domain

# Round Robin mode: rr
# High Availability mode: ha
strategy=rr

# forwarder health check
check=http://www.msftconnecttest.com/connecttest.txt#expect=200

# check interval(seconds)
checkinterval=3000

修改配置文件后运行

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
./glider -config ./glider.conf
./glider -config ./glider.conf
./glider -config ./glider.conf

最终效果如下:

直接将机场订阅节点转换为了爬虫代理池,每次访问自动轮询ip。

screen 后台运行 glider

要作为爬虫代理池肯定是要将其作为系统服务稳定运行。这里用screen后台运行,当然也可以写成service,用systemctl调用。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[root@zgao glider_0.16.0_linux_amd64]#
screen -dmS glider ./glider -config ./glider.conf
screen -ls
screen -r glider
[root@zgao glider_0.16.0_linux_amd64]# screen -dmS glider ./glider -config ./glider.conf screen -ls screen -r glider
[root@zgao glider_0.16.0_linux_amd64]#
screen -dmS glider ./glider -config ./glider.conf
screen -ls
screen -r glider

其他问题

vmess协议不识别?

用v2ray的机场订阅发现报错,查看官方源码发现,glider还不支持常规的base64内容。

需要改写成这种形式,大家可以自行批量转换。

节点内容报错?

通常是节点中的密码带有特殊字符,glider支持还不是很完善,把报错的节点删除掉即可。

限制公网访问

将代理直接暴露在公网很容易被扫到,所以可以直接用iptables限制指定ip访问该端口。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
iptables -I INPUT -p tcp --dport 8443 -j DROP
iptables -I INPUT -s 127.0.0.1 -p tcp --dport 8443 -j ACCEPT
iptables -I INPUT -s your_ip -p tcp --dport 8443 -j ACCEPT
iptables -I INPUT -p tcp --dport 8443 -j DROP iptables -I INPUT -s 127.0.0.1 -p tcp --dport 8443 -j ACCEPT iptables -I INPUT -s your_ip -p tcp --dport 8443 -j ACCEPT
iptables -I INPUT -p tcp --dport 8443 -j DROP
iptables -I INPUT -s 127.0.0.1 -p tcp --dport 8443 -j ACCEPT
iptables -I INPUT -s your_ip -p tcp --dport 8443 -j ACCEPT

赞赏

微信赞赏支付宝赞赏