標籤:

2014 年 10 月 23 號 Steam 大規模無法訪問是什麼原因?

好奇怪,下午打開steam的時候突然發現不正常了。商店社區和庫存都出現了問題。想問問這是什麼原因,是大事件還是單純的出現問題

----------------------------------

目前已經可以正常登陸了,感謝大家的回答,受益良多。也許,生命雖短,且用且珍惜。

2014.10.24


這個問題我要來答一下。談技術。之前的前言和10.24新增的一些討論可以見末尾。

先說結論。我推測是GFW。探測的方式是通過域名關鍵詞的探測,而屏蔽手段則是發送RST的TCP Hijacking.

下面是論證過程。

一,關於探測方式

先來解釋名詞:域名關鍵詞探測很好解釋,基本就是查看HTTP Query的GET後面的東西是不是它不允許訪問的,發現之後就進入了「牆」的環節。

因為我是學校用戶,所以IPv6在這個環境下會干擾實驗。我找了一個國外的、牆內的、穩定的、IPv4 Only的網站,比如。reddit。

然後我訪問了http://www.reddit.com/asdwzz結果是可以訪問的。(如下圖)

然後我訪問了http://www.reddit.com/store.steampowered.com結果是不能訪問的。(如下圖)

然後我訪問了http://www.reddit.com/steampowered.com結果會自動跳轉到另一個地址:

TIL SNOOP LION IS LE-TERALLY GABE NEWELL : Braveryjerk,即也是可以訪問的

這初步證明了探測方式是基於域名關鍵詞,而這個關鍵詞是http://store.steampowered.com

二,關於屏蔽方式

繼續名詞解釋:

「牆」的手段是「基於發送RST的TCP Hijacking」,這個可能要說詳細一點。TCP是現在大家都在用的網路協議,屬於四層。TCP的工作機理是收發兩端要首先握手,通俗來講,就是我們要說話的過程是你給我發hello,我再回你hello然後blahblah我們就建立了一個連接。等我們話都說完了我就說Byebye,然後我們就結束對話。TCP RST信息就是那一句ByeBye,GFW做的事情其實很簡單:它偷聽你和別人講話,只要講到敏感詞,它就會分別冒充對方給你們兩個都發送一個Byebye,然後你們就誤以為對面去洗澡了,只好悻悻而去。

我用wireshark抓了一些包,大家可以看到這一組圖,首先GET了/asdwzz,即我在訪問http://www.reddit.com/asdwzz。這時得到了正常的回應,ACK什麼的。(即握手回複信息)後面幾條用紅框框起來的是reddit的回應。

這裡稍稍解釋一下TTL,TTL是一個整數,在每個數據包里存著,每過一台路由器,TTL就會減1,減到0路由就會把包扔了,防止一個無名數據包在網上無限制傳播。

以上的設定可以推測:如果很短時間內訪問,路由線路不變的話,一台主機到另一台主機的TTL應該始終如一。事實也是如此,上圖各回包的TTL都是43。這個43不能直接指明reddit伺服器和我的遠近,因為並不知道TTL的初值。

高潮來了。

當我GET /store.steampowered.com時,wireshark截的包如下圖所示:

這裡我們可以看到幾個很刺眼的RST信息。RST就是TCP連接版的「再見」或者「我去洗澡了」。如果到這裡我們還可以為GFW開脫一下,因為可以懷疑是不是reddit拒絕了我們。我進一步查看了這幾個包的TTL,發現它們分別是153,154,155,是等差數列(後面還有156,157...)。這是以為國人都沒學過網路嗎?啥時候數據包的TTL是等差數列了=_=這幾乎可以肯定是中間人的行為。以上充分說明這個包是GFW冒充reddit伺服器的IP發送的。

這也怨不得GFW,因為GFW並不知道reddit離我們有多遠,它必須偽造一個TTL,而如果用固定的TTL值,又很容易被人探測出它的位置,所以只好用變動的值。綜上這些RST是GFW發的,瀏覽器接到這些RST就會很老實地把連接斷掉,然後我們就會得到「該頁無法顯示」了。

呵呵。

PS:

最近看paper正好涉獵到這方面了一點點,所以看見被牆的新聞就去自己測了一下,有什麼不周之處還請大家指出。

1024修增

首先來界定一下:我回答的是什麼問題

題主問為什麼不能訪問,而題目描述里說的話可以推測出題主是對不能訪問的原因好奇,也想弄清楚是大規模還是個別例外。當然其中有很明顯的企圖(題主已經先見了牆的存在。)但由於我主要說技術,所以我不做這個假定。

所以我想證明的是:「在我這裡,XXX網站不能訪問是因為有個middlebox從中重置攻擊(RST)」。

下面就是我個人的推斷:結合大家都上不去,進而可以推測出這個middlebox就是GFW,因為和之前GFW的行為一致,同時全國性質的middlebox別無分店

以上大概可以解決評論區義憤填膺的 @Jason Wong的疑惑。

這裡是私貨

回答問題的初衷主要是因為看其他答主都顯得義憤填膺,但是誰也沒說出個所以然來……感覺長久以往會給那些想洗地說並非GFW的人留有機會。當然不管你們在評論和回答什麼,我這個題下的答案不願牽涉到政治(事實證明已然不可能),只想談談技術。不過既然牆本身是我國官方所含糊其辭的東西,所以談技術和談政治又沒什麼分別了。這是頗為弔詭的一點。

接下來我來說我論證的方法論。

我想證明的結果基於關鍵字,所以為了控制變數我沒有選擇steam本身,而是——依據文中已有的話——選擇了一個國外的、牆內的、穩定的、IPv4 Only的網站reddit。怕有些人看不明白,我解釋一下:

  • 選擇國外的是因為我想讓流量經過這個middlebox,而這個middlebox從網路拓撲推斷一定在全國網路的出口處。

  • 選擇牆內的意思是說沒有被牆的,國內可以訪問的,所以可以排除其他的屏蔽方式,只通過關鍵詞觸發屏蔽。也就是說,我在本文中的實驗甚至沒有訪問steam網站本身,因為這個網站現在是否能直接訪問是未知的。

  • 選擇穩定的也是想盡量減小網路環境的影響
  • 選擇IPv4 Only則是為了排除IPv6的影響

然後我發送了有關鍵字的包,然後我從對照組實驗中得到了RST攻擊的證據。

這應該可以解答邏輯欠奉的 @Zhifan Yang、 @k1sar、 @proudsky dragon三位的疑惑:本答案中的實驗跟steam網站無關,只跟封禁steam的middlebox有關。此外,澳洲steam不能訪問和我國steam不能訪問是基本獨立的,我甚至很難發現諸位的論點在哪裡。

最後還是希望大家多理性看待我的答案。如果有什麼不周之處(而不是不符您的口味)煩請指出,多多討論^_^

800贊了……沒想到潛伏3年第一個超過一行的答案就這麼受歡迎(其實是題材比較惹眼)所以匿了。


二戰結束後,斯大林的胡鬧終於達到一個頂峰——集中營關押人數居然比二戰之前還多,有的加盟共和國乾脆按照字母表來抓人,猜測什麼人會被抓成為當時蘇聯民間的一個集體活動,每到大家談論抓人原因時,阿赫瑪托娃就會激動地大喊:你們怎麼還在問為什麼!沒有為什麼!這是一個可以沒有原因就抓人的時代!


謝邀。

很簡單的原因,被牆了。方式是關鍵字攔截。大家都說得很詳細了。

客戶端還沒遭殃,遊戲可以照玩。但以後買遊戲可能會變成很痛苦的事情,各種代購、實體店鋪可能會再度興起。各種黑代購引發的封號、刪遊戲等令人絕望的問題也會重現江湖。

奉勸各位不要嘗試掛vpn買遊戲,vpn的地區必須與信用卡等付費渠道的地區一樣,否則無法下單;即便通過一些雞賊的手段下了單,過個十天半月,封號妥妥的。到時候你又要去磨蹭 Steam support 給你解封,作為曾跟 steam 戰鬥數載的骨灰,建議這種事情還是別去費心思了。

臨時的解決方案是,用手機steam買,或者電腦瀏覽器修改ua為手機來買。

連玩遊戲都要管了,還是肉身翻牆比較靠譜。


目前貌似基本都恢復了,所以很大的可能是GFW的誤封(最高票推斷是GFW的原因作為一名文科生雖然看不太明白但是依然感覺很厲害)。

1、昨天早上Google的服務也受到了一些影響,有可能是GFW策略調整升級引起的。

2、Steam並不是全國都無法訪問,不同地區不同運營商有些是可以正常訪問的,如果是有針對性地封鎖不會存在這種狀況。

3、誤封的情況我自己感覺一直是存在的,比如之前韓國一個比較大的手遊資訊站就莫名其妙被牆了,幾乎沒有存在敏感內容的可能性,只是因為國內沒用戶沒有Steam被封這麼大的反應。

4、具體原因目前都是猜測,昨天我們以新浪的名義向Valve的市場副總Doug Lombardi發了一封郵件詢問原因,不過快20小時了也沒有回復,估計Valve也不會正式來談這種敏感性的問題(當然也可以說從側面證實原因比較敏感)。

5、我覺得相關問題都可以結束討論了。本來不覺得身邊有這麼多Steam用戶的,這次看了下伺服器分布(Steam Status · Is Steam Down? )看來中國正版用戶的數量還真蠻大的,雖然略感欣慰,但目前這種反應有點吸引太多目光了:) 在這個一切皆有可能的國度里,你懂的。


贊同書記的答案,Valve Business Development的員工也回信說Not sure why they targeted us.

更新:貌似大部分地區現已恢復。


更新:

10月24日11點24分官網恢復正常,但還需要繼續觀望一段時間。

PS:大家是不是有一種JB剛硬了就射了的感覺呢?沒事兒,以後還有可能會封,23333333333333333

===========以下是之前的分析=====================

既然技術宅分析了,美分也噴完了,那麼我來說說可能的內在原因。

當然中間加一句,目前事情沒有明朗的情況下,大家最好,也只能靜觀其變了……以下內容全部是推測

其實內在原因就一個:Steam作為一個國外平台,通過支付寶或者信用卡直接收取費用,是不用給ZF上稅的。但是反過來說,一旦Steam正式在國內註冊,又要面臨國區審核的問題,至少有一半的遊戲會被和諧或者乾脆鎖區。

一直以來這都是一個灰色地帶。嚴格說是違法的。正如鳥姐所說,你用戶上我3大媽用盜版主要侵害的是公司的利益,稅少拿對ZF來說並不是很噁心,畢竟你也得不到錢,我也得不到,你又沒辦法治理,我索性睜一隻眼閉一隻眼。你玩逼格不在國內賣(例如EA)那就更跟我八竿子打不著了。但是對於Steam,他們舒舒服服的掙國人的錢,卻不用給交稅,用腳趾頭想想都知道以咱ZF的尿性會怎麼做。

至於是否會封鎖客戶端,我個人認為目前來說可能性有50%。因為畢竟完美時空運營的DOTA2是利用Steam客戶端的(即使是閹割版),如果Steam封了那麼完美就很蛋疼。憑藉這個完美也會從中攔一把,至於能不能攔住,就要看完美的公關手段了。

最後還是那句話,僅在我國,所謂的自由皿煮也就是騙騙熱血青年和港燦罷了,利益卻是實實在在的。本次Steam被封和前一陣國家整頓視頻網站版權的原理類似,都是為了財政收入。說得通俗點就是國家想分一杯羹。這與Steam上遊戲的和諧程度無關,樓上幾個可能只接觸DOTA2,其實Steam上很多遊戲嚴格拿文字獄卡的話Steam早就被封了(比如《戰爭遊戲:紅龍》)。不至於拖到現在。你以為和諧網的那幫人就那麼熱衷於搞文字獄封網站么?上面不發話,他們才懶得管你們玩什麼呢。

最後以網上的一句話做結尾,在這裡,我們以為的自由,只是別人的疏忽罷了,大家還是洗洗睡吧。


因為太多人預載《文明:太空》(Civilization : Beyond Earth)?


其實你們要是怕封號的話,可以VPN後用支付寶或者中國信用卡購買,這樣還是算你中國的。你回來steam這邊還是可以安裝,不會封號。


有玩家」作死「啊


本人在英國,英國時間22號晚上(北京時間23號凌晨),steam伺服器抽風,登都登錄不了。

另外我要吐槽下virgin media,媽的老子包了100兆的寬頻,到晚上奇卡無比,基本上打不開網頁 ,丟包率百分之40,艹,每個月收我30磅,如果提前取消合約,每個月還收我18.5磅,艹他大爺的


目前為止最高贊答案評論中有人說為什麼不推翻這道牆呢?

我想在這告訴他:因為聲音很大,人數少,推不翻的。

看似玩steam的朋友很多,玩steam的是可以算是正版單機遊戲用戶,但是更多的單機遊戲用戶是從遊民,3dm上下來玩的的,而中國幾億網民中,更多更多的,都去玩lol,大三億,毒奶粉去了,在他們看來,只要不打擾我玩lol就行了,steam在他們看來只不過是一團蒸汽而已。

同理facebook,twitter,youtube也是這樣的,不僅僅是上面有敏感內容,關鍵是當自己的絕大多數朋友都在用qq/qq空間,微信,新浪微博,卻不玩我上面說的三個的時候,上了這三個網站也沒啥意思。(只針對我個人的體驗,不代表所有人)

那麼我們該怎樣做才能推倒這堵牆

?如果你家有孩子,引導他不玩玩lol之類的,讓他慢慢喜歡上正版單機遊戲,長輩親戚,引導他們上tweet,facebook,youtube,並且推薦給他們的朋友。人多了才能不止有聲音,還有有力量

我其他想說的話在評論里。


我用http://dnsview.info測試的,自己看,不多說


領payday的國人太多導致訪問量激增超過警告閥值觸發了gfw篩選模型所以被牆了?

或者是m$的指使?


我在香港照樣打不開…我覺得是steam的原因…


「牆」是不可抗因素,看了下我的200+遊戲庫,且用且珍惜,大不了以後轉戰家用機


當時說是關鍵詞屏蔽,不過隔天10點後,就恢復了。這兩天也用的很好。


沒錯是上不去了 等著暑假降價呢突然牆了 :-( 不過手機還是可以的 弄了個小號發現手機可以~


推薦閱讀:

如何看待父母不讓孩子玩電腦遊戲卻允許玩手機遊戲的要求?
如何評價朝鮮平壤附近有人使用steam?
如何評價東方官作將要登陸steam?
貼吧對於遊戲庫里只有「吃雞」的玩家是不是有偏見?為什麼?
中國的單機遊戲到底需要什麼?

TAG:Steam |