Mayx的运维笔记 - 隐藏自己 | Mayx的博客

18 April 2021 - 字数统计：1869 - 阅读大约需要6分钟 - Hits: Loading...

# Mayx的运维笔记 - 隐藏自己

by mayx

这是一篇创建于 天前的文章，其中的信息可能已经有所发展或是发生改变。

AI摘要

这篇文章记录了运维者Mayx处理网站内存溢出问题的经历。在处理过程中，他发现服务器被一个IP地址（159.89.47.109）攻击，且真实IP可能已被泄露。为保护服务器，他决定修改运行模式、升级服务器配置、使用frp保护SSH端口，并通过Vultr API更换了服务器的IP。同时，他还提到在处理过程中遇到的API变化，从V1升级到V2，以便更好地利用其RESTful特性来整合通知功能。最后，他强调了网站安全的重要性，遇到问题要及时备份和调整策略。

- 起因
- 解决IP泄露
- 更新快照脚本
- 总结

互联网是个很危险的地方……

#
起因

最近几天我维护的花火学园貌似时不时的会爆内存……不过这倒是也是正常的事情，PHP好像默认情况下不会自己释放内存，我之前本来是想把那个运行模式改成ondemand，但是看网上说好像都不怎么推荐……但是既然已经爆了几次内存，那我也没得选了，就把运行模式改了。

在检查服务器的这段时间里，我发现居然有一个不自量力的家伙在爆破我的服务器，看IP是159.89.47.109，随便访问了一下想不到上面还跑了个网站？不知道是这个网站被黑了变成肉鸡了还是这个网站的所有人确实脑子有问题……

#
解决IP泄露

总之无论如何这已经证明了论坛的真实IP已经泄露了，因为我开了很多防火墙白名单，对网络流量这一块限制的很严格，所以正常情况下外面是不应该知道我的网站IP的，不过我的SSH端口虽然改了，但是因为我的位置经常在变，所以这个并没有设置白名单。

不过还有一个可能性，最近貌似有个自称Tyosakuken FANZA的家伙给我们的运营商发了DMCA投诉，CloudFlare是真的会把真实IP告诉投诉者的。我不知道这个发投诉的人是个啥情况，总之这个公司貌似是日本的，先把日本的流量全封了再说。

另外IP肯定是要改了，正好趁这个机会干脆再小幅度的升一下服务器的配置好了，之前一直用的是Vultr的Cloud Compute，这次试试High Frequency说不定速度会变快。于是我就用快照重新部署了一下服务器。结果在等它部署的期间居然睡着了😂，这下可用率又要掉了。

不过SSH端口这个……我也不能每次要用的时候再去开它，那样很麻烦，所以……我想了想，要不然就用frp吧，直接不开放SSH端口，流量就从frp里经过，而且这个东西还支持访问验证，这样也能避免被扫了，不过我确实还是没办法确认这个东西的安全性，不知道这到底是提高了破解难度还是放了个定时炸弹……毕竟它是可以无视防火墙的啊。

#
更新快照脚本

换了IP之后服务器的ID也跟着一起变了，我正打算改这个东西的时候发现Vultr怎么也变了，原来用的是SUBID，现在变成了实例ID了……当时我不是很精通API所以是从网上随便找的脚本，现在我用PHP调API调的也算熟练了吧，正好这次V1的API貌似要被废弃了，我就看看文档，整个V2的API吧。代码如下：

    <?php
    $api_key="APIKey";
    $instance_id="实例ID";

    file_get_contents("https://api.vultr.com/v2/snapshots", false, stream_context_create(array('http' => array('method'=>'POST','header'=>"Content-Type: application/json;charset=utf-8\r\nAuthorization: Bearer ".$api_key,'content'=>'{"instance_id": "'.$instance_id.'"}'))));

    $snapshot_list=json_decode(file_get_contents("https://api.vultr.com/v2/snapshots",false,stream_context_create(array('http' => array('method'=>'GET','header'=>"Authorization: Bearer ".$api_key)))),true);
    if($snapshot_list["meta"]["total"]>10){
    	file_get_contents("https://api.vultr.com/v2/snapshots/".$snapshot_list["snapshots"][0]["id"],false,stream_context_create(array('http' => array('method'=>'DELETE','header'=>"Authorization: Bearer ".$api_key))));
    }

像这个也可以整合我之前写的测试号通知或者企业号通知来用，用之前记得加上addslashes，不然可能会出问题。

另外这个V2的API貌似还是RESTful的呢，看起来倒是更简单易懂了。

#
总结

总之在网上一定要注意网站安全，一旦有出问题的迹象要赶紧备份，有必要的情况该换IP就只能换了。

tags: 运维 - 笔记 - 隐藏 查看原始文件

#### 推荐文章

Loading...

上一篇：自制微信二维码登录API
下一篇：网络任意互联指南
想问这篇文章
召唤伊斯特瓦尔