欲学编程,必先翻墙

最近深感网络不畅,对祖国未来的码农事业深表堪忧,所以思前想后,还是写下这篇,以供参考。

当然技术日新月异,除了翻墙工具本身,我们自然需要玩点别的东西。比如 Docker 和自带其的 CoreOS,首先,去支持 CoreOS 的某个国外 VPS 服务商,比如 DigitalOcean

按照引导创建好 Droplet 后,我们通过 ssh 登录到主机服务器中。(关于如何创建 ssh key 及添加公钥,参考 Generating SSH keys

注意: 对于 CoreOS 来说,目前仅支持 SSH 登录,且用户名是 core,所以 ssh 的命令应该是

ssh core@xxx.xxx.xxx.xxx

各种 xxx 为 IP 地址,请勿弄错。

然后,

vim ShadowShocksServer

复制粘贴以下内容 (i)

# ShadowShocksServer 
#
# VERSION 0.0.1
FROM centos 
RUN yum install python-setuptools -y
RUN echo y | easy_install pip
RUN pip install shadowsocks

保存 (esc :x) 并执行

sudo docker build -t ssserver -f ShadowShocksServer .

稍等片刻,然后我们就有了 ssserver 的 image 供我们启动 ShadowShocks 的服务

然后,创建 `ShadowShocksServer.json`

{ 
"server": "0.0.0.0",
"server_port": <PORT>,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": <PASSWORD>,
"timeout": 300,
"method": "aes-256-cfb",
"fast_open": false,
"workers": 1
}

(详见 Configuration via Config File · shadowsocks/shadowsocks Wiki · GitHub

启动服务,

sudo docker run -d -p <PORT>:<PORT> -v /home/core/ShadowShocksServer.json:/etc/ShadowShocksServer.json ssserver ssserver -c /etc/ShadowShocksServer.json

剩下的事,装个客户端 Ports and Clients · shadowsocks/shadowsocks Wiki · GitHub

另外,由于主机会重启,所以我们还得给 CoreOS 配上自启动。

创建文件 `ssserver.service`

[Unit]
Description=ssserver
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill ssserver
ExecStartPre=-/usr/bin/docker rm ssserver
ExecStart=/usr/bin/docker run --name ssserver -d -p <PORT>:<PORT> -v /home/core/ShadowShocksServer.json:/etc/ShadowShocksServer.json ssserver ssserver -c /etc/ShadowShocksServer.json
[Install]
WantedBy=multi-user.target

并拷贝到 `/etc/systemd/system` 中

sudo cp ssserver.service /etc/systemd/system

接着,只需要运行这个:

sudo systemctl enable ssserver.service 
sudo systemctl start ssserver.service

注,以上文件均创建在 ~ 即 /home/core 下

— — — — — —

码农圈子中喜欢各种折腾的人是越来越少,就翻墙本身,现成的成熟方案很多,能选取其一用以解决问题,这是基本能力

其次,能同时折腾到其他至少看上去比较新的技术,比如这里提到的 Docker 和 CoreOS,新的工具在会给开发带来帮助,分布式协作/本地黑盒环境/持续集成部署/云 等等。拿来作为翻墙服务只是练手,或者说是找个借口玩点新玩具,这是折腾的本性。这没事的时候瞎折腾,在合适的时候会成为搞定项目的必要因素。

会使用工具,只是入门,知道这些步骤都干了啥,渐入佳境,至于之后能不能创造,看努力和造化了。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.