標籤:

Vultr 的東京和洛杉磯機房,哪個更好?


在此提供兩個分享註冊的鏈接,歡迎使用,互利共贏。

10美元的:

http://www.vultr.com/?ref=6972309

http://www.vultr.com/?ref=6962898

20美元的:

http://www.vultr.com/?ref=6979043-3B

http://www.vultr.com/?ref=6964472-3B

=====正文=====

我使用VPS的經驗比較有限,用過阿里雲、aws、vultr,現在比較推崇vultr,理由是按時計費合理,調用api創建/銷毀/重啟實例方便,每個實例可添加2個額外IP(適合爬蟲等),售後服務不錯。價格也可以,每月5刀那種配置能滿足不少場景需求了。

我現在是把它跟阿里雲配合用的,比如搞爬蟲時,阿里雲是調度、數據中心,vultr是提供資源幹活的。開始用vultr源起於某段時間搞爬蟲的痛點,各種被403/503,買了代理庫的代理信息,但用著很不爽,可用率比較低,能用的沒多久也down掉了。後來在知乎搜VPS用發現了vultr,開始試用。按小時計費,有比較完善的api,研究了下api用python寫了管理腳本,批量創建、銷毀實例十分方便,用起來實在太爽。跑過爬蟲的應該知道IP的重要性,vultr干這個效率很高。每個實例可添加2個額外IP,不過額外收費,且需額外配置。

機房連接速度方面,我用的北京聯通,一開始測了洛杉磯、日本的感覺日本的稍快些,用著也不錯,過了幾天開第二個賬號發現日本的各種連接問題,大致40%的實例創建後ping不通,開ticket跟工作人員溝通了很久,最終確認問題還是在我們這邊,美國的也有類似問題;再後來發現悉尼的連接穩定性很好,且速度不錯,用bypy往百度雲傳文件均速大約2M(不確定是我開的那台比較好還是普遍這樣,後來沒往百度雲傳過東西了),於是用api直接開了30台在悉尼,全部工作順利。上個圖:

分享幾個注意事項:

1、建第二個賬號後發現smtp網路被默認禁用了,開ticket確認了此事,工作人員主動給解封了,說是新政策,為了反垃圾郵件。

2、我的兩個賬號默認實例限制分別是5或者10,不太清楚為什麼不一樣,不過可以要求放寬限制,我的兩個現在分別是10和20,後面應該可以繼續提升;限制實例數量據說主要是出於安全目的(也可能跟我最開始用的是現金券有關)。

3、批量開實例前建議測試下網路連接,不同省市、不同運營商的網路差別可能挺大,到某地機房的具體線路可以用mtr查看下。

用腳本查詢開的實例信息:

分享我寫的python管理腳本,有意用的同學可以修改下用。我限制了只能在我阿里雲機器的網段使用api,所以調用了代理(阿里雲上的shadowsocks)訪問api,再就是新建的實例會運行賬號下的script腳本,腳本會完成環境配置、從阿里雲上用git把代碼clone下來、啟動核心程序等工作。

script:

##### init set
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
##### install
apt-get update
apt-get -y upgrade
apt-get install -y gcc tmux vim git python-dev python-pip libxml2-dev libxslt1-dev libmysqld-dev
pip install lxml beautifulsoup4 shadowsocks mysql-python pysocks netifaces
pip install --upgrade requests
##### dirs
cd /root
##### ssh
# pem
wget http://example.com/skey.txt
mv skey.txt id_rsa_1024_aliyun.pem
chmod 0400 id_rsa_1024_aliyun.pem
# config
wget http://example.com/sshconfig.txt
cat sshconfig.txt &> ~/.ssh/config
rm sshconfig.txt
# known_hosts
wget http://example.com/knownhost.txt
cat knownhost.txt &> ~/.ssh/known_hosts
rm knownhost.txt
##### ss
wget http://example.com/sslocal.txt
mv sslocal.txt sslocal.json
sslocal -c sslocal.json
##### git
mkdir app
cd app
git clone ssh://aliyun/~/app/crawler
cd crawler
cp dat/cookie_tmpl.dat dat/cookie.dat
##### work
python regHost.py reg
python crawler.py 1
python regHost.py unreg

vultr.py

# coding: utf-8

import sys, requests, socket
# 自己寫的日誌類
from Utils import logging

import platform

if platform.platform().startswith("Windows"):
import win_inet_pton

class VultrManager():

def __init__(self, account):
self.name = socket.gethostname()
self.proxies = {"http": "socks5://127.0.0.1:1081", "https": "socks5://127.0.0.1:1081"}
if account == "account1":
key = "key of account1"
self.SSHKEYID = "57bbfc97ae887"
self.SCRIPTID = 21252
elif account == "account2":
key = "key of account2"
self.SSHKEYID = "57c8e90240e81"
self.SCRIPTID = 21554
self.api = {"API-KEY": key}

def listServers(self):
url = "https://api.vultr.com/v1/server/list"
res = requests.get(url, headers = self.api, proxies = self.proxies)
servers = res.json()
return servers

def getServerInfo(self, mid):
servers = self.listServers()
for server in servers:
serverId = server
hostname = servers[serverId]["label"]
hostId = hostname.split("-")[-1]
if hostId == mid:
for info in servers[serverId]:
print info + " " + str(servers[serverId][info])

def getServersInfo(self):
infos = []
servers = self.listServers()
for server in servers:
serverId = server
hostname = servers[serverId]["label"]
ip = servers[serverId]["main_ip"]
info = [serverId, hostname, ip]
infos.append(info)
print serverId + " " + hostname + " " + ip
return infos

def getOneId(self, mid):
servers = self.listServers()
for server in servers:
serverId = server
hostname = servers[serverId]["label"]
hostId = hostname.split("-")[-1]
if hostId == mid:
return serverId, hostname
return None, None

def createOne(self, mids):
if not type(mids) == list:
mids = [mids]
url = "https://api.vultr.com/v1/server/create"
serverId = None
for mid in mids:
name = hostGroup + "-" + str(mid)
argvs = {
"DCID": 19,
"OSID": 160,
"VPSPLANID": 29,
"SCRIPTID": self.SCRIPTID,
"SSHKEYID": self.SSHKEYID,
"hostname": name,
"label": name
}
res = requests.post(url, headers = self.api, data = argvs, proxies = self.proxies)
if res.status_code != 200:
log = "create server " + name + " failed, " + res.text
logging("e", log)
else:
serverId = res.json()["SUBID"]
log = "server " + name + " created, its id is " + serverId
logging("i", log)
return serverId

def createMany(self, start, end):
for i in range(start, end+1):
self.createOne(i)

def destroyOne(self, mids):
if not type(mids) == list:
mids = [mids]
result = None
for mid in mids:
serverId, hostname = self.getOneId(mid)
url = "https://api.vultr.com/v1/server/destroy"
data = {"SUBID": serverId}
res = requests.post(url, headers = self.api, proxies = self.proxies, data = data)
if res.status_code == 200:
log = hostname + " destroyed"
logging("i", log)
result = True
else:
log = "Failed, status code: " + str(res.status_code)
return result

def rebootOne(self, mids):
if not type(mids) == list:
mids = [mids]
result = None
for mid in mids:
serverId, hostname = self.getOneId(mid)
url = "https://api.vultr.com/v1/server/reboot"
data = {"SUBID": serverId}
res = requests.post(url, headers = self.api, proxies = self.proxies, data = data)
if res.status_code == 200:
log = hostname + " rebooted"
logging("i", log)
result = True
else:
log = "Failed, status code: " + str(res.status_code)
return result

def destroyMe(self):
hostId = self.name.split("-")[-1]
serverId, hostname = self.getOneId(hostId)
if not serverId:
log = "can not find you, misson failed"
logging("e", log)
return
else:
sd = self.destroyOne(hostId)
return sd

def destroyAll(self):
servers = self.getServersInfo()
for server in servers:
serverId, hostname, ip = server
hostId = hostname.split("-")[-1]
self.destroyOne(hostId)

def rebootAll(self):
servers = self.getServersInfo()
for server in servers:
serverId, hostname, ip = server
hostId = hostname.split("-")[-1]
self.rebootOne(hostId)

def updateScript(self):
url = "https://api.vultr.com/v1/startupscript/update"
with open("vultr.sh", "r") as f:
script = f.read()
data = {
"SCRIPTID": self.SCRIPTID,
"name": "default",
"script": script
}
res = requests.post(url, headers = self.api, proxies = self.proxies, data = data)
if res.status_code == 200:
log = str(self.SCRIPTID) + " updated"
logging("i", log)
else:
print res.status_code

if __name__ == "__main__":
hostGroup = "yourgroup"
account = sys.argv[1]
mode = sys.argv[2]
vultrManager = VultrManager(account)
if mode == "ia":
vultrManager.getServersInfo()
elif mode == "io":
mid = sys.argv[3]
vultrManager.getServerInfo(mid)
elif mode == "co":
mids = []
for i in range(len(sys.argv)-3):
mid = sys.argv[i+3]
mids.append(mid)
vultrManager.createOne(mids)
elif mode == "cm":
mid_s = int(sys.argv[3])
mid_e = int(sys.argv[4])
vultrManager.createMany(mid_s, mid_e)
elif mode == "do":
mids = []
for i in range(len(sys.argv)-3):
mid = sys.argv[i+3]
mids.append(mid)
vultrManager.destroyOne(mids)
elif mode == "dm":
vultrManager.destroyMe()
elif mode == "da":
vultrManager.destroyAll()
elif mode == "ro":
mids = []
for i in range(len(sys.argv)-3):
mid = sys.argv[i+3]
mids.append(mid)
vultrManager.rebootOne(mids)
elif mode == "ra":
vultrManager.rebootAll()
elif mode == "us":
vultrManager.updateScript()


vultr in Japan is as slow as fcuk at night or sometimes you don"t know.

the latency of the nodes in L.A. may be higher than that in Tokyo but it"s as stable as funk.

Do migrations from Tokyo to L.A. if you want something for the long run.

Experience.


用的東京的,用聯通的時候ping 60ms,體驗還不錯,用電信網的時候,呵呵呵,我的數據包呢?都丟太平洋了?

(現在聯通也丟包了,請視情況開啟BBR)


自建SSR伺服器,Tokyo節點,好的時候油管1080P秒開,抽風的時候開個狗狗首頁都費勁。


沒一個機房靠譜的,IP全部是廣播出去的,還不支持swap IP。

消費了好幾百美金經驗的所得。

當你開到25台左右的時候,還要求讓你上傳亂七八糟的證件,還要列印一個授權信用卡證明文件,非常折騰。

關鍵IP不靠譜,經常IP出現與真實地區不符,也是由於廣播的原因,然後很多網站判斷失真。


我是電信用戶,東京機房高峰期丟包比較高,安裝bbr加速後有所好轉,看視頻什麼的沒問題,美國機房ping值很穩定,但是下載帶寬很小,youtobe看看360p的視頻都會卡


東京伺服器移動很快,滿速的,電信速度太慢了。


首先,我想說一句話送給樓上,沒圖你們說個J8?!!!!

其次,說明我寫這個文章的原因也是順便推廣個鏈接!

Vultr: High Performance SSD Cloud.www.vultr.com圖標


好了,以下正文開始:

樓主需要的是東京機房和洛杉磯機房的數據,我只做主張,加上了同樣常用的新加坡機房;

分別測試PING延時,通訊鏈路【這個是以移動測試的,僅供參考】;發送5000個包的丟包率;

如下為測試數據:

我在VULTR新建三個伺服器,分別位於新加坡,東京,洛杉磯

洛杉磯機房數據

東京機房數據

新加坡機房數據


為什麼沒有人選擇新加坡呢?新加坡的節點怎麼樣?


本人電信,vultr tokyo ping 135左右,裝上銳速youtube 1080都無壓力。


這個與自己所在的運營商有關。使用vultr半年多了,開始選擇東京節點,但是最近發現晚上延遲高達800ms,然後切換到洛杉磯,延遲基本在200ms左右,比較穩定。


ping值已經不是大問題了。江蘇電信,晚高峰東京丟包25%-40%,LA都有15%。白天時間不定期隨機抽風,全國地區ping一片飄紅。

用前請謹慎,不要相信官網speedtest的下載速度,建議在某天的多個時段多ping一下,看下穩定性再決定。我已經打算換個cn2線路了


Vultr: High Performance SSD Cloud. 2.5刀基本夠用,電信走矽谷,聯通走新加坡,穩定可靠,新賬戶有充值翻倍的offer,建議多充點,老賬號幾乎沒有優惠了。


主要看你用的什麼寬頻,一般電信選美國機房,聯通選日本機房,再裝上谷歌的TCP-BBR技術,速度跑滿你的寬頻,噓,不要告訴別人哦~

Vultr: High Performance SSD Cloud. 這個鏈接目前在搞活動,充值10美元,贈送300美元,再找個優惠碼,你懂得...)


強烈不建議使用VULTR, 雖然活動很多,價格很低,但是會被莫名的封號。原因見另一篇我的回答:

vultr賬戶被封問題? - 信用卡 - 知乎


日本200ms以內丟包嚴重經常連不上,美國300ms左右


日本機房,白天還行,ping值100多ms,晚上就慢了,230左右,且經常丟包,聯通100M寬頻。觀察一段時間看看是否可以。以前用linode 新加坡IP用了一年多,最近變得特別慢,只能google點東西,看視頻是別想了,所以換到vultr上了。


最近東京的伺服器很慢


浙江電信,繞道廣東-美國-日本,可想而知。

微雲文件


看看東京是不是直連,如果要繞道美國的話不如用洛杉磯的反而更快、


推薦閱讀:

如何簡單通俗地解釋什麼是雲計算?
香港VPS哪家好?
哪家的vps性價比比較高?
推薦一個搭建vps玩亞服絕地求生?
有哪些價格不貴網速又快的vps?

TAG:VPS |