中国のThe Great Firewall(GFW)によるネット規制は厳しくなるばかり。もともとTwitter、Facebook、Youtube、Instagram、Gmailなどには接続できなかったが、最近は完全に塞がれてしまったVPNプロトコルもあり、またプロトコルによってはすぐに追跡されて接続先のアドレスやIPが塞がれてしまうようになっている。
今のところはPPTP接続が最も有効なので、当サイトで紹介している有料VPNもいい。
しかし有料VPNだと、VPNの業者がデータを監視したり盗んだりしていないとも限らないので、セキュリティ的に不安という方もいらっしゃるだろう。というわけで自前でVPSサーバを借りてVPNサーバ(PPTP接続)を立ち上げてみたらいいんじゃないか。。ということでやってみた。
VPSにはGUIがないので、ターミナルコンソールのみでの作業となるが、私はUNIX初心者中の初心者でほんのちょっとしかコマンド知らないくらいだけどできたので、ネットで調べながらやればなんとかなると思う。私は半日以内でできた。
実際に以下の設定で成功しているので、お試しあれ。私がつまづいた点などもふまえて記述している。
最初の一歩:さくらVPSサーバを契約する
VPSとしては破格の安さ、さくらインターネット(SAKURA Internet)のVPSサーバ。私も以前このブログ【小龍茶館】をさくらインターネットで運営していたことがあったためアカウントも持っていたので、こちらにお願いすることにした。
他にもVPSサーバはあるが、さくらのVPSはメモリ1GBでも月額1000円を切るのでお得ではないかと。私は【1GBプラン】で契約したが、1人で使うなら500MBプランでも十分かもしれない。ストレージがSSDなのも高速でいい。30GBついてくるが特にストレージ容量は必要ないかと。2週間のお試し期間もあるので、設定に失敗したりうまくいかなかった場合はその間に解約すればよし、という気軽さもある。
▼さくらのVPS、お申し込みはこちら。
さくらのVPSサーバには北海道石狩リージョンと東京リージョンがあり、私は東京リージョンを選択したが、石狩リージョンの方が速いという説もあるのでなんともいえない。VPN経由のradiko.jpで東京のラジオを聴きたいなら東京リージョンにしておいた方がいいかもしれない、程度かも。
さくらVPSでのPPTP VPNサーバ設定方法
さくらのVPSとの契約が完了して支払いも完了すると、すぐにVPSのログインIDとパスワードがメールで送られてくるので大事に保管しておくこと。
OSは最初からインストールされているCent OS 6でOKなので、特に何もいじる必要はない。
さくらのVPSコントロールパネルで左上のサーバステータスが稼働中…になっていることを確認してから、「コンソール」をクリックし、プルダウンメニューから「シリアルコンソール」を選択。Teratermなどターミナルアプリでアクセスしてもいいが、私はこのシリアルコンソールで全部できた。※VNCコンソールだとviというテキストエディタの操作がイマイチなので(ESCキーの入力をなぜか受け付けない)お勧めしない。
シリアルコンソールの画面がブラウザ内の別タブで開いたら、画面を一回クリックし、リターン(或いはエンター)キーを押すとログインのためのIDとパスワードを聞かれるので、メールで送られてきたIDとパスワードでログインする。
なお、シリアルコンソールのテキストを送信。。をクリックすると、ここにコピー&ペーストなどができるようになる。このサイトからコードをコピペして貼り付けてもOK。
それでは作業開始。ログインできたら、以下の順番に実行していく。途中でエラーが出たら、一つ手前の手順がちゃんとできていたか確認しよう。
1. 下準備
yum clean all
を実行し、
yum update
で、ツールのアップデートをする(私はこれがわからず最初詰まった。。)。
2. pppとpptpdのインストール
一行毎に入力してリターンキーを押して実行していくこと。
sudo yum install ppp
cd /usr/local/src
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
sudo rpm -Uvh pptpd-1.4.0-1.el6.x86_64.rpm
上の”pptpd-1.4.0-1.el6.x86_64.rpm”の部分は最新版を使う。最新版はここで確認。
http://poptop.sourceforge.net/yum/stable/packages/
上記のリストの中で、”el6.x86_64.rpm”で終わるもので最新のものを(さくらVPSの標準OS仕様がCent OS 6でx86_64のため)。とりあえず以下には記事更新時最新の情報を掲載しておくが、もしこのバージョンが消された場合は404 file not foundになるので要注意(私もはまった)。
3. pptpd.confの編集
ここではVPNで接続してきた相手に割り振る内部IPの設定をする。
以下のコードを実行。
vi
/etc/pptpd.conf
viはUNIXのテキストエディタ。使い方はこちらが参考になる。
一番最後でいいので、この2行を追加する。カーソルを一番下に持っていって、iで編集モードに入り、テキスト送信欄に以下の2行をコピペし、escボタンで編集モードを終了し、:wqで上書きして終了すればOK。以下のファイル編集も同様に。
localip 192.168.2.1
remoteip 192.168.2.32-128
4. options.pptpdの編集
以下のコードを実行。
vi
/etc/ppp/options.pptpd
一番最後でいいので、以下の内容を追加(私は#Loggingの上にこれを追加した)。
require-mschap-v2
require-mppe-128
ms-dns xxx.xxx.xxx.xxx
ms-dns xxx.xxx.xxx.xxx
mtu 1280
mru 1280
ms-dnsのxxx.xxx.xxx.xxxについては、さくらVPSのコントロールパネルのサーバ情報に、IPv4という欄があり、そこに書いてある【プライマリDNS】と【セカンダリDNS】の右側のIPアドレスをそれぞれ記入すればOK。
MTU 1280とMRU 1280は、iPhoneで接続する時に安定するので私はこれにした。
5. chap-secretsを編集し、接続IDとパスワードを設定
VPNを接続する際のユーザ名とパスワードをここで設定する。以下のコードを実行。
vi
/etc/ppp/chap-secrets
以下の情報を追加する。真ん中のpptpdは4.で編集したファイルの”options.pptpd”の中のnameの値と合わせる必要があるが、デフォルト値(初期設定値)はpptpdなので、そのままでいい。内部IPアドレスを固定して割り振りたい場合は、*のところにIPアドレスを入力する。192.168.2.32から128までの間で指定できる。
ユーザ1人だけなら、この1行だけでOK。
[ユーザーID] pptpd [パスワード] *
6. sysctl.confを編集
ここではIPフォワーディングをONにする。以下のコードを実行。
vi
/etc/sysctl.conf
ファイルの中の、net.ipv4.ip_forwardを0から1に変更して、保存。
net.ipv4.ip_forward = 1
7. pptpd起動と、今後の自動起動の設定
ここではVPN接続の受付のためのpptpdプロセスを起動し、またサーバ起動時に自動的に動作するように設定する。以下のコードを一行ずつ実行。
sysctl -p
service pptpd start
chkconfig pptpd on
chkconfig pptpd start
8. IPテーブル(セキュリティ)の設定
ここではGREの許可と、VPN接続のためのポート443と1723の許可、そしてIPマスカレード設定の追加をする。セキュリティの設定をしておかないと、他人にアクセスされてしまうかもしれないからだ。以下のコードを一行ずつ実行。
iptables -A INPUT -p 47 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE
service iptables save
service iptables restart
ここまで来たら既に接続可能になっているのだが、念のためサーバを再起動してpptpdが起動時に実行されるか確認しておこう。このコマンドで再起動可能だ。
reboot
あとはさくらVPS側の設定はなし。端末の設定のみだ。
9. 端末のVPN設定
【Macの場合】
システム環境設定>ネットワークで、左の枠の左下の+ボタンをクリック。
▼【インターフェイス】の選択でVPNを選択、【VPNタイプ】をPPTP、【サービス名】は適当にわかりやすい名前に。。例えばさくらVPS(PPTP)などに設定し、【作成】ボタンをクリック。
▼【構成】はデフォルトのまま、【アドレス】はさくらVPSのコントロールパネルのIPv4のところにあるアドレスのIPアドレスを入力。【アカウント名】は5.で設定したユーザIDを入力する。
▼【パスワード】は認証設定…ボタンをクリックして、「パスワード」のところに5.で設定したパスワードを入力して【OK】ボタンをクリック。
【詳細…】ボタンをクリックし、【すべてのトラフィックをVPN接続経由で送信】にチェックを入れて【OK】ボタンをクリック。
あとは【接続】ボタンを押して接続が成功すればOKだ!
【iPhoneの場合】
設定>VPNで、一番下の【VPN構成を追加】をタップ。
【タイプ】はPPTP、【説明】は適当にわかりやすい名前、【サーバ】はさくらVPSのコントロールパネルのIPv4欄にあるアドレス(IPアドレス)、【アカウント】【パスワード】は5.で設定したユーザIDとパスワードを入力し、右上の【完了】ボタンをタップ。
あとは設定>VPNで接続が成功すればOKだ!
【Windows/Androidの場合】
すみません、これらは私は普段使っていないので、VPN接続の設定方法でググってください。
注意事項
一応私がうまくいった環境は以下の通り。
【VPNサーバ】
- さくらVPS:1GBプラン
▼お申し込みならこちら!
【VPNクライアント】
- MacBook Pro Retina, 15-inch, Mid 2014 OS X 10.11.5
- iPhone 6s Plus 128GB iOS 9.0.2(脱獄済)
【中国側VPNクライアント接続環境】
- 固定ネットワーク:中国電信(China Telecom)家庭用光ファイバー20G契約
- 携帯ネットワーク:中国聯通(China Unicom)4G/3G
上記以外の条件で必ず接続が成功するとは限らないので、あくまで自己責任で行ってほしい。質問を受け付けられても私もUNIXに詳しくないのでちゃんと答えられる自信はないので、できるだけご自身でネットでお調べになることをお勧めする。また、サーバを外に対して開くということはリスク・危険を伴う行為だ。もしサーバや接続クライアントに何らかの問題が起こっても当方は責任は負えない。完全自己責任にて実行していただければと思う。
さくらVPSのお試し期間中の帯域制限について
さくらVPSサーバは2週間の試用期間中は2Mbpsの帯域制限がかかっているため、スピードは速くない。ということで設定に成功したら、本申込みをして試用期間を終わらせて帯域制限を解除しよう。お試し期間中よりかなり速くなると思う。
面倒くさい!という人はやはり有料VPNで。
上記のようなターミナルのコンソールでの入力はやはりややこしくてわからない!という方は当ブログでもオススメしている有料VPNにした方がいいだろう。サーバを立てる必要もないし、有料であればメンテナンスも業者側がやってくれる。
ネットスピード実録
一応論より証拠。。ということで上記の設定でネットスピードはこんな感じだ。日本のいい環境とは比ぶべくもないが、Youtubeは問題なく見ることができるレベル。
▼【Mac:中国電信(China Telecom)家庭用光ファイバー20G契約】
下りで5Mbps出ていれば中国の環境なら御の字では。
▼【iPhone:中国電信(China Telecom)家庭用光ファイバー20G契約】
iPhoneからでも時間帯によるがこのくらい出る。
▼【iPhone:中国聯通(China Unicom)SIM 4G(アンテナ5本)】
ダウンロードが12.46Mbpsで、うにこむ4Gが最速という結果に!アップロードが5〜6Mbpsいくことも。
▼【参考:VPNなし、中国電信(China Telecom)家庭用光ファイバー20G契約】
※やはりVPNをかますとかなりスピードダウンするという結果に。とはいえ中国でVPNかまして1M以上出てれば十分かと。
お世話になったサイト達(Special Thanks!)
今回私がさくらのVPSでPPTP VPNサーバの設置を成功させるにあたって、以下の3つのサイトの情報にお世話になった。どれか1つでも欠けたらできなかったが、どれか1つだけでも物足りなかった。というわけでここでまとめさせてもらったというわけだ。他にもいくつかあったが、情報が古いサイトしかなく最新のものがないのも気になった。
いずれにせよ、この3サイトの作者様には大感謝!
画蛇添足 One more thing…
VPSを使うのであればProxyによるSSHポートフォワーディングで接続するのが本来一番簡単でしかも速度が速いのだろうが、一回うまくいかなかったのでこちらでやってみた。
もし成功したらそちらの方法もご紹介する予定。
記事は以上。