原文: 使用nat vps的一點注意事項
什麼是nat vps?從名字就能夠想到,這些vps沒有公網ip,而是nat內網機器,只能經過nat端口轉發方式對外提供服務。多臺nat vps共享一個公網ip,因此費用通常比配置公網ip的機器要便宜。nat vps的缺點主要是對外暴露的端口受限制(許多vps商家能用的外網端口號一萬起),可用的端口數量也有限制(通常十到五十個)。php
國內外有很多商家提供大寬帶的nat vps,例如cloudiplc、uovz、olvps等。只提供國內大帶寬的nat vps比較便宜,二三十每個月起。用於滬日iplc、深港iplc專線的nat vps流量較貴,將近1元/GB。iplc線路的特色是號稱不過牆,延遲低(滬日低於50ms),秒殺各類CN2,很是適合用來作轉發。nginx
本站提供一些軟件的本地下載,因近期下載人數太多,額外增長了三臺服務器提供下載服務。考慮到下載速度的問題,前兩天嘗試用大帶寬的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的限制,穩定對外提供服務,但願能給訪客帶來高速的下載體驗。code
總結:nat vps看不到用戶的真實ip,那些須要用到用戶真實ip的業務,請謹慎,以避免有意料外的影響。固然本人目前只用過一家nat vps,不清楚其餘家是否也是這種狀況。vps