コロナウイルスの影響で身動きが取れなくなってしまい2カ月が経過しました。緊急事態宣言は全国的に解除されましたが、世界的に見ればまだまだコロナウイルスの影響は大きく中国ビザ申請センターは再開してなくビザの発給は依然として停止したままです。
以前、中国からGoogleやFacebook、Twitterを使うために「V2RAY」サーバを無料で構築しようというエントリーを書きました。
今回はもう一つの手段というか異なる通信方式の「ShadowsocksR」サーバをAWSに構築してみたいと思います。
※Shadowsocksという通信方式が元々はあったのですが、こちらも中国当局の規制により不安定になってしまい、ShadowsocksRが新しく登場しました。
中国からTwitterやFacebookへ接続する
「中国からTwitterやFacebookに情報発信している人たちはどのように行っているのか」気になりますよね。
みなさんVPNを利用しています。
会社の本社や支店、工場なんかを外部に公開しないで接続するために高価な専用線を用意することなく、インターネット上にVirtualでPrivateなNetworkを構築するための技術がVPNです。
その技術を使って中国国外にあるVPNサーバに自分の端末を接続し、「私の端末は中国国外から接続してます」という状態にしてTwitterやFacebookに接続する仕組みです。
ただ最近はこのVPN自体も規制が入ったりして、接続できなくなったりするケースもあるようで、その代替えの通信方式であるShadowsocks、ShadowsocksRや今回のV2RAYが使われてきています。
今使える通信方式がまた規制の対象になることは恐らくあるはずで、その時はまた新たな通信方式が誕生することでしょう(笑)
AWSなら1年間無料
ShadowsocksRサーバの構築ですが、前回のV2RAYサーバの構築の際に紹介しましたが無料利用枠があるAWS(Amazon Web Service)を使います。
今回注意したいのはV2RAYサーバとShadowsocksRサーバを同じAWSアカウントで作成して、1か月フルに利用すると
24時間 x 31日 x 2台 > 744時間
となってしまうため、744時間以降の利用時間については課金されてしまいます。
「AWSアカウントってどうやって作るの!?」ってかたは本家で詳しく書いてあるので確認してください。
何も難しいことはありません。
ShadowsocksR用のEC2インスタンス
Shadowsocksサーバ構築のため東京リージョンに以下のスペックのインスタンスを用意しました。
無料利用枠の範囲で利用できるインスタンスタイプです。
インスタンスタイプ:t2.micro
OS:Amazon Linux
※AMIは「Amazon Linux 2 AMI (HVM), SSD Volume Type 64ビット(x86)」を使用
ストレージ:8GB
セキュリティグループはインバウンドで下記を許可してください。
TCP:22
TCP:16250(※空いているポート番号)
EC2インスタンスは再起動のたびにグローバルIPが変更されてしまうのでIPアドレスを固定させる場合はElasticIPを付与してください。
ShadowsocksRインストール
インストール手順は多くないので10分以内で完了します。
作業はすべて「root」で行います。
sudo su
yumでインストールしたパッケージをアップデートしておきます。
Linuxでサーバ構築したらやっておくべきコマンドです。
yum update -y
ShadowsocksRをインストールします。
先ずはパッケージのダウンロード
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
※ここでエラーになる場合、外部へのアクセスができていない可能性があります。ElasticIPの付与が正しくできているか確認してください。
実行権限を付与
chmod 755 shadowsocksR.sh
インストール実行
./shadowsocksR.sh 2>&1 | tee shadowsocksR.log
パスワードの設定
ポートの設定
AWSを構築する時にセキュリティグループに許可したポートを設定します。※今回は16250
暗号化方式の設定
特に指定がなければデフォルトで問題ありません。
プロトコルの設定
特に指定がなければデフォルトで問題ありません。
obfsの設定
特に指定がなければデフォルトで問題ありません。
何でもよいのでキー入力してください。
※キャンセルしたい場合は「Ctrl + C」
下記のように表示されればインストール完了です。
VPCを設定している場合は使用しているサブネットにインターネットゲートウェイが付与されているか、VPC使ってないならElasticIPを付与してください。
ShadowsocksRサーバの起動と停止
ShadowsocksRサーバのステータスを確認します。
systemctl status shadowsocks
グリーンで「active」が表示されている場合はサービスが有効になっています。
ホワイトで「inactive」と表示されている場合はサービスが無効になっています。
ShadowsocksRサーバを開始させます。
systemctl start shadowsocks
ちょっとコマンドをまとめておきます。
#ShadowsocksRのステータス確認 systemctl status shadowsocks #ShadowsocksRのサービス開始 systemctl start shadowsocks #ShadowsocksRのサービス停止 systemctl stop shadowsocks #ShadowsocksRのサービス再起動 systemctl restart shadowsocks
Androidで動作確認
実際にスマートフォンやパソコンからShadowsocksRに接続してインターネットが閲覧できるか確認しましょう。
今回はAndroidで確認します。
使用するアプリは無料の「BifrostV」を使ってみます。
他のアプリでも良いですし、iPhoneやiPadの場合はApp Storeで探してみてください。
BifrostV
DawnDIY無料posted withアプリーチ
設定項目は以下の通り。
Port:インスタンス作成時にセキュリティグループで許可したポート番号(今回は16250)
Password:ShadowsocksRインストール時に設定したパスワード
Encrypt Method:ShadowsocksRインストール時に設定した暗号化方式
接続ができると画面の最上部に「鍵マーク」が表示されます。
VPN比較サイト
自分でサーバ作るのはやっぱりちょっと…という方は既存のサービスを利用することになると思いますが「どれがいいの?」ってなると思います。
短期の出張であれば無料で(お試しで)利用できるものもあるのでそちらを試してみても良いと思います。
そんな中国で利用できるVPNサービスを比較しているありがたいサイトがありますのでご紹介。
最後に
コロナウイルスの影響で時間がたっぷりあるので自前でShadowsocksRサーバを構築してみました。同じように時間がある人は暇つぶしになるので試してみてはいかがでしょうか?
AWSの無料利用枠を使えば無料で構築できるので試しにAWSを使ってみたいという人にもおススメです。若干「Linux」、「SSH」などの知識が必要ですがネットで調べればいくらでも出てくるのでハードルは低いです。
GoogleのGCP(Google Cloud Platform)も無料で利用できるサービスが用意されているのでそちらで構築するのもありです。
こちらもV2RAYサーバを構築した時と同じなのですが、結局つながるのかつながらないのかは中国に渡航してからでないとわからないのがもどかしい。。。