All Stories

Go语言用表驱动替换if-else/switch-case/select-case

没心情给avege做新功能,就断断续续做些重构工作,用gocyclo看出来很多函数的圈复杂度都很高,常规的做法,除了把一个大函数拆成几个小函数外,还要对代码逻辑进行调整,比较可观的做法是把if-else,switch-case和select-case替换掉。

OpenVPN同时监听TCP和UDP端口

在路由器上部署了全局翻墙后,出于简化部署的考虑,我把接在路由器后的一个Raspberry Pi作为VPN server,部署了OpenVPN,然后再在路由器上设置端口映射,可以从外网连回Raspberry Pi。这个方案有几个好处:

在家部署IPv6后续

之前在香蕉派上通过he.net的tunnel得到IPv6后,遗留下一个问题,二级路由器Netgear R6300v2刷了梅林固件后,不能分配内网IPv6地址,网上看也有人提出了相同的问题,后来在其他人的指点下,找到解决这个问题的几个办法。

过完年了

节前请了2天年假,节后公司又比法定多放2天,于是今天仍然在家闲着。

在家部署IPv6

自从苹果要求iOS app能支持IPv6以来,我就一直想在自己屋里搞一个IPv4/IPv6双栈的环境,不为实用,只是为了满足那点强迫症,直到现在才有点进展。

Avege WIP(三)

Avege开源后并没有太大的变化,除了收获了180多个star,大概也没什么人真正用上,别说PR了,连issue都没有,不过也收集了一些意见和建议。

Avege开源了

昨天把Avege客户端部分的源代码单独取出来,放到github上了。然后在v2ex上发了个帖,在twitter上发了条推,在Telegram上的一些群里发了条消息。终于有了一个star数过100的repo了:P

Avege WIP(二)

经过大半个月的折腾,兼容SSR混淆和协议的坑终于填上了,目前混淆支持plain、http_simple、http_post、random_head、tls1.2_ticket_auth几种,协议支持origin、verify_sha1即原版SS的One Time Auth、auth_sha1_v4、auth_aes128_md5、auth_aes128_sha1几种。

SSR混淆协议Go版移植手记(五)

之前写好的tls1.2_ticket_auth在接收到大量数据时会decode出错,后来发现auth_sha1_v4在接收大量数据时最后一块数据时会要等一段时间才能收到。由于tls1.2_ticket_auth的问题在前面那么多天的仔细排查定位后,仍然毫无头绪,我觉得auth_sha1_v4的问题应该会容易一些,就先尝试一下修正这个问题。