中国の金盾対策手段のひとつに、shadowsocksR(以下SSR)が良いという情報が色々出てくるので、調べて構築してみた。
ググると詳しい解説は色々でてくるので、簡単なメモのみ。
Linux CentOS7の場合
ここにインストールスクリプトがあるので、実行し、暗号化などを適当に選べば、とりあえずサーバ側の環境は整う。systemctlやfirewallまで面倒見てくれる。(ソース冒頭にはCentOS6とあるが、7も考慮されてる)
その後、利用するクライアントや環境に合わせて微調整が必要になってくる。
また、事前に複数のパターンで設定を準備しておくと、万一現地でつながらなかった場合の選択肢が増えるので良い。
設定
/etc/shadowsocks.jsonの例
{
"server":"0.0.0.0",
"server_ipv6":"[::]",
"local_address":"127.0.0.1",
"local_port":1080,
"port_password":{
"12340":{
"protocol":"auth_chain_a",
"password":"secret1",
"obfs":"tls1.2_ticket_auth_compatible",
"obfs_param":""
},
"12341":{
"method":"aes-256-cfb",
"protocol":"auth_aes128_md5",
"password":"secret2",
"obfs":"tls1.2_ticket_auth_compatible",
"obfs_param":""
}
},
"timeout":120,
"method":"none",
"protocol":"auth_chain_a",
"protocol_param":"",
"obfs":"tls1.2_ticket_auth_compatible",
"obfs_param":"",
"redirect":["bing.com", "cloudflare.com:443"],
"dns_ipv6":true,
"fast_open":false,
"workers":1
}
- port_passwordにて複数のポートにそれぞれ設定可
- 暗号化方式(method)
- パスワード(password)
- プロトコル(protocol)
- 難読化(obsf:obfuscating)
クライアント
クライアントによっては対応している各種パラメタが多かったり少なかったりするが、識別文字列は同じなので、合わせれば大丈夫。
Windows
https://github.com/shadowsocksrr/shadowsocksr-csharp/releases
上記のv4.9.2で利用可能であることを確認。
Android
https://github.com/shadowsocksrr/shadowsocksr-android/releases
上記のv3.9.2にて利用可能であることを確認。
usbデバッグ経由で、adb install <apk>にて入れました。
FreeBSDの場合(おまけ)
SSRはなく、別分岐のShadowsocks(以下SS)のみ、pkgが存在する。なお、通常はquarterlyリポジトリを追従しているので、latestリポジトリを追従するように変更すると最新版が得られる。
$ mkdir -p /usr/local/etc/pkg/repos
$ echo "FreeBSD: { enabled: no }" >
/usr/local/etc/pkg/repos/FreeBSD.conf
$ cat /usr/local/etc/pkg/repos/FreeBSD.conf
FreeBSD: { enabled: no }
$ cat /usr/local/etc/pkg/repos/latest.conf
latest: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes,
priority: 10
}
$ cat /usr/local/etc/pkg/repos/quarterly.conf
quarterly: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes,
priority: 0
}
引用元:Freebsdのpkgで複数のリポジトリを参照する方法
設定
SSRのように、複数のパスワード設定はできないので注意。