Hike News

920Telegram被鳖事件之_今夜我们都是迈阿密人!

写在前面:这篇是千千跳票了半个月才拖拖拉拉写完的(期间经历了搬家、以及每天去医院和每天 ingress 签到),在医院无聊时候把这些有趣的东西记录下来,通 篇 毫 无 技 术,所以 tags 打上的是【wwy讲故事】、categories 是【千千生活随笔】。感谢看完的每一位。同样感谢被 RSS bot 打扰的订阅千千博客的每一位朋友。

正文

918 P站被墙刚刚过去两天,iOS 11 正式版终于来了。然而9.20这天发生了一件更有趣的事情-telegram 又双叒叕大范围吃鳖啦。大概当日下午 3:35 持续到傍晚 5:13,大部分亚洲用户、少部分澳洲等其他地区用户 telegram 出现一直 connecting 无法刷新讯息的情况。

3点40多的时候 tyan 在 QQ 与我讲“自己前一秒还在调试 tg bot 后一秒就炸掉,换了几个梯子都无济于事”;与此同时饼饼彼得 tg 群里转述雨少也在用 WeChat 问他同样的事。我们观察到,此时所有的群都安静了起来,消息定格住了,仿佛时间凝固一般,好享受这种静谧安详。

  • 带着困惑,遇到这种突发情况,当然是看官推啦。官推解释道大概是说新加坡集群主交换机挂了,原因是数据中心遭遇大停电。似乎并没有什么有价值的东西。然而彼得群里面,饼饼、三叶、彼得、wbcl、我 五个人存活确认,这是怎么回事呢?

结合这次实际情况看,正如我们所知道的,telegram 在第一次被注册的时候,会给每一位用户分配一个 data center(DC),为了检查自己的 DC 在哪里,我们可以使用这位台湾高中生作者的 inline bot 。只用输入@Sean_Bot info,就会返回 DC 位置,我这边返回了 My Data Center is DC1 (Miami, FL, US) ,而上文提到的存活确认的另外四个人也都在美国佛罗里达州迈阿密。相反地,其他中文圈用户在事后查得返回结果 My Data Center is DC5 (Singapore, Asia) 。这样,反观官方推特给的解释,事情就很吻合了,DC1相安无事,DC5遭殃。

那么这里又有疑惑了,同样是中文圈 tg 用户,大家 DC 不统一,telegram 是怎么分配的呢?这时候就出现了好多传言:

  • 号码归属说:根据用户注册的手机号的归属地来分配 DC。(可是这种马上被否决了,周围有一万个朋友 +86 ->DC1、+1 ->DC5)
  • 梯子说:根据梯子来判定。(没说到点子上,DC 又不会跳来跳去的啊)
  • 目前最靠谱的是彼得在 tuna 群里说的 “是第一次注册使用的IP”决定的。国内用户大概就是代理后的 IP 吧。(实验:自己拿小号用美国梯子注册,果然得到期望值 DC1)
  • 最后千千询问了@Sean_Bot作者,他有回答:剛剛聽 Kai 說每個人上傳的 Data Center 不一樣,在註冊時會自動選擇最快的,之後就不再改變了。我們在註冊時很可能被認為新加坡 DC5 最快,就算實際上美國 DC1 更快,但也不會再改變了。(看起来作者也是新加坡(小声
  • 顺带一提,DCs 貌似是被区分为5个地方的
    • DC1 美国佛罗里达州迈阿密
    • DC2 美国加利福尼亚州洛杉矶
    • DC3 荷兰首都阿姆斯特丹
    • DC4 也是阿姆斯特丹
    • DC5 亚洲新加坡

总之……应该了解一二了,没有官方说明之前,大家心里有各自的判断就好啦……

发散思维

囫囵吞枣地了解这些之后,回想起那天有些群可以发消息(比如彼得群、tuna 群),有些群鸦雀无声消息发送失败被加入队列(比如#archlinux-cn-offtopic),不难猜想到: tg 群也是被绑定了地区的,群正是 跟随者群主 DC ,屡试不爽。但是 bot 由于直接调 HTTPS API 而不受限制,没被绑定地区。可惜凭借着这个思路推广到 channel,貌似不能解释通( private channel,public channels,CDN DCs……太多讲究千千我智商跟不上了……大佬欢迎了解的大佬们在文章下面留言)。

链接

找了一圈,tg 官方对 DC 的说明大部分在 https://core.telegram.org/api/datacenter 里面。
引用一部分,真是让人捉摸不透orz

The client does not yet know which DC it will be associated with; therefore, it establishes an encrypted connection to a random address and sends its query to that address.
Having received a phone_number from a client, we can find out whether or not it is registered in the system. If it is, then, if necessary, instead of sending a text message, we request that it establish a connection with a different DC first (PHONE_MIGRATE_X error).
If we do not yet have a user with this number, we examine its IP-address. We can use it to identify the closest DC. Again, if necessary, we redirect the user to a different DC (NETWORK_MIGRATE_X error).

However, in the future, during prolonged communication from an unusual location, we may decide that the user’s data must be moved to a different DC. After some time, the data will be copied and the association will be updated. Once this happens, when executing any query transmitted to the old DC, the API will return the USER_MIGRATE_X error. The client will then have to establish a connection with the new DC and repeat the query.

后话

9.20之后 telegram 的亚服似乎还有“余震”:

  • 9.26又发生了同样的事情。
    坏蛋怎么 UPS 也坏的

  • 而9.30那天 DC5 亚服和 DC1 美服之间断了,tg 被局域……借用欣欣发的图一目了然(图都被我压绿了

  • 10.11Telegram 4.4 版更换/新增新加坡服务器节点,端口25变成5222

  • ……
  • 期待 telegram 会更好

end

新的生活-关于休学

原因

2017.9开学季,家里人很轻松地同意我休学,究其原因,气胸是复发率极高的病,好在这次不严重。正如坚强可爱的 makito 小哥哥说过“你是被上天选中的女孩,这次要照顾好自己哦”,在这里感谢支持我休学想法的家人、友链里的朋友和同学们。

离别之前

  • 参加了木犀夏令营,写了一半的 vue project-木犀分享。走之前大家特意准备了 surprise:一个插着“336”数字蜡烛的蛋糕,意味着我进入团队整整336天;一个写满了同学们对我的寄语的锦囊,不管之前发生过什么,仅从这件事上可以说非常谢谢有爱的团队,尤其是情商非常高的两位主管。
  • ingress 终于8.25在学校升八,可惜没有赶上8.26澳门 XMA 武汉充电活动。面了 mao 大佬和弗蓝大佬,送我满满5桶八炸(猩猩服务器吃了100),拿了3张卡。华师传统新人到八给祖传的红桶,抹茶学长给了我一个早已绝版的红桶和几百八脚。临走之前当然也约了去年军训认识的化院绿朋友做了浣熊oz学长的校名任务(坑哭(小声。这些做完算是离别之前也没有遗憾了吧……
  • 说起遗憾还真有件心事,就是一直没有时间去学校信息化办公室学习一个,一来是找运维大佬请教 ipv6 的事情,二来是 eduroam 的事情,最后是校园网收费和限流传言的事。看起来只能明年再去了。

ingress相关截图

开启新的生活

  • 父母上班,我理应被送来了某个地方,从此生活也很规律、健康。每天被医生要求锻炼,我也把 ingress 签到化作出门的动力,现在成就31天,签到26天,冬天来临之前每日步数12000+,晚上9点多就被要求睡觉,修仙什么的不存在了,真的好健康,愿世上再无疾病。
  • 十八年来,奔波于学校和家两点一线的单调的生活戛然而止,我终于可以放慢脚步探索这座城。比如在万达遇见了第一次进店就想送我80¥月饼礼券的伙伴,让我受宠若惊;去稍微靠谱的 VR 体验店做过山车感受自由落体;去机厅第一次玩舞立方(虽说是抄袭 maimai 但还是好好玩(手残打不了 ssr 何况是联网的街机;在水游城看见黑围裙就开心地点了手冲秋日综合,据她说“融合危地马拉安提瓜咖啡豆的香料味,和苏门答腊咖啡豆的草本风味”,嘛也喝不懂,就是闻起来很香喝起来很苦但不酸(词穷了…)比肯亚豆子吼,和伙伴小姐姐聊了很多,放松神经放慢脚步悠闲的下午真的好开心。

新的探索

计划

  • 由于在治疗期间,我一定会遗憾地咕咕咕 923XMA 首尔场充电、107厦门 MD、 武汉ifs、以及武蓝等等超级超级棒的活动的,默默遥祝,好气啊到8从未起过八的可怜千千……所以接下来只好签到和养成就继续养老生活了……
  • 武汉邮回来的十几本书才收到,单单运费就一百多orz。这几天下午可以先看书,等以后有网络就可以写开电脑东西了。Dazzy ding 给了我一只萌二域名可以留着搞事情。先保密啦嘻嘻。
  • neet 的生活真好啊 放心吧我会学习的。

proxychains-privoxy

简述背景需求

昨晚要帮朋友在 terminal 里面跑个脚本,我 ss 虽然打开了,而且开了全局,但发现终端依旧需要穿墙术,因为终端不支持 Socks5 代理,只支持 http 代理。所以得解决一下。

方法一:使用proxychains

  • Mac 下 homebrew 下载

    1
    2
    brew install proxychains-ng
    vim /usr/local/etc/proxychains.conf //修改配置
  • 在 [ProxyList] 下面加入

    1
    socks5 127.0.0.1 1080

(shadowsocks,本地端口是1080),不用管那个被注释掉的 socks4 127.0.0.1 9050(其实是Tor)。

  • 试试是否成功,可惜没有通。
    1
    proxychains4 curl google.com

询问好多人,最后才发现 “ 你们Mac的内置curl怎么还带坑的”,自带的curl版本都比较老。详见 qingliu 找到的这个 issue https://github.com/rofl0r/proxychains-ng/issues/78

0.0.0.0 是让其他设备可以访问,也就是说局域网下的配置。如果仅仅要本机的话,那就改为127.0.0.1,我这里是0.0.0.0; 8118是HTTP代理端口号;1080后不要忘了那个“ . ”;

  • 启动一下

    1
    /usr/local/sbin/privoxy /usr/local/etc/privoxy/config
  • 查看监听情况

    1
    netstat -na | grep 8118
  • 加在终端里面,我的是zsh,所以是vim .zshrc,感谢 Dazzy ding 提供函数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    proxy-activate() {
    export http_proxy='http://127.0.0.1:8118'
    export https_proxy=$http_proxy
    }
    proxy-deactivate() {
    unset http_proxy
    unset https_proxy
    }
    alias pa='proxy-activate'
    alias pd='proxy-deactivate'
  • 重启一下 terminal,这样,pa 一下终端就通了。pd 一下终端就回归大局域网了。当然,别忘了 pa 之前 ss 要先是开启状态的。
    开心,小脚本跑起来:

    1
    2
    pa
    bash ~/xxxxxx.sh
  • 注意: pa 、pd 是对某一个 terminal 里的 tab 生效的,(who am i),新开启一个标签页应该再手动 pa。


9.15补充:长时间不开pa导致玄学问题, 需重新启动/usr/local/sbin/privoxy /usr/local/etc/privoxy/config 以及后续部分操作。

Google-Voice

what is happiness

What is happiness?My friend FiveYellowMice has ever said that 【 the first time you get Google-Voice or the first time you sign in the Telegram 】,if those two kinds of happiness coincide with each other,you will be happy.

I want to get my Google-Voice number

By searching 【how to get a Google-Voice number for free】,the ranking of this website which is No.1 via Google search engine optimization can help you get one.In general,you need a Gmail,an American IP(by using vpn or ss),a temporary American phone number(powered by textnow) and a script.

thanks to my friend wbcl

My textnow didn’t work,so he help me confirm the account and get a GV number.The pictures shown below is authorised.

  • He wrote a script by using chrome developer tools then read the network and copied it as cURL.
    wrote a script

  • The bash in vim of terminal run 2 hours automatically.And he has opened lots of tabs to improve efficiency.
    running

  • When wbcl moved the Google Voice number to my account,a Transfer Error showed up.Google wanted to confirm my Gmail account.Because of the behavior of transfer,wbcl must sign in my account via his IP···I changed another ss route and solved it finally.
    Transfer error

those two kinds of happiness coincide with each other

I deleted my Telegram account which is being logged in with my real phone number after backup copies.And now I sign up a new one!I can share my contact free as a bird.At last I understand what is the real happiness.:)


-End

by @wwyqianqian

ninja2

ninja 是?

  • Ninja是一款用于前后端分离开发的本地开发服务器,也被称为是前端容器。是老板、刘指导他们写的一个好用的团队工具。仓库传送门—https://github.com/Muxi-Studio/ninja
  • Check this blog post for more info about the development of Ninja.http://zxc0328.github.io/2016/07/05/ninja/
  • 现在用的是 ninja2,有一键配环境功能,和 ninja1 完全不同。

ninja2 的使用

  • 更新 node 和 npm, -v 检查之后我的 npm 是 5.3.0;node 是 v8.0.0。
1
2
sudo npm install -g n
sudo n stable

四五天前,npm 的 5.2.0 自带 npx 详见这篇

  • git clone 目标仓库,以及 ninja 仓库。

  • 在目标仓库里

1
sudo npm install -g ninja_cli
  • 并 vim 编辑新 touch 的
1
touch ninja.conf.js
  • 使得里面内容保持
1
2
3
4
5
6
7
8
9
10
11
module.exports = {
template: "swig", // whatever template engine you like
mock: "/mock/mock.json", // dir for mock data
webpack: true, // flag for using webpack or not
// proxy: {
// route: "/api",
// origin: "http://xueer.muxixyz.com"
// },
staticDir: "/static",
templateDir: "/",
}
  • 之后在 ninja 里面
1
npm link
  • 回到项目中去
1
ninja2 init <repo name> webpack-vue
  • 关代理,进入小的嵌套项目里面并执行
1
ninja2 start
  • 把嵌套的项目拿到外面,只保留大的同名文件就 ok

此文章借鉴茹芸基友在 Tower 里写的经验)☆⌒(^-^)v THX!!

© 2017 WWY'S BLOG ! All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero