AzureでShadowsocksRサーバーも立てた

昨日の記事『AzureでShadowsocksサーバーを簡単に立てる方法』の続き。
 

Azureの東日本リージョンにShadowsocksサーバーを立てることに成功したので、次はShadowsocksRに挑戦する。といってもやり方は同じで超簡単。

 

 

ShadowsocksR on Azureのやりかた

このフォーラムにすべて書いてある。

(翻墙)Azure一条命令架设ShadowSocksR(SSR)服务器+客户端设置(Win10, 手机, 盒子)

参考元が消えてしまった時の為、内容をここに転載しておく。

相关下载请到 https://www.dengnz.com/youtube/

用到的命令: // 创建resource group az group create --name testSSR --location eastus
方法1: // 单命令架设SSR az container create --name ssr --image malaohu/ssr-with-net-speeder --resource-group testSSR --ip-address public --port 81 --command-line "/usr/local/bin/entrypoint.sh -s 0.0.0.0 -p 81 -k P@ssw0rd -m rc4-md5 -o http_simple" // 删除以上SSR, 不用的时候 az container delete --name ssr --resource-group testSSR
方法2: //先跟着这个页面的1,2,3,4步添加docker repository https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-repository //安装docker sudo apt-get update && sudo apt-get install docker-ce //单命令架设SSR sudo docker run -d --rm --name ssr -p 81:81 malaohu/ssr-with-net-speeder -s 0.0.0.0 -p 81 -k P@ssw0rd -m rc4-md5 -o http_simple 推荐的协议和混淆参数看这里 https://github.com/shadowsocksr-backup/shadowsocks-rss/wiki/obfs 不是所有的参数都能在这个教程里用, 比如chacha20的加密算法就用不了, 因为这个docker image 的作者没有加libsodium 的包. 我有空会定制一个新的docker image, 把这些加进去.
对原理有兴趣的请看这里: https://github.com/shadowsocksrr/shadowsocks-rss/blob/master/ssr.md
这里分享一个ShadowSocksR 服务器 ShadowSocks R
server: 35.229.147.33 port: 81 protocol: origin password: 看视频最后几分钟 method: rc4-md5 obfs: http_simple
可以试的加密算法 -m 选项 rc4 rc4-md5 aes-128-cfb aes-192-cfb aes-256-cfb bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb des-cfb idea-cfb rc2-cfb seed-cfb salsa20 chacha20 chacha20-ietf
可以试的混淆 -o 选项 plain http_simple http_simple_compatible http_post http_post_compatible random_head (已过时) random_head_compatible (已过时) tls1.2_ticket_auth tls1.2_ticket_auth_compatible
可以试的协议 -O 选项 origin verify_deflate (不建议) verify_sha1 (已过时) verify_sha1_compatible (已过时) auth_sha1 (已过时) auth_sha1_compatible (已过时) auth_sha1_v2 (已过时) auth_sha1_v2_compatible (已过时) auth_sha1_v4 (不建议) auth_sha1_v4_compatible (不建议) auth_aes128_md5 auth_aes128_sha1 auth_chain_a auth_chain_b

結論から言ってしまえば、SSの時と同様に以下の一行を叩いてやればいい。太字にしたリソースグループとパスワード文字列は前回同様に適宜変更すること。

az container create --name ssr --image  malaohu/ssr-with-net-speeder --resource-group testSSR --ip-address public --port 81 --command-line "/usr/local/bin/entrypoint.sh -s 0.0.0.0 -p 81 -k P@ssw0rd -m rc4-md5 -o http_simple"

また、SSRは更に導入時に-m -o -Oの3つのオプションを選択できる。-mは暗号化アルゴリズム、-oはスクランブル方式(?)、-Oはプロトコルを選択できる。

 

最適なオプションはどれか

これらのオプションについては正直よくわからないのだが、

ShadowSocksRのGitHubページによると、プロトコルはauth_chain_aがベストで、このとき暗号化アルゴリズムはnone、スクランブル方式はtls1.2_ticket_authがいいと書いてある。

かと思えばこちらには、プロトコルはauth_sha1_v4_compatible、暗号化はchacha20-ietfaes-128-ctr、スクランブルはtls1.2_ticket_auth_compatibleがいいとある。

でも上に転載した投稿ではauth_sha1_v4_compatible(非推奨)となってるし...

全く分からん。こことかここに詳しい解説もあるけど全然分からん...

 

とりあえずここに書いてあるauth_aes128_md5auth_aes128_sha1を選ぶなら暗号化をrc4に」というのと、「スクランブルはtls1.2_ticket_authを推奨」という事が分かったので、この情報とGitHubの情報を合わせると、

プロトコル:auth_chain_a 暗号化:none スクランブル:tls1.2_ticket_auth
または
プロトコル:auth_aes128_md5auth_aes128_sha1 暗号化:rc4 スクランブル:tls1.2_ticket_auth

のどちらが良さそうだということになる。こればっかりはトライ&エラーで探るしかなさそうだ。

 

Android端末側の設定

Androidアプリはこちらからダウンロードできる。SSと違ってGoogle Playストアにはなく野良アプリをインストールする。

001.png

実際は日本語に対応しているが、スクリーンショット制限があったため拾い画で。

サーバー側導入時に指定したポート、プロトコル、暗号化方式、スクランブル方式を設定し、Azure管理画面のIPアドレスを入力すればOKだ。

心配とは裏腹にあっけなく繋がった。簡単だ。

 

日本でできるのはここまで

結局最適なオプションを見つけるには至らなかったが、SS同様びっくりするぐらい簡単に構築できた。

日本にいる間は金盾に対する実地テストができないので、次回訪中時に色々試してみたいと思う。

ただ、中国のネット規制事情は日々変わっているため、今回構築した環境が3か月後に通用する保証はない。が、少なくともAzureであれこれする下地はできたので、今後新しいものが出てきても何とかなるだろう。遊ばせていたAzureを少しでも活用できるのは悪いことではないし。

 

逆に日本でできること

一通り触った後に気が付いたのだが、同様の方法を使うことで、日本在住の中国人がよく行う逆VPN(中国国内オンリーのサービスにアクセスするため、日本から中国国内へVPN接続すること)も実現できる。

やり方は簡単で、あらかじめAzureで「東アジア」リージョンのリソースグループを作っておき、そこにShadowsocksをインストールするだけだ。

東アジアのサーバーは香港にあるようなので、日本に居ながら香港経由でネットにアクセスできることになる。

ちなみに、日本-香港間の通信に金盾は関与しないのでわざわざShadowsocksにこだわる理由はない。もっと素直にVPNトンネリングできるDockerコンテナがあれば試してみたい。

コメントする