月下博客

使用nat vps的一点注意事项

NAT VPS简介

什么是nat vps?从名字就可以想到,这些vps没有公网ip,而是nat内网机器,只能通过nat端口转发方式对外提供服务。多台nat vps共享一个公网ip,所以费用一般比配置公网ip的机器要便宜。nat vps的缺点主要是对外暴露的端口受限制(许多vps商家能用的外网端口号一万起),可用的端口数量也有限制(一般十到五十个)。

国内外有不少商家提供大宽带的nat vps,例如cloudiplcuovzolvps等。只提供国内大带宽的nat vps比较便宜,二三十每月起。用于沪日iplc、深港iplc专线的nat vps流量较贵,将近1元/GB。iplc线路的特点是号称不过墙,延迟低(沪日低于50ms),秒杀各种CN2,非常适合用来做转发。

事情经过

本站提供 SS客户端SSR客户端V2ray客户端 以及 trojan了极点 的本地下载,因近期下载人数太多,额外增加了三台服务器提供下载服务。考虑到下载速度的问题,前两天尝试用大带宽的nat vps提供高速下载服务。

之前有人对本人提供的下载服务有过攻击行为,具体表现为同一个ip几十上百个连接,下载同一个文件。本人不清楚他们为什么这么做,让访客的下载体验变差?但这里提供的下载服务都是公益的啊,也没有用防盗链的方式限制其他网站的人用。虽然没想清楚为啥攻击,不过还是按照 限制并发连接数 一文的方法对下载服务器的防火墙和nginx做了限制,该封的ip就封,该限制的ip就限制。

前天买好nat vps,部署nginx、设置端口转发后,也按照之前的方式在nginx上做了限制。投入使用前自己先简单做了测试,下载速度能达到6MB/s,与所说的100Mb端口相差不大。一切就绪后,开始切换流量对外服务。

昨晚登录到vps,用 netstat -nt 查看连接数,忽然发现对方连接地址不是用户的真实ip,而是nat vps网关的ip。意识到这点后,我发现了问题的严重性:nginx对ip限制了并发连接数,但目前拿到的ip都是同一个,也就是说同一时间最多只能有设定的n个人可以下载,其他人打开都会提示503错误。

打开nginx的error日志,果然一片错误:limiting connections by zone “XXX”。心想这下坏了,这都快上万个报错,说明一天内有有好几千个人从本站下载客户端,点进去后却发现提示503,一脸懵逼后只好退出再去其他地方找。

总结

因为第一次使用nat vps,只能说对前天进来下载但是失望的人说抱歉了。目前nat vps已经解除了ip的限制,稳定对外提供服务,希望能给访客带来高速的下载体验。

总结:nat vps看不到用户的真实ip,那些需要用到用户真实ip的业务,请谨慎,以免有意料外的影响。当然本人目前只用过一家nat vps,不清楚其他家是否也是这种情况。