服务端搭建节点爬虫

今天讲讲怎么在vps上搭建一个网络爬虫,自动抓取tg频道、订阅地址、公开互联网上的ss、ssr、vmess、trojan节点信息,聚合去重后提供节点列表。俗称“菜篮子”,下面详细讲讲怎么搭建。

申请域名和填写DNS记录

首先你要注册一个免费域名,这个可以到Freenom上免费搞一个,不多讲。

域名注册好后,需要添加两条DNS记录,建议使用Cloudflare的DNS解析,如果IP被墙可以使用它的CDN复活,没被墙就不建议使用了,毕竟减速CDN不是白叫的。添加两条DNS解析记录,如果没有v6IP的话,就填一个v4IP,如下:

Name (prefix) Type TTL Target
@ A 3600 这里填写vps上的v4IP
@ AAAA 3600 这里填写vps上的v6IP

上面完成后,就开始服务端的配置了。

申请SSL证书

安装certbot-auto

1
2
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

certbot-auto申请证书,下面命令替换邮箱和域名:

./certbot-auto certonly --standalone --email youmail@mail -d xxxx.com

运行完成后,会生成类似下面路径的证书,俺们要记下公钥、私钥的路径:

1
2
/etc/letsencrypt/live/xxxx.com/fullchain.pem    #证书公钥,xxxx.com是你的域名
/etc/letsencrypt/live/xxxx.com/privkey.pem #证书私钥

安装proxypool

proxypool项目地址:https://github.com/Sansui233/proxypool

下载proxypool

wget -O - https://github.com/Sansui233/proxypool/releases/download/v0.4.4/proxypool-linux-amd64-v0.4.4.gz | gzip -d > /usr/bin/proxypool

chmod +x /usr/bin/proxypool

下载config.yaml和source.yaml配置文件,首先新建一个pool文件夹存放配置文件:

1
2
3
4
5
mkdir /etc/pool && cd /etc/pool

wget https://raw.githubusercontent.com/Sansui233/proxypool/master/config/config.yaml

wget https://raw.githubusercontent.com/Sansui233/proxypool/master/config/source.yaml

修改config.yaml文件

vi /etc/pool/config.yaml

1
2
3
4
5
6
7
8
domain: example.com  # 这里修改成你的域名
port: # 默认内部端口 12580

source-files:
# 这里是source.yaml文件路径,需要添加订阅源可以在里面改
- /etc/pool/source.yaml
# 下面是扫描间隔时长,默认60分钟,单位分钟
crontime: 120 # default 60

proxypool配置systemd服务

vi /etc/systemd/system/proxypool.service 填入下面内容:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=proxypool
After=network-online.target

[Service]
Type=simple
Restart=on-abort
ExecStart=/usr/bin/proxypool -c /etc/pool/config.yaml

[Install]
WantedBy=default.target

重载systemd服务 systemctl daemon-reload

服务端配置Nginx

安装Nginx

apt install nginx

配置Nginx的Server文件

vi /etc/nginx/sites-available/default

修改配置如下,对应修改域名和证书路径:

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
server {
listen 80;
listen [::]:80;
server_name xxxx.com; #域名
root /var/www; #网站根目录,可以挂个探针什么的
#下面是https跳转
location / {
return 301 https://$server_name$request_uri;
}
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name xxxx.com; #域名
root /var/www;

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/letsencrypt/live/xxxx.com/fullchain.pem; #证书路径,把里面的xxxx.com改成你的域名
ssl_certificate_key /etc/letsencrypt/live/xxxx.com/privkey.pem;
# 下面是对应proxypool转发12580端口
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:12580/;
}
}

检查nginx:

nginx -t

运行nginx

systemctl start nginx

成功运行nginx后,就可以运行proxypool了。运行命令如下:

systemctl start proxypool #启动

systemctl enable proxypool #添加开机启动

systemctl status proxypool #查看运行状态

systemctl restart proxypool #重新启动

到此,也就搭建完成了。可以在浏览器打开你的域名查看“菜篮子”的爬取具体信息。下面是俺搭建的“菜篮子”示例:

https://proxypool.ga

参考: