标签 gfw 下的文章

本文原来拟定的标题为:《墙,墙,又是墙!》,以显示我的愤怒。

故事背景是由于 Google Workspace 放弃了白嫖用户,我转付费了其中若干套,放弃了若干套。放弃的订阅可以导出全部数据到 GCP 存储桶。

大概是这样的:

在 gsutil 工具主页上看到安装方式的文档链接,文档首选通过自定义 repo 的方式安装:

sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM
[google-cloud-cli]
name=Google Cloud CLI
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el8-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOM

sudo dnf install google-cloud-cli

经测试,由于众所周知的原因,这个方案在国内主机上是行不通的。

知天朝者,Google 也。他们还提供了通过归档包的方式进行安装的方案。目前可以下载到的最新的版本归档是:google-cloud-sdk-377.0.0-linux-x86_64.tar.gz。

这里要感谢仁慈的 TG,没有赶尽杀绝,留了 dl.google.com 活口:

# wget -c https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-377.0.0-linux-x86_64.tar.gz
# tar xzf google-cloud-sdk-377.0.0-linux-x86_64.tar.gz
# cd google-cloud-sdk
# ./install.sh

安装完成后提示:

To update your SDK installation to the latest version [381.0.0], run:
  $ gcloud components update

作为精神强迫症患者,必须来一波:

# gcloud components update

到这里身心还较为愉悦,尝试列出 GCP 存储桶的文件:

# gsutil ls gs://takeout-export-xxxx

我就猜到会报错:

ServiceException: 401 Anonymous caller does not have storage.objects.list access to the Google Cloud Storage bucket.

- 阅读剩余部分 -

我们的宣传口号是:与墙斗,其乐无穷。

1、墙内服务器

1.1、需求与掣肘

需要对服务器数据进行异地备份,数据量级:GB 级。收费的阿里云 OSS 等用不起,土豪请自便。免费的 Google Drive 连不上。

1.2、方案选型

一番折腾后最终选定七牛云免费 10G 对象存储。不够用就建多个账号,用不同的 butket 来备份。

1.3、准备工具

  • 七牛云账号一枚
  • 安装 qshell
  • 本地备份脚本,若无可参考本文 2.4 部分

1.4、实施细节

下载并设置脚本:

wget -c http://devtools.qiniu.com/qshell-linux-x64-v2.4.1.zip
unzip qshell-linux-x64-v2.4.1.zip
mv qshell-linux-x64-v2.4.1 qshell
chmod +x qshell

前往七牛云密钥管理,找到 AccessKey 与 SecretKey:

添加七牛云账号鉴权:

/path/to/qshell account <AccessKey> <SecretKey> <账户标识>

确认一下:

/path/to/qshell user ls
Name: xxxx
AccessKey: xxxx
SecretKey: xxxx

七牛官方建议大于 100MB 的文件使用 rput 来代替 fput 来实现上传。由于备份文件普通较大,这里统一使用 rput:

/path/to/qshell rput xxxx qshell-linux-x64-v2.4.1.zip /root/qshell-linux-x64-v2.4.1.zip
Uploading /root/qshell-linux-x64-v2.4.1.zip => xxxx : qshell-linux-x64-v2.4.1.zip ...

Put file /root/qshell-linux-x64-v2.4.1.zip => xxxx : qshell-linux-x64-v2.4.1.zip success!
Hash: lhKbzJ8255w0m4BKgtYpPthvU5Mc
Fsize: 9739680 ( 9.29 MB )
MimeType: application/zip
Last time: 23.54 s, Average Speed: 413.8 KB/s

上传多个备份文件,我的思路是:

  • 用 bash 脚本跑批
  • 事先 tar 到一个文件中,再用 qshell 上传

- 阅读剩余部分 -

本博自 2012 年光荣地被 GFW 认证后,长期流亡海外。辗转香港、日本、美国等地,依然在高墙之外。2014 年的时候,眼看我的域名邮箱都收不到来自墙内的邮件,再也坐不住了。后来通过一些技术方式调整了部署,邮箱恢复正常,本博也终于得见天日。

三年多的时间发生了什么?我不能告诉你。只能说我也做了很多事情,唯一值得庆幸的是,我终于离开了互联网行业。这种感觉也正如同围城效应,现在反思前后,居然还有些许不舍。再值得庆幸的是,互联网就在我们身边。你玩儿,或者不玩儿,Ta 都在这里。每时每刻、不离不弃。

最近又遇到一件事情让我重操旧业。作为重度 Google 用户,已经具备常年与 GFW 作斗争的经验。然而在各种两会各种峰会的轮番轰炸下,梯子一个一个倒下去。SSH 转 Socks5 的方式早已落伍,各种 VPN 服务也在挣扎。为了能够更愉快地玩耍,我决定自食其力。

首先要有一台墙外的服务器或者 VPS。现在阿里云、腾讯云等各种云都做得不错,价格也亲民(我用的不是上述服务商,别问为什么,谢谢)。操作系统 CentOS,开始:

检查内核环境是否包含 mppe,是否支持 pptp。CentOS 6.4 内核版本在 2.6.15 以上,都已默认集成。

cat /dev/ppp
cat /dev/net/tun

安装 ppp、防火墙与 pptpd:

yum install -y ppp iptables
wget -c http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -Uhv pptpd-1.4.0-1.el6.x86_64.rpm
yum install pptpd

修改配置文件中的 DNS 为 8.8.8.8 和 8.8.4.4:

vi /etc/ppp/options.pptpd

配置 VPN 账户:

vi /etc/ppp/chap-secrets

配置客户端分配到内网的 IP 地址,记得在最后加一个空行。

vi /etc/pptpd.conf

修改 net.ipv4.ip_forward 为 1:

vi /etc/sysctl.conf

生效配置,启动防火墙服务:

/sbin/sysctl -p
/sbin/service iptables start

根据网卡参数配置防火墙。由于我的 VPS 有两个公网 IP,就这样:
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j SNAT --to-source xx.xx.xx.xx
/sbin/iptables -t nat -A POSTROUTING -o eth1:1 -s 192.168.0.0/24 -j SNAT --to-source x.x.x.x

保存设置,重启服务:

/etc/init.d/iptables save
/sbin/service iptables restart

最后重启 pptpd 就大功告成了:

service pptpd restart

还可以设置开机启动:

chkconfig pptpd on
chkconfig iptables on

参考文章《centos6.4安装搭建pptp vpn服务(附pptp vpn 一键安装包) | 大步's Blog》,原文作者:大步。原链接已失效。

从今天开始,妈妈再也不用担心我的学习。家中小米路由以及单位极路由完美适配。其中极路由本身有智能路由模式,小米路由需要刷开发包,开启 SSH。具体可参见《正确姿势使用智能VPN分流,无缝国内外分流科学上网》。

- 阅读剩余部分 -

这次,我只想说:Fuck GFW!

中共执政的 63 年,是走有“中国特色”封建集权制道路的 63 年、愚国愚民的 63 年。你们千万不要得意忘形,以为自己有多伟大的政绩,又不辱毛爷爷的使命,把维稳工作做得滴水不漏。在我眼里,你们就是跳梁小丑。不要以为你们在全国范围内投放播出了一部长达几十年的电视连续剧《新闻联播》,就真的可以遮天蔽日、为所欲为,就真的以为老百姓会相信你们在戏里表演的那样:领导都很忙,鞠躬尽瘁死而后已、社会主义中国日益繁荣富强、资本主义人民却生活在水深火热之中。不要把全体人民都当作傻瓜,你们的拙劣演技我们是有目共睹的。

我不得不承认,你们以前是土匪军,现在是执政党,煽颠的能力还是不错的。这从最近钓鱼小岛这场戏就可以看出,也许你们有时候真的可以用你们的喉舌控制媒体的声音、忽悠一些不明真相的群众、转移公众的视线。但是纸永远包不住火,连小柯南都知道,真相只有一个。

远的就不说了。除此之外,你们还禁锢进步思想,大搞互联网审查制度、干涉网民正常上网,居然大言不惭地说中国的互联网是最开放的。能将掩耳盗铃发挥到此般极致,我深深地佩服你们的勇气。你们可以不要脸、可以自甘堕落,但是逆潮流而动、违背社会发展的客观规律、抵制基本普世价值、无视人权,你们就一定能成为民族的千古罪人。加油,让我们拭目以待。

回到文章主题,说说本博是如何一步一步取得“被认证”的荣誉的。

一开始本博还在天朝生根发芽,突然全国范围推行备案政策,我就开始着手搬家。后来天朝的相关政策一直不见正常,甚至出现了“白名单”传闻,于是我在 Godaddy 买了主机和固定 IP,确定永久“移民”了。

随后一段时间,国内访问本博除了速度慢之外其他也都正常。但是好景不长,Google 事件发生后,Google 中国域名迁至香港。那时我发现国内访问国外的网站开始时断时续了,后来甚至有人总结出天朝当局封锁基于 HTTPS 协议的 Google 服务的时间段规律。

接着我发现 Godaddy 的 DNS 在国内也开始不正常,本博的访问也出现了类似于这种规律的周期性抽风。于是我又申请了 SSL 证书,并启用强制性 HTTPS 跳转,稍有成效。

今年国庆节期间,监控报告显示本博在全国大部分地区开始全时段的无法访问。我的小心脏紧张了一下,并意识到这次是来真的了。果然,经过技术测试已证实本博 xuchao.org 与 xuchao.net 在全国大部分地区 ISP 的 DNS 中被屏蔽解析,feed 订阅地址 feed.xuchao.org 也随之只能翻墙打开,导致使用诸如 Google Reader 等订阅器的同学以为我很久没更新博客了。其中 xuchao.org 尤为悲惨,连 MX 记录也不给我放过,直接导致我现在接收或者发送国内运营商的邮件,会有很长很长时间的延迟甚至退信。相对于这两个域名,xuchao.cn 等几个国内域名和中文域名幸免于难。

突然想起前几天这位同学的评论,应该也与这事有关系。

放图说明:

在整个测试过程中,我要感谢 blankyao水总明城、郭丹、磁力等同学先后给予无私的协助与关怀。

解决方案:

既然是 DNS 屏蔽,我们可以通过 8.8.8.8 或者本地 hosts 文件的方式来解决。如果您不知道我在说什么,请到 CCAV 等娱乐频道自学。谢谢。

最后,feed 的问题我将在近期解决,初步计划迁移到 feedburner。敬请期待。

河蟹社 5 月 12 日讯:

本博在美帝一直都有独立的固定 IP,然而只承载了几个小站的 IP 最近变得十分不稳定。眼看 SSL 证书也快到期,干脆 Revoke 掉重新买一个。折腾一个晚上,浪费近百刀买了 N 个证书才算搞定。结果是一口气续费了 5 年的主机,买了 5 年的证书。在此感谢狗爸爸的马甲——Starfield,学到不少,没白交学费。

日本国的核泄事故教训必须得吸取啊,本博宣布:已从 2011 年 5 月 11 日开始全站启用防核泄保护,即日起请通过 https://www.xuchao.org 来访问本站,RSS 地址不变,所有未通过 https 访问的请求将被重定向到带 https 的地址。

感谢所有应该被感谢的相关部门,给了本博境外重生的机会。口号“备你妹案”,你懂的。