月400円で中国の規制を超えてインターネットを使えるShadowSocksRサーバーを構築【Vultr VPS】

SSRアイキャッチ

タイトルは月400円ですが東京サーバーの3.5ドルプランがなくなってしまったので、最低月550円(5ドル)になりました。ニューヨーク(NJ)では3.5ドル運用可能です。

ニューヨーク

中国では強力なファイアウォール(金盾、Great Fire Wall)があるため、中国に滞在するときにはVPNが 欠かせません。VPNを利用することで、Googleサービスを使ったりYoutubeを観たりすることができるようになります。

現状としてはVPNも完璧な規制対策というわけではなく、中国の規制当局の対応次第では使えなくなってしまうことがあります。これはVPN特有の通信をファイアウォールが検知してしまうことが一因です。

ファイアウォール

これを回避するために、ShadowSocksRというプロキシを利用します。ShadowSocksRは普通の通信と区別のつきにくいプロトコルを利用しているため、中国の規制にも引っかかりにくいのが特徴です。通信は暗号化されているためセキュリティも確保されています。

このShadowSocksRを使うには有料サービス業者を利用するか、自分でVPS(仮想プライベートサーバー)で自分で構築することができます。

規制されても使えるように複数の接続方法を持つBlueSurfaceのような接続サービスを利用するとよいと思います。

自分でShadowSocksRサーバーを構築するメリット

自分でShadowSocksRサーバーを作ることで、通信容量や利用ユーザー数、デバイス数を気にすることなく、しかも格安で作れます。

個人ユーザーであれば規制を受けにくいはずです。規制を受けたとしても、SnapShot機能を使うことで5分で別の地域のサーバーに同じ環境を復元することができます。

数人の知人と共有することで費用をより抑えることもできます。(月3.5ドルプランだと月間500GBの転送量制限があるので注意)

この記事ではVultr というアメリカに本社があるホスティングサービスを利用していきます。月3.5ドル(約400円)で利用できるのでコスパは抜群です。1時間単位の課金なので短期で中国で出かける場合でも、帰国した時にサーバーごと削除することで使った分のみの請求なので安心です。

コマンド操作が必要ですが、ほぼコピペで大丈夫です。

目次

どんなに人におすすめ?

中国へ行くすべての人
  • Google、Youtubeをよく利用する
  • Facebook、twitterなどのSNSも使いたい
  • 費用は安いほうがいい

LINEは使える場合がありますが、Facebook、Instagram、Twitterなどの中国国外のSNSは利用できません。

Shadow Socks の特徴としては中国国内のサーバーにアクセスするときはそのまま通信して、外国のWebサービスを利用するときにはShadowsSocksを経由してアクセスするようにできることがあげられます。これは自動で切り替わります

このことにより、中国国内のサイトを見る時に速度が遅くなることもなく、自分で切り替える必要がないためストレスをほとんど感じずに利用できます。

2019年現在、ShadowSocksも規制対象になっており安定した接続が難しくなってきました。比較的規制されにくい IKEV2OpenConnect 方式も試してみましょう。

関連記事

Vultr とは

サーバー場所

アメリカに本社があるホスティングサービス会社で、月2.5ドルから使えるVPSや専用サーバーなどがあります。

Vultr は日本語読みだとバルチャーが近いと思います。(vultureはハゲワシの一種)

Vultr の特徴
  • 東京を始め世界各地にサーバーがある
  • Snapshot (環境保存復元機能)が神機能
  • 時間単位課金で利用した分のみの請求

月2.5ドルのプランもありますが、IPv6アドレスのみの提供となるため現状では限られた用途にしか利用できません。1ドルプラスした月3.5ドルプランはメモリ512MB、SSD 20GBと控えめながら、ShadowSocksRサーバーの環境としては十分です。

ConoHa のように時間単位の課金のため、使った分以外の初期費用や余計な費用も発生しません。

SnapShotは現在無料で提供されている機能で、サーバーの状態をまるごと保存してあとから復元が可能です。応用すると、東京サーバーで作成したsnapshotをアメリカのサーバーで復元することができるので、サーバーの地域を変えたいときにはかなり便利です。

Vultr に登録しよう

サイトの言語は英語しか利用できませんが、シンプルですっきりしたサイトなので心配は不要です。流れに沿ってアカウント作成、サーバー構築をしていきましょう

必要なもの

  • クレジットカード

Vultr 公式サイトへアクセスしましょう。右上の「Create Account」から新規アカウントを作成できます。

アカウント作成

利用するメールアドレス(gmailなど)とパスワード (全部で10文字以上、小文字1つ、大文字1つ、数字1つ以上) を入力します。

新規作成

登録したメールアドレスにメールアドレス確認メールが届くので、「Verify Your E-mail」をクリックします。

メールアドレス認証

契約情報とクレジットカード番号を入力します。

英語での住所の書き方がわからない場合は JuDress を使ってみましょう。

ここで入金する金額を選択するか自分で入力します。入金(デポジット)した金額を使い切ってしまうとサーバーが一時停止してしまうので、10ドル以上など少し多めに入れておくとよいと思います。なお、停止した場合でも入金するとすぐサーバーを再開できます。

契約情報

ツイッターを使って3ドル分のクレジットをゲット

Twitter と連携することで合計3ドルのクレジットを入手できます。1ヶ月弱使える分なので手に入れておきましょう。

Vultr のPromotionsから入手

ツイッターと連携
  • ツイッタアカウントと連携で1ドル
  • ツイッターでフォロー1ドル
  • ツイッターでつぶやく1ドル

サーバーを構築

Server deploy より新規サーバーを設定します。

専用サーバーなどもありますが、VPSの Vultr Cloud Compute(VC2)のままにします。

1.サーバーのロケーションを選択

サーバーの設定場所をTokyo (東京) にします。

東京

2.サーバーのOSを選択

Ubuntu 16.04を選びます (18.04でも動作確認済み)。もしくはCentOSあたりにしましょう。

3.サーバーのスペックを選択

  • 月3.5ドル (時間課金)
  • CPU 1CPU 2.4Ghz
  • メモリ 512MB
  • SSD 20GB
  • 月転送量 500GB

4.サーバー作成 (デプロイ)

Enable IPv6」にチェックしたら、一番下の「Deploy Now」で構築を開始します。

デプロイ

ShadowSocksR をインストール

ShadowSocksR:以下SSRをインストールいきましょう。

まずは、サーバー一覧から今回作成したものをクリックしてIPアドレスやrootパスワードを確認します。

サーバー詳細

右上のコンソールアイコンをクリックすると、コマンドによる操作をブラウザからできるのですが、コピペができないのでSSHによる操作にします。

SSHでShadowSocksRを設定

Windows では、Windows10に標準搭載されているPowerShellを使いましょう。もしくは teraterm を使ったほうがスムーズに接続できます。設定方法は一番下のコメント欄に載せましたのでごらんください。

Macでは 「アプリケーション/ユーティリティ」にある ターミナル (terminal)を利用しましょう。

Powershellやターミナルを開いて以下のコマンドを打ち込みます。

ssh root@サーバーのIPアドレス

接続を継続するか聞かれるので「yes」を入力後、パスワードをコピーしたものを貼り付けて接続します。

SSHで接続

あとは、コピペして設定していきます。

#ソフトウェアのアップデート
apt update
apt upgrade -y

ShadowSocksRのインストール

開発者のサイト(秋水逸冰)を参考にインストールしていきます。

# wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

2番の「ShadowSocksR」を選択します。

2番を選択
パスワード

Shadowsockを利用するパスワードを入力 (デフォルトはteddysun.com)

ShadowSocksRで利用するポートを設定 (空白だと9000-19999の間で自動設定)

ポートを選択

暗号化方式を選択 12番のchacha20

暗号化方式

プロトコルを選択 origin

プロトコル

plainを選択

obfs

Enterを押すとインストールが開始されます。

インストール情報

インストール後、ShadowSocksRの情報が表示されるのでパスワードを忘れないようにメモしておきましょう。インストールログは「/root/shadowsocks-all.log」にあります。

アプリなどから利用できるQRコードが「/root/shadowsocks_r_qr.png」に保存されます。

ポート開放

インストール時に自動でポート開放を行うのでここは飛ばしてOKです。

ufwで利用するポートのみ開放します。

22番ポートはsshで利用するので今回はそのまま22番ポートを開放しておきます。本来はsshのポートを /etc/ssh/sshd_config で変更したほうがよいです。

$ sudo ufw allow 19090 #ShadowsSocksRで利用するポート
$ sudo ufw allow 22
$ sudo ufw enable
$ sudo ufw default DENY #その他ポートの通信を拒否

ShadowSocksR で利用するコマンド

#開始
/etc/init.d/shadowsocks-r start
#停止
/etc/init.d/shadowsocks-r stop
#再起動
/etc/init.d/shadowsocks-r restart
#ステータス確認
/etc/init.d/shadowsocks-r status
#SSRアンインストール
./shadowsocks-all.sh uninstall

ポート振り分け

このShadowScoksRの設定ファイルを編集することで複数のポートとパスワードを設定できます。以下の場合は、9000-9004ポートをそれぞれ使っています。ufwでのポート開放を忘れずにしましょう。

/etc/shadowsocks-r/config.json

{
"server":"0.0.0.0",
"server_ipv6": "[::]",
"local_address":"127.0.0.1",
"local_port":1080,
"port_password":
<strong>{</strong>
<strong>"9000":"password0",</strong>
<strong>"9001":"password1",</strong>
<strong>"9002":"password2",</strong>
<strong>"9003":"password3",</strong>
<strong>"9004":"password4"</strong>
<strong>},</strong>
"timeout":300,
"method":"your_encryption_method",
"protocol": "your_protocol",
"protocol_param": "",
"obfs": "your_obfs",
"obfs_param": "",
"redirect": "",
"dns_ipv6": false,
"fast_open": false,
"workers": 1
}

再起動

/etc/init.d/shadowsocks-r restart

ShadowSocksRに接続しよう

それぞれ、サーバーのIPアドレス、ポート、パスワードをソフトに入力して接続します。

Windows

Shadowsocksr

Windows

Mac

ShadowSocksX-NG-R

Server Prefernces から入力します。

SSR Mac

iPhone アプリ

Mume VPN

Mume VPN

li ruqi¥120posted withアプリーチ

Android アプリ

Shadowsocks

Shadowsocks

Max Lvposted withアプリーチ

 
Android

速度計測

あくまで日本国内で測定したものですが、SSRを使うといつも利用している速度より大幅にスピードが上がりました。3倍近い速度が出ています。ほかの速度計測サイト(Google、fast.com)でも同じ結果でした。

中国から接続する場合は、中国国内での速度の方ががネックになるかもしれません。

ふだんの速度 (日本国内)

SSR不使用

ShadowSocksRを経由 (日本国内)

SSR使用

TCP BBRを有効に

内容を理解していないのですが、大幅に速度が上がったのはTCP BBRを有効にしたのが要因のように思います。

テスト環境で試してから導入してみましょう。

# wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

参考:一键安装最新内核并开启 BBR 脚本

この記事のまとめ

プロキシ(ShadowSocks)を経由しての利用を制限しているサービスなどでは、正常に利用できない場合があります。例えばメルカリでは閲覧できてもコメントなどはできませんでした。

Vultrは安く使えるサーバーなので中国へ行く前にShadowSocksRサーバーを構築してみましょう。Snapshotを利用することで、一度作成したサーバー環境を使い回すことができて便利です。

NextcloudとOpenVPNを同じサーバーにインストールするとさらに使い勝手が増します。

ShadowSocksRサーバーは不要になったら削除しようと思っていましたが、思いの外速度が速いので日本国内でもつなぎっぱなしになっています。

vultr
SSRアイキャッチ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

気になるガジェットやサービスをレビュー!日常生活のアップデートを目標に役に立つ情報を掲載していきます。

仕事のご依頼などはお問い合わせからどうぞ。

コメント

コメント一覧 (15件)

  • windows powershell を使って ROOT IP までは入力できましたが、そのごのパスワード入力の行にパスワード入力できない、ctrl+c,ctrl+vを使って貼り付けはだめで、キーボード入力も何も入力できないですが、原因わかりますでしょうか、またほかの方法はあるでしょうか?よろしくお願いいたします

    • ログインできないのですね。

      フリーソフトの teraterm (teraterm-4.101.zip)を使ってみてください。

      ttermpro.exe でソフトを起動します。

      HostにサーバーのIPアドレスを入力してください。他はそのままでOKです。

      teratermの起動画面

      セキュリティ上の警告が出ますが、許可するので「Continue」をクリック

      known host

      あとはユーザー名「root」、パスワードをコピーしたものをペーストまたは入力してください。

      teraterm ログイン情報

      これでログインできると思います。

      teraterm ログイン

      個人的にはSSHに Termius というソフトを利用しています。

  • 大変参考になりました。有難うございました。暗号化方式は、aes-256とかでもいいのでしょうか???chacha20にするのは何か理由があってのことでしょうか??ご教授いただけますと幸いです。

  • 何度もすみません、ShadowsocksRのインストールまではうまくいったんですが、Port(開放?)設定でつまづいています・・・。
    ufw allow 22
    ufw allow “ポート№”
    ↑tera termでこれを入力しても、command not foundとなります・・・。

    作成したShadowSocksサーバーにアクセスしてみると、現状インターネットには繋がるものの、規制サイト(Google等)にはアクセス出来ない状況のようです。(Shadowsocksはサーバーで問題なくStartしているのですが・・・)
    ポート設定が原因?のように思うのですが・・・ご教授お願い出来ませんでしょうか・・・。osはCentOS 7 x64、BBR導入しております。

  • 記事ではUbuntuを利用していたのでufwにしましたが、CentOSではfirewalldを使うと良いと思います。

    # firewalld の起動
    systemctl enable firewalld.service

    #デーモンの起動
    systemctl start firewalld.service

    #サービスの状態確認
    systemctl status firewalld.service

    #ポート開放 (12345の部分を環境に合わせて変更)
    firewall-cmd –add-port=12345/tcp –zone=public –permanent

    #更新
    firewall-cmd –reload

    #開いているポートの確認
    firewall-cmd –list-ports

    サーバーが規制対象なんでしょうかね。現在使っているサーバーのリージョン以外(例えばTokyo以外)でも無理なのでしょうか?

  • ポート開放は必要なのかな?
    この記事見て別のShadowsocksサーバー設置しましたがポート開放してません。

    CentOSでのShadowsocksRサーバー構築(安全性の高いProxyを簡単に) – Qiita
    https://qiita.com/fallout/items/39360befe4dd35ee98c2

    なお3月からShadowsocks妨害されてて設置して数日で使えなくなります。
    ポートを変更したら使えるようになります。

    • MASAYAN さん

      たしかに、インストールスクリプトでポート開放(iptables)しているので不要でした。

      情報いただきありがとうございます。

  • MASAYANさん、ZIMAさん、遅くなりました。数日間苦戦した結果やっとサーバー構築できました。Firewallでポート開放を行いました。確かにShadowsocksインストール時にもポートが自動で開放される事も確認しました。(tcp・udp両方)、あとは、SSHで使用するポート(22番⇒任意)をポート開放(tcp)すると使えるようになりました。今のところ使えてます。ポート№に関しては、何千番台??(9000番台でしたでしょうか・・・)が特に目を付けられやすいとの情報をWEB上で見た気がします・・・。また何か新しい発見等御座いましたらコメントさせて頂きます。有り難う御座いました。

    • Nishine さん

      ご報告ありがとうございます。
      無事構築できたとのことでよかったです。

      なるべく新しい情報に対応できるよう発信していきますのでよろしくお願いします。

  • やはり19年3月からの規制で少し接続が不安定になっております・・・。
    Wifi接続はできるのですが、携帯SIM通信が出来ません。(時間帯によっては出来たりします)
    かべねこさんのブログでは何やらチューニング方法があるらしいのですが、
    具体的な方法までは公開されておりません・・。

    https://catswall.net/adding_ss_and_about_oosaka_server_2019-03-19/

    何か方法はご存知有りませんでしょうか・・・?(質問ばかりすみません)

    • Nishine さん

      ネットワークのチューニングとのことなのでたとえばTCP BBRのような設定をしたのかもしれませんね。

      ShadowSockrRのチューニングであればインストール時の設定や、
      /etc/shadowsocks-r/config.json でパラメータを変更できます。
      暗号化方式やポートを変えてみてください。

      私は現在日本にいるので試せないのが心苦しいのですが…

      ikev2は規制されていないということなので、SSR以外の接続方式をVPS内に構築してしまうのも一つの解決策になる可能性があります。

      参考までに例えばOpenConnectのようなSSL-VPN
      https://tabikumo.com/openconnect-on-ubuntu/

  • ほぼ同じ事をやっている人がいてびっくりしました。
    私はUbuntu 18.04をインストールしたのですが、TCP BBRは標準で有効となっていました。
    ShadowSocksも規制がかかったとの一部情報があったので、現在はV2 Rayを試験的に運用しています。
    また「GL-MT300N-V2」と言う2000円位のトラベルルーターがあるのですが、こいつは簡単な操作でShadowSocksをインストール出来るようなので、現在購入中です。
    OpenWRTベースなのでひょっとしたらV2Rayにも対応しているかもしれません。

  • そのようなルーターがあるのですね。
    有用な情報をありがとうございます!

  • bbrよりも速くbbrplusを試してください
    https://github.com/ylx2016/Linux-NetSpeed/
    最初にカーネルをインストールします。bbrplusをオンにした後、システムを再起動する必要があります
    bbrplus + fqを手動で開く必要があります

    v2rayを試すこともできます
    v2rayはアクティブな検出を防ぐことができます
    Config.jsonはここで生成できます
    https://www.veekxt.com/utils/v2ray_gen

    翻訳を使用します、ごめんなさい

目次