従来のVPNに替わり現在主な接続方式になっているShadowsocks。
接続の安定性と負荷の軽さは言わずもがな、さらにはサーバー側アプリケーションも簡単にインストールできるようになっているのも嬉しいところなので、今回は1年間は無料で使えるGoogleCloudPlatform(以下GCP)を使用してShadowsocksサーバーを構築する方法を紹介しようと思います。
筆者は普段は最高速度やping値の低さ、それにリージョンの兼ね合いで有料業者の提供するVPNやShadowsocksサービスを使用していますが、それらに比べてGCP上に立てたShadowsocksサーバーは安定性が高く最大接続数などの制限がないため、サブ用途や日本から来るお客さんに使用してもらうために運用しています。
2020/5/15現在、政府の規制によってShadowsocksは使い物になりません。
V2Ray、Trojanといった方式ならGCP上でもしっかり動作し、接続も安定しています。
自分で構築は面倒くさいという方は有料のVPNサービスと契約しましょう。
下は筆者おすすめのVPNサービスの紹介記事です。

無料で使えるGCP
GoogleCloudPlatformはGoogleが提供するクラウドサービスでとにかく多機能、そしてマシンや回線の使用量に応じた従量制の課金システムを採用しているというのが特徴です。
2018年10月時点で登録時に12ヶ月間使用できる300ドル分のクレジットがチャージされるというキャンペーンが行われています。
Shadowsocksサーバーとしての用途であれば1年で300ドルも使い切れないので、実質1年間は完全無料で使用できるということになります。
ちなみにこのキャンペーンはもう一年以上も継続して行われているので、今後もしばらくはこのままなのではないでしょうか。
用意するもの
・クレジットカード
GCP登録時に使用します。
・VPNかShadowsocks回線(※中国から設定する場合)
GCPはGoogleの提供するサービスなので、中国から構築する場合は
VPNかShadowsocks回線が必要になります。
GCP上にShadowsocksサーバーを構築する手順
1.GCPに登録
私の場合はGoogleアカウントとクレジットカードを紐づけていたので特に何を設定するでもなく登録することができました。
「クレジットを使い切るか1年経過後は、継続利用を選択するまで課金されることはありません。」とのことなので安心。具体的な名前は挙げませんが、自動引落し設定がデフォルトでオンになっていたりする日本の某大手ITサービスとは雲泥の差。
2.プロジェクトの作成
上部にあるプロジェクトの選択をクリックし、作成をクリック
好きにプロジェクトを命名
3.ファイアウォールルールの設定
VPCネットワークからファイアーウォールルールを選択
ファイアウォールルールを新規作成
名前:適当な名前
ターゲット:ネットワーク上のすべてのインスタンス
ソースIPの範囲:0.0.0.0/0
プロトコルとポート:すべて許可
4.静的IPアドレスの取得
VPCネットワーク→外部IPアドレス→静的アドレスを予約
名前:好きな名前
ネットワークサービス階層:プレミアム
IPバージョン:IPv4
タイプ:リージョン
リージョン:asia-northeast1
5.VMインスタンスの作成
ここからは仮想マシンの設定
Conpute Engine→VMインスタンス→作成
名前:好きな名前
リージョン:asia-northeast1(東京)
ゾーン:asia-northeast-a
マシンタイプ:micro
ブートディスク:Debian GNU/Linux 9(stretch)
作成
※マシンタイプは恐らくmicroで十分、基本料金は約5ドル/月
6.shadowsocksサーバークライアントのインストール
shadowsocksインストーラーパッケージは色々あるのですが、設定が一番親切と思われるクライアントをインストールする手順の紹介です。
Conpute Engine→VMインスタンス画面を開き、先程作成したVMインスタンスのSSHをクリック
新たなウインドウが開かれ、SSHで自動的にログインしてくれるので少し待ちましょう。以後の操作はこのウインドウ内で行います。
以下下記コマンドを入力していきます。コピーペースト&エンターで順に入力していくと間違いないかと思います。
sudo -i
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
chmod +x shadowsocksR.sh
./shadowsocksR.sh 2>&1 | tee shadowsocksR.log
インストール前に設定画面が表示されます。
7.設定
6までの操作を終えると設定画面が表示されます。
好きなパスワードを入力
1-65535までの使用したいポート番号や暗号化形式などを順に入力していきます。(空白のままエンターを押すことでデフォルトの設定が入力されます。)
パスワード:任意
ポート:任意
暗号化形式:任意
プロトコル:origin
obfs:plain
とりあえずパスワード以外はデフォルトでも問題ありません。
全ての設定の入力を終えると自動的にインストールが始まります。数分かかるので少々お待ち下さい。
これでshadowsocksサーバーの起動と設定は完了です。
最終的にこのように設定した内容が表示されるのでスクリーンショットでも撮っておきましょう。
8.設定したShadowsocksサーバーへ接続
8-1.WINDOWS
こちらからクライアントソフトをダウンロード&解凍
起動するとタスクトレイに常駐します。
タスクトレイのShadowsocksアイコンを右クリック
サーバーの編集
先程の設定内容を入力
最後に「システムプロキシを有効にする」にチェックを入れることでGCP上のShadowsocksサーバーと接続されます。
8-2.Android
1.GooglePlayでShadowsocksを検索
2.クライアントをインストール
3.アプリを起動し、右上の追加アイコンをタップ
手動設定を選択
4.先ほどの情報を入力
サーバー名:覚えやすい名前
サーバーアドレス
リモートポート
パスワード
暗号化形式
4.接続したいサーバーを選択し、右下の接続アイコンをタップ
緑色になったら接続状態です。
5.ドロワーメニュー内に接続、切断の切り替えボタンの追加もできます。
地味に便利です。
スポンサーリンク
9.接続テスト
googleのバックボーンを使用しているだけあり、接続の安定性は抜群です。
時間帯関係なくyoutubeの1080p動画は安定して視聴できています。
スポンサーリンク
コメント
ゆるちな様
1.から順番に進めて行き
6.shadowsocksサーバークライアントのインストール
で2番目のコマンド
「yum -y install wget」
をコピーペースト&エンターで入力したところ
root@instance-1:~# yum -y install wget
-bash: yum: command not found
というエラーが出て進むことができませんでした。
設定がおかしいとこのようなエラーが出ますか?
返信が遅れ申し訳ございません。
上記四行のコマンドをお試しください。
ゆるちな様
返信いただきありがとうございます。
また、遅くなってしまい申し訳ありません。
上記の内容で進めてみたところ
無事に設定を完了することが出来ました。
このような斬新かつ非常に有用な情報を共有いただき
深く感謝申し上げます。
真にありがとうございました。
中国ではまだ試しておりませんが、試すのが楽しみです。
無事に設定できたようで何よりです。
GCPを使った構築だと出口のリージョンがアメリカになってしまうのでその点だけはご留意下さい。
具体的には日本へのみ提供されているコンテンツ、特に動画関係は繋がらない可能性があります。
いつも楽しく拝見しています。先日大陸でVPN環境があったので,教えていただいた、GCPのシャドウソックスを設定してみました。
ブログに書いていただいた通り設定したところ無事完了し、大変便利に使わせていただいています。本当にありがとうございます。こんな方法があるとは本当に感動です。
お尋ねなのですが、GCPの料金履歴のところを見たところ、かなりのペースで課金されています。1週間で450円ほどです。従量制とのことですが、データ量だけでなく、時間表示もあり、利用時間でも課金されるのでしょうか?
300ドルのクレジットを使い切ってしまうまでは無料ということは分かるのですが、料金の明細の見方が分からず困っています。説明のページを探したのですが分かりませんでした。支払いのカウントを止めるにはプロジェクトを削除すればよいのですか?
素人で本当にすみません。料金明細の読み方とGCPサービス利用停止の方法を教えていただけないでしょうか。
はい、使用時間に基づく料金とトラフィック量、CPU使用量に応じた従量制となっており、私の場合は1つのサーバーにつき月1,500円程度の費用がかかっています。(無料分300ドルで自動的に相殺されています)
料金についてはGCPのコンソールの【お支払い】から詳しく参照が可能です。
お支払い→料金の履歴から明細を確認でき、正の数字が使用料金、負の数字が割引(無料でもらえる300ドル分のクレジットとの相殺)となります。
利用をやめたい場合は仰るとおり作成した全てのプロジェクトを削除、もしくはお支払い→概要の上部にある【請求先アカウントを閉鎖】から行います。
追記です。
右上のプレゼントボックスアイコン(無料トライアルのステータス)をクリックすることで、残りの無料分クレジットと、利用可能日数が表示されます。
親切に返信ありがとうございます。
初心者にも丁寧に説明してくださり、ありがとうございました。これからもブログや最新のスマホ情報を楽しみにしています。春節でお忙しくなると思いますが、ご活躍が楽しみです。
シャドーソックス、今日朝11時ごろ
突然使えなくなりました。地方によって違うのかな、と思い、コメントしました。
こんにちは。情報のご提供ありがとうございます。
私のものも使用不可能になっていました。
原因を調べるためにSNSで同じような報告が上がっていないか調べてみたのですが見つからず。
試しにリージョンを変更してみたところ繋がるようになりました。
4.静的IPアドレスの予約
にて、リージョンをAsia-east1
5.VMインスタンスの作成
にて、リージョンをasia-east1-c
設定時に、以上の設定にそれぞれ変更することで接続可能です。
前に設定したサーバーは、ホーム→プロジェクト設定に移動→シャットダウン
から消去し、新しいプロジェクトを作成し直す形になります。
こっちのリージョンで設定したものも繋がらなくなりました。
あいにく数日はまとまった時間が取れないのですが、現在調査中です。
何かわかりましたらこちらで報告させていただきますね。
またつながりませんね。私も同じです。てんあんもん事件のきねんびを前に規制が厳しくなっているのでしょうか?一週間くらいでまた復帰してくれればまだいいのですが。
当局が自由に規制できるシャドウソックスってのもなんだかなと言う感じですけど・・・(笑)わたしもいろいろ方法を探ってみようと思います。
いつもありがとうございます。
Shadowsocksは現在ほぼ使い物にならない状態ですねー。
現状と見解はhttps://yuruchina.com/vpn/ssbkにて述べています。
有志の方が対策を考えてくれると思うので、それまでは既存の接続方式で耐え忍ぶしかなさそうです。
現在はGCPで構築したサーバーも途切れることなく安定して接続できています。
情報ありがとうございました。
ゆるちなさんの手順通り進めたらなんとかできましたが…
ところで、この方法は複数のPCから同時に使えないんでしょうか???
自宅の二台のマシンにShadowsocksをインストールして同時に使おうとしているのですが。
なぜか片方はできません。。。
まぁ、怖いので今まで使っている有料のChrome用エクステンションは契約しておきますが…
閉鎖されないように願ってます。
こちらの設定で複数の機器から同時接続可能です。
接続できない方のPCの設定をもう一度ご確認下さい。
その他のVPNサービスと同時に起動すると競合してしまうことがあります。
経験上、複数のVPN回線を準備しておくに越したことはないと思います。
GPCのサーバーはアメリカリージョンになってしまうので、日本IPを提供してくれる業者のサービスがおすすめです。
2019年9月16日の夕方よりシャドウソックスがつながらなくなりました。以前はプロジェクトを削除して新たに作り直して対応していたのですが、今回プロジェクト自体は立ち上がるのですが、SSHにコマンドを入力していく過程でエラーが出てしまいます。同じような方はおられますか?
こんばんは。
9月16日から一週間ネットワーク安全週間ということでShadowsocksに規制が入っているようです。
私の環境では二ヶ月前に立てたサーバーが問題なく使用できているため、現時点では前回のような大規模なブロックではないようです。
新規サーバーのセッティングすらできないというのは少し妙な気もしますね…
今回の規制もSS接続を検知し、システム的に接続先IPをブロックしているものと思われます。
報告された新たにサーバーを建てられないという問題ですが、こちらでは9/20時点にて問題なくサーバーを建てられることを確認しています。
リージョンは台湾を使用し、日本リージョンは試していないため不明です。
台湾リージョンを試し、それでも建てられないようであれば、手順のどこかが間違っている可能性があるのでもう一度手順の確認をしてみて下さい。
ただ、今の状態では正直使い物にならないので、規制の終了を待つのが賢明だと思います。
規制の解除がネットワーク安全週間終了後なのか、国慶節終了後なのか、はたまた永続なのかは分かりませんが…
相変わらず規制が続いていますね。先日SSHのコマンドが入力できない件はご指摘の通り私のミスでした。スペースが一字入ってしまっていたようです。