我在服务器 centos7 上(已经关闭防火墙)写爬虫爬取同一个网站的文章(大概一秒访问几次那样,即频繁访问了),经过一段时间后,发现访问不了那个网站了。
ping 一下那个网站,能够 ping 通。我刚开始以为是那个网站屏蔽了我的 ip ,但是我这时候在同一个内网的另外一个服务器运行是可以访问的,这说明不大像被屏蔽 ip 了;而我在同一台服务器能够正常访问其他网站,这说明不是网络出现问题了。再后来,我发现重启服务器之后就可以了,这说明,确实是本地的问题。重启后正常,可是隔段时间又出现同样问题。
我尝试过重启网络服务,但是没效。总不能遇到问题就重启吧?大家帮忙想想,这是什么原因所致?感觉应该是服务器本身的问题。
会不会是 cookie 什么的?
抓太多,本地端口不够用了吧。出问题的时候执行下,看看用了多少端口。
```
ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}'
```
netstat
你这句命令的结果是
SYN-RECV 15
LISTEN 6
ESTAB 80
CLOSE-WAIT 77
State 1
SYN-SENT 1
TIME-WAIT 4
这个跟 cookie 无关,爬这个不需要 cookie 。此外,根据问题的分析,应该是机器本身的问题。
这是?
针对同一个 ip+端口做的防攻击策略吧。你重启再连端口换了
有什么解决办法吗
先看看抓其他站会不会这样,目测是有防火墙
其他站不会,防火墙已经关闭了
用代理服务器啊。免费的网上可以找到定时更新的列表,也有收费的。一个代理挂了换另一个,就是这个服务器列表要自己去维护了
已经说了,在同一个路由器下的另外一个服务器运行正常~说明不可能是封了 ip 的
不是说了端口不同吗?另外一个服务器怎么跟这个服务器怎么可能用的同一个端口
屏蔽策略有的是限制来源 ip ,有的是限制 ip+port 的,单凭另一台机器的状况不能判断问题。