Closed karlcheong closed 9 years ago
哈哈,太酷了!试试
可以请教怎设置吗?
@simonleungs 桌面電腦, iOS: 請看 http://ub.uku.im/proxy 把上面的pac地址填上去 Android: 把系統的DNS伺服器地址設定為上面的IP。 想方便設定的人可以使用Set DNS 直接設定
请问一下,dns怎修改? 我在用这个方法修改:http://blog.csdn.net/jipin246/article/details/8639372
@zhuzhuor 去看了下nodejs後台的log, 發現有很多很多的timeout error 好像連接中國那邊不穩定的樣子
今天真奇怪。。。先是dns出錯2次。。 然後connection timeout -> restart nodejs -> timeout 不斷循環. :( :-1: 前幾天都沒有這樣。。現在直接在手機轉用這個dns做下人肉監控 :)
是和国内的服务器的 timeout 吗,我这边还算正常 我这边在用 logentries.com 监控 log,特别好用
timeout/reset 平常概率大概有 0.5 %,这个没办法。。。
出問題時在varnish的log中基本都是privoxy 504 timeout
node的log就: Starting in production mode... 11 Sep 22:43:45 - [ub.uku.js] Worker 17277 is now connected to 0.0.0.0:8888 [ub.uku.js] proxy_request error: (ENOTFOUND) getaddrinfo ENOTFOUND Error: getaddrinfo ENOTFOUND at errnoException (dns.js:37:11) at Object.onanswer as oncomplete [ub.uku.js] proxy_request error: (ENOTFOUND) getaddrinfo ENOTFOUND Error: getaddrinfo ENOTFOUND at errnoException (dns.js:37:11) at Object.onanswer as oncomplete ........ [ub.uku.js] Timeout for h0.dxt.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h0.dxt.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h4.dxt.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h4.dxt.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h0.edu.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h0.edu.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h6.edu.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h6.edu.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h4.dxt.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h4.dxt.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h1.dxt.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h1.dxt.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h4.edu.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h4.edu.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h13.dxt.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h13.dxt.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h6.dxt.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h6.dxt.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] Timeout for h6.edu.bj.ie.sogou.com. Aborted. [ub.uku.js] Error when testing h6.edu.bj.ie.sogou.com: Error: socket hang up [ub.uku.js] proxy_request error: (ENOTFOUND) getaddrinfo ENOTFOUND Error: getaddrinfo ENOTFOUND at errnoException (dns.js:37:11) at Object.onanswer as oncomplete [ub.uku.js] proxy_request error: (ENOTFOUND) getaddrinfo ENOTFOUND Error: getaddrinfo ENOTFOUND at errnoException (dns.js:37:11) at Object.onanswer as oncomplete .....
restart後就會好一會, 過沒多久又timeout
試過直接ssh tunnel 到nodejs server的8888 當作手動代理都timeout
現在只好先把請求轉發給別的Proxy
到底是那里問題呢...
getaddrinfo ENOTFOUND DNS的问题?你把VPS的DNS自己改成google dns试试?
一直都是8.8.8.8
好吧 你装上 logentries + newrelic,把服务器的运行状况和log都记录下来 回头我也看看吧,像ENOTFOUND这种error应该特别少见才对
想起来你把服务器上的nodejs也升级一下吧,前两天貌似爆出来一个security bug
嗯。會升級的。
想到我運行nodejs的不同就是用了mitm 還有把所有url表里域名的http請求都丟給了它 心想不會是mitm 一下卡住了。才出問題。。
先睡了。。明天把npm modules重安一次, url列表先給privoxy過慮, node就只做單純pac proxy
@karlcheong 你可以试试最新的 master branch 的代码 不过还是不太理解你这些错误日志的问题,猜测是digitialocean的网络问题?
現在modules全刪掉重安之後, 把privoxy做url過濾, 又沒事了...感覺反應速度還快了些
ub.uku.js updated to 1.7.0, 看樣子沒什么改變
我的问题是不知道机顶盒是否root,且按未root处理,但pac没有地方设定。是不是只要将DHCP设为静态,再输入DNS地址即可?能不能把Android的设置图示出来,谢谢。
@up2you6 沒有ANDROID TV, 只有手機, 上一下它的設置圖
WIFI設定, 進入你連接的WIFI網絡的內容
IP, Gateway, Netmask 按你網絡設定(一般不用改), DNS1改192.241.222.103, DNS2留空
非常感谢!
好像失效了
Got similar result to @simonleungs. With the first DNS entry updated to the one below in Android Wifi setting, I tested Sohu app and it still says not able to play due to the region limitation.
192.241.222.103
Update: I figure the change needs to be effective after rebooting the phone which I did. After it's back I verified that the setting change I made is still there. However the phone is no longer connecting to Internet.
@chenjhcg @simonleungs sohu tested @ this morning GMT+8 and haven't found any problem. I can change DNS setting in My galaxy note 1 & xiaomi, without reboot. It goes into effect instantly.
Also, the connection to sogou proxy isn't stable all the time. Sometime timeout/reset happened and we were disconnected. Just wait few minutes and then retry.
連接有時會卡了好久都沒回應.. 是國內代理問題還是是varnish應付不了現在的流量呢?
Here are my test results over the weekend with primary DNS set to 192.241.222.103:
Youku Windows Client -> not working QQLive Windows Client -> not working Youku Android Pad Client -> working QQLive Android HD Client -> working
I'm only guessing the reason of Windows clients not working is because the rules which were updated per #118 are not yet updated to this solution. I can re-test them that has been changed.
@chenjhcg The dns server isn't planned to support those two pc clients yet, as they require more than plain http reverse proxy.
這2天又出問題了 同樣又是不間斷的抽風
ubnode:
Timeout Socket hangup
今天一下沒留意, 由10AM到6PM一直都是出問題, varnish log一堆504 gateway timeout
現在手工restart後又沒事 天, 都不知道搞什么鬼
再出問題就先用別的代理頂上好了..
@zhuzhuor 可能找到出問題的原因.. 去8.8.8.8的DNS請求有時會被drop掉
但奇怪, 那其他由privoxy發出的直連request就沒事?..
some of my dig query test (failed)
root@digito:~# dig @8.8.8.8 proxy.uku.im
; <<>> DiG 9.8.1-P1 <<>> @8.8.8.8 proxy.uku.im ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
root@digito:~# dig @8.8.8.8 h7.edu.bj.ie.sogou.com
; <<>> DiG 9.8.1-P1 <<>> @8.8.8.8 h7.edu.bj.ie.sogou.com ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
update: Ping也會timeout...
update2: 到23/9 0點切回node代理又不抽風了.. 能說什么呢...
Just to report a new issue. Wth DNS server set to 192.241.222.103 in Android device Netflix won't connect. Since Netflix service is not available in China. Having DNS changed this way will make it believe it's connecting from a device in China. I can switch to the original DNS to get it connected again but it's a little hassle at least.
@chenjhcg Findout the problem is that tunlr netflix unblock service will block US connection to netflix (since people in US won't need to unblock netflix? : ( ). I removed netflix entries from the dns forward list, it should be fine now. Let the people who need it to do custom dns forwarding.
I´m getting a lot of lagg / stuttering on Youku Android TV with DNS set to 192.241.222.103. on Xiaomi TV Box (小米盒子) Is there a solution? Also can you please look into 小米盒子 mainland china restriction ?;) American Movies only visible with mainland china IP. :-( China VPN works but expensive :( Regards
@redline99cs I have not much ideas with 小米盒子 or any other TVBox. In case of 小米盒子, it seem employed its own mechanism to acquire playlists & play media, and I don't own one. (I have an android phone only.)
If "a lot of lagg / stuttering" mean the video download speed was slow, Then probably the link between your location to the actual video servers is bad. In issue #124 I said that the domain for IP restriction (api.youku.com, api.3g.youku.com, etc) is different from the one of CDN server (f.youku.com). The videos host on different servers with differerent ISP (CT, CU, CMCC ...) and the CDN server might give you the video server which its ISP is slow to you. The problem usually don't last long. But if it persists, the only solution I came up with is to try to proxy connections to f.youku.com, so that you can bypass the CDN server and found out which servers are fast to you, like what I did in #124.
The servers are filtering IP and send out different playlists to oversea IPs, that's why some video aren't visible. (Ex: iqiyi mobile app have this kind of filter) the address of playlists acquisition server is must have In order to bypass the filter.
我人在台灣,昨晚在路由器將dns改為192.241.222.103後,block的問題解決了,但是龜速,所有的的視頻都lag,不知道有甚麼方法可以改善??剛剛看了#64,不知道如何將ip寫進hosts里??可以指導一下嗎??感激不盡,謝謝。
@win0106 由於技術限制, dns/pac方法對部分視頻網站的CDN運作影響很大(特別是 iqiyi,letv) 該部分視頻網站分配的視頻地址是由DNS代理使用之大陸代理伺服器的線路決定 故此,DNS代理使用之單一線路並不能滿足全球各地所有人之需求
因此, 請盡可能使用chrome擴展 如需使用流動裝置,請盡可能使用ub.uku.js自行架設區域網/本機代理, 或 #80 privoxy, #106 DNS 反向代理 配合 ub.uku.js/大陸代理 只有這樣你才可以按自己的ISP線路選擇適合的大陸代理, 以取得連接速度良好的視頻地址
無法取得正確大陸代理伺服器IP 或需自行選擇適合的大陸代理線路 使用的方法
@karlcheong 感謝指導,獲益良多。
@karlcheong 现在 proxy.uku 上也是很多 DNS getaddrinfo EADDRINFO 查了下,发现 digitalocean 默认使用 google dns,但是 google dns 有 rate limit http://digitalocean.uservoice.com/forums/136585-digital-ocean/suggestions/3871326-digitalocean-dns-resolvers
回头可以仔细研究下这个问题,可以换个别的 DNS,或者用上面的 link 里所说的运行个 local 的 dns cache
@karlcheong 使用ub.uku.js自行架設區域網/本機代理(在windows平台設置的),設置完成後,在同一區域網中的移動設備,ANDROID該怎麼設置呢??我是使用PROXYDROID去設置,是設置「192.168.1.133:8888」、還是設置「http://192.168.1.33:888/proxy.pac」或者設置「http://192.168.1.33/proxy.pac」,感激不盡,謝謝。
@karlcheong 使用ub.uku.js自行架設區域網/本機代理(在windows平台設置的),設置完成後,在同一區域網中的移動設備,ANDROID該怎麼設置呢??我是使用PROXYDROID去設置,是設置「192.168.1.133:8888」、還是設置「http://192.168.1.33:888/proxy.pac」或者設置「http://192.168.1.33/proxy.pac」,感激不盡,謝謝。
是不是可以自己做一个DNS服务器?比如把局域网里的终端设备的DNS指向其中一个PC 192.168.1.2,这样可以缓解DNS的压力,也提高速度?
另外,我在PC上设置了DNS之后,各个浏览器打开youku没有问题,但youku的pc客户端的下载功能还不能使用,似乎它用的域名不在现在的list里。
@win0106 proxydroid 不能支援ub.uku.js的pac文件 請打開ub.uku.js 的mitm_proxy選項 然後proxydroid直接設定proxy為http 再輸入伺服器IP和port
@philwu 如果你不能安裝自定義軟件, 可以只用做一個DNS伺服器,但不做後台轉發。 詳細可參考 #106 unblock youku路由器進階篇 由第5步開始 第5步時 把 192.168.11.1 全部替換成 192.241.222.103
目前對於pc客戶端的支援程度較低, 有問題時可能需要更長的時間解決。
@zhuzhuor 正考慮運行unbound作為resolver, 先看看文檔去..
@karlcheong 我就用 dnsmasq 做了个 local 的 dns cache dnsmasq 上游还是用 google dns,然后修改 /etc/resolv.conf 到 127.0.0.1 已经好几天没出 dns 的那个 exception 了,你可以也试试看
@zhuzhuor 你好。能不能具体说说详细步骤?是不是必须把路由器刷成自定义软件才可以?
@zhuzhuor 我已经刷了DD-WRT v24,但是还没太弄明白dnsmasq……
@philwu 路由器上的软件我没怎么折腾过,关于这个你可以问问 @karlcheong 另外我上面的回复是给 @karlcheong 的... 虽然所有参与讨论过的人都回收到提醒
@zhuzhuor 由於要供android使用, 我一開始就已經架設了dnsmasq forwarder, 把要解鎖域名的IP轉到代理 + 用來做 DNS cache ( cache entries= 25000 ) 由於VPS同時運行代理和dnsmasq, 本機發起對外的連接沒有用本機dns cache
現在打算是先不自己做resolver, hosts直接指定了upstream proxies 的IP resolv.conf指定了google + opendns 的 nameserver dnsmasq的upstream就設定了 level3 的 6個nameserver 不用綁死在google dns 應該就不用太怕ratelimit了..
@philwu 我是想讓你更改dnsmasq的設定令它讀取7z檔里面那個自定義的hosts檔 這樣你可以用ISP的DNS上別的網站, 同時又可以用unblock youku dns來解鎖
要是真的搞不明DNSmasq的話, 以下是簡易方法, 在DDWRT網頁設定介面就能搞定: 在setup->basic setup->network setup 中 use dnsmasq for dns 打勾 在services->dnsmasq 中 dnsmasq -> enable local dns -> enable 再把以下pastebin的參數貼到ddwrt 的 additional dnsmasq options http://pastebin.com/TDebMKtf
@karlcheong 原本將新的unblock 伺服器192.241.222.103填入我的router內,可以unblock,但是會lag,經您的建議,使用 (1)ub.uku.js自行架設區域網/本機代理:sohu速度可以,但是youku還是會lag。 (2) #80 privoxy:sohu速度可以,但是youku還是會lag。 (3) #106 DNS 反向代理 配合 ub.uku.js/大陸代理:這星期會買一個新的router,測試後,再回報給您。 請教karlcheong ,是不是還有其他的辦法,可以提高youku的流量,感激不盡!! 補充說明:我使用內地proxy時,撥放順暢。另亦更換過114dns、googledns、opendns,但是youku還是lag。
@win0106
1,2,3方法的原理都和chrome擴展的一樣, 只是針對的裝置不同
整個過程中不關DNS的事, 所以換DNS resolver是沒用的 你youku之所以會lag, 很可能是因為 youku的cdn 錯誤地給了一個對你來說速度很慢的地址 用內地proxy會快了是因為你通過了proxy來查詢cdn, cdna給出了一個對proxy較快的地址
解決方案請參考 #124 或 上面我給 redline99cs 的回復
@karlcheong 昨晚我照#124,#64的做法,按下列方式去做,其下載影片的流量依舊無法提升,可否拜託指導一下,謝謝。 在windows的環境下,以ub.uku.js自行架設區域網/本機代理 (1)、使用router(tomato)加入dnsmasq,加入的語法為 address=/h15.edu.bj.ie.sogou.com/115.25.216.30 address=/h14.edu.bj.ie.sogou.com /115.25.216.29 ……..共15行 (2)、修改windows的hosts,其語法為: 115.25.216.30 h15.edu.bj.ie.sogou.com 115.25.216.29 h14.edu.bj.ie.sogou.com …………共15行 但無論使用#教育網CERNET IP或#聯通China Unicom IP for h.dxt.bj.ie.sogou.com,亦或#電信China Telecom IP for h.dxt.bj.ie.sogou.com,其下載流量均不佳(使用流暢模式亦會lag)。
我想請教一下: (1)、將地址加入dnsmasq,是只要加入1行,還是15行都要加入? (2)、您的文章提及,可以把f.youku.com順便代理了,該怎麼做呢?? 因為我是新手,讓您不厭其煩的指導,感激不盡!!
@karlcheong “整合tunlr.net的DNS服務(沒有完整域名清單)可以無視美國地區限制聽pandora, 看hulu” 是说你的服务与tunlr一样?还是说把相关请求转发到tunlr呢?据说tunlr服务需要用ip地址登记白名单才能使用
@hafa2012 我在tunlr的討論區里拿了一個別人整理的域名清單 然後單純把相關DNS請求轉發到tunlr
"tunlr服务需要用ip地址登记白名单" 只有netflix才需要白名單 要海外用netflix的請自己乖乖的去登記白名單, 用回他們的DNS服務
@karlcheong thx for answers,还有一问,tunlr的原理是否和unlockyouku一样?用代理接通视频后切换为自己真实ip直连?
@hafa2012 按我觀察是一樣的
回報問題時請詳細描述問題, 附上你的地區/ISP/使用的平台/網站, 不然將有可能遭忽略!
由#106 在家用路由中應用unblock服務的一些想法 現在由@zhuzhuor和我建立了一個新的unblock伺服器
以下借用一下zhuzhuor的WIKI內容
注意,使用本服務代表您同意以下條款
程式作者及伺服器提供者對任何可能的後果概不負責。
代理伺服器資源有限,歡迎技術達人嘗試運行自己的伺服器。下面給出了簡單的介紹。
測試進行時有問題可以在這里回復
DNS代理比現在yo.uku.im PAC代理多了以下功能:
...請提出你的建議
目前支持的OS
支持PAC的各種瀏覽器, iOS Apps, Android Apps
設定值:
PAC地址:http://dns.umbridges2014.com/proxy.pac 非常規端口(8000) PAC地址:http://dns.umbridges2014.com/altproxy.pac DNS IPv4地址:192.241.222.103 DNS IPv6地址:2001:470:832e:1024:6969:5269::1 DNS端口: 53,5353 udp tcp 轉發模式後台: http://berryphp.ap01.aws.af.cm/digito.php
桌面電腦, iOS: 請看 http://ub.uku.im/proxy 把上面的pac地址填上去
Android: 把系統的DNS伺服器地址設定為上面的IP。 已ROOT, 想方便設定的人可以使用Set DNS 直接設定: SetDNS設定里打開override 3G/WiFi, 再回到主介面, 列表中點custom, 然後再輸入DNS的IP。 沒有ROOT的人請打開設定>WIFI>按住自己用的WiFi網絡>修改網絡>顯示進階選項>IP設定,由DHCP轉為靜態,然後再輸入DNS的IP。
技術說明:
新的 unblock 伺服器簡單來說就是用了 #106 的privoxy 再串上 WIKI上的Nodejs代理 另外再運行了 dns 轉發伺服器配合記錄了需解鎖域名的資料庫
unblock youku 公共PROXY的運作:
一般域名
User-> US IP DNS -> 3rd party DNS -> get the resolved IP User-> internet -> target server
白名單域名/包含特殊URL時
User -> US IP DNS / PAC script -> get the Proxy IP User-> US IP Proxy server -> China server -> internet -> target server
速度和安全性可以這樣高->低比較:
(1)使用ISP DNS, 連接一般網站時最佳, 除非nodejs / PAC 連接的國內IP代理出問題, 不然不會影響unblock。 缺點: 看 #80
(2)使用ISP DNS, 連接一般網站時最佳, 而一旦unblockyouku伺服器出問題時將不能連接特殊URL, 造成不能unblock。 缺點: 用電腦架設privoxy的話同 #80, 而用路由器架設會有點複雜, 只使用pac的話將不支持android等。
(3)使用unblockyouku的美國DNS轉發器, 連接一般網站時取不到距離自己近的IP, 可能影響瀏覽/下載速度, 而且一旦unblockyouku伺服器出問題而用戶不懂改回DNS設定, 將不能上網。 好處是簡單方便通用。
01/27/2014 重大注意事項 - 公共DNS服務
由於最近受到多次 "DNS放大攻擊" 的投訴, DNS服務將實行較嚴格的查詢速率限制。 這有可能會顯著影響您直接設定DNS後網絡瀏覽之速度及可靠性。
如攻擊情況持續, 短期內DNS服務將有可能無預警地被伺服器服務商關閉。 萬一DNS服務遭關閉, 您直接設定DNS的裝置將可能不能正常上網, 此時您需要把DNS設定還原。
預期在DNS服務遭關閉後, 反向代理部分仍能繼續運作 你可以通過安裝以下hosts檔, 把里面的IP改為伺服器IP, 又或者使用它來設置路由器內建的DNS服務, 以代替公共DNS之功能。 https://github.com/karlcheong/unblock_youku_privoxy_rules/blob/master/basehosts
多謝這些天來各位之使用及意見! karlc.
状态监控
Feb 10, 2014 新添了 DNS 的状态监控
详细的历史信息可以访问 http://stats.pingdom.com/7w8lzo3be6k1/1113903