第一次遇到一件怪事, 用 curl 写了一个获取任意网站标题的程序, 先前在本地测试,服务器测试都正常, 但是今天偶然获取一个网址时却导致网站被重置 2 分钟,期间就像服务器 IP 被墙了一样,2 分钟后网站恢复正常,测试获取其它网站又没问题 。 我又在本地测试获取要被重置的网站,也能正常获取到, 但是在服务器上却一访问就提示连接被重置(需要获取的网站能正常访问) ,如果将服务器 ip ssh 代理访问该网站, 然后访问其他网站也会出现连接被重置,不过网站能正常访问,这是为什么呢?
1
basstk 2018-08-30 10:28:04 +08:00
应该是服务器问题,我的阿里云服务器,上午有时候也这样,一段时间反应特慢
|
3
delectate 2018-08-30 10:50:51 +08:00
太频繁了吧,也许是被防火墙 ban 了,也许是你机房问题。
|
4
chaodada 2018-08-30 10:50:59 +08:00
代码贴一下大伙研读研读
|
5
eopdsm OP @chaodada
<?php error_reporting(0); header('Content-type: application/json'); $url=$_SERVER["QUERY_STRING"]; $url =str_ireplace("url=","",$url); if($url){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 5); $data = curl_exec($curl); curl_close($curl); $encode = mb_detect_encoding($data, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5')); $data = mb_convert_encoding($data, "utf-8", $encode); preg_match("/<title(.*?)>(.*?)<\/title>/i",$data,$title); $title = $title[2]; } if($title){ $arr = array("msg"=>"succes","title"=>$title); }else{ $arr = array("msg"=>"error"); } echo json_encode($arr); ?> |
6
eopdsm OP |
9
chaodada 2018-08-30 11:19:30 +08:00
@eopdsm http://demo.19year.cn/ 服务器是可以的
|
10
eopdsm OP @chaodada 额 , 我换了搬瓦工两台 vps, 还有个美国的 cpanel 空间测试都出现连接被重置,  ̄□ ̄||
|
11
chaodada 2018-08-30 11:21:49 +08:00
感情全是国外的。。。
|
12
chaodada 2018-08-30 11:22:05 +08:00
我试试我的香港阿里云
|
14
chaodada 2018-08-30 11:52:00 +08:00
香港的也重置 ...
|
15
chaodada 2018-08-30 11:54:05 +08:00
我又试了一下台湾的 win 系统 谷歌浏览器打开直接显示重置 浏览器也打不开
|
18
eopdsm OP @chaodada 提示:Failed to connect to 127.0.0.1 port 1080: Connection refused, 然后程序就罢工了, 什么网址都不行了
|
19
chaodada 2018-08-30 13:31:44 +08:00
....我测试使用 curl 代理一直没成功过、、、
|
20
yongjing 2018-08-30 13:56:15 +08:00
这个网站,翻墙是访问不了的,限制国外 ip 访问了吧
|
23
SukkaW 2018-08-30 14:17:29 +08:00
这个网站有安全狗。你用浏览器打开 http://www.fznc.org/newslist.aspx?page=1&nc_id=8 都会触发 WAF
|
24
eopdsm OP @SukkaW https://www.v2ex.com/t/484636 详细说明了下, 感觉不是安全狗的原因,他怎么有权限让我的网站瘫痪呢, 虽然现在这个解决了,方法是提交前先对网址进行 base64 编码, 但是不知道为什么不编码就要造成连接被重置 , 期待大神解答。
|