さくらのVPSにAndroidから使うためのVPNサーバを建てたよ

Android端末から使えるVPNサーバをさくらVPS上に建ててみました。
SoftbankのTD-LTE回線なんかだとストリーミング規制でYouTubeなんかもまともに見れないとかでVPN必須らしいですね。
Softbank回線持っていませんのでよくわかりませんが。

環境は、さくらVPS 2GにCentOS 6.2です。
まずはpppとpptpdをインストールします。

$ sudo yum install ppp
$ 
$ cd /usr/local/src
$ wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.x86_64.rpm
$ sudo rpm -Uvh pptpd-1.3.4-2.el6.x86_64.rpm

pptpd.confを編集します。
$ vi /etc/pptpd.conf

localip にはVPSサーバで使用する適当なローカルIPアドレスを振ります。
remoteip はVPN接続してきたクライアントに払い出すIPを範囲指定します。
localip 192.168.2.1
remoteip 192.168.2.32-128

options.pptpdを編集します。
$ vi /etc/ppp/options.pptpd

ms-dns にはVPN接続元クライアントで使用するDNSサーバを指定します。ここではGoogle DNSを指定しました。
MTUは1400でAndroid端末からの使用は問題ありませんでした。
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
mtu 1400

chap-secretsに接続IDとパスワードを設定します。
$ vi /etc/ppp/chap-secrets

pptpdの部分はoptions.pptpd中のnameと合わせます(デフォルト値はpptpdです)
払い出すIPアドレスを固定にする場合は末尾の*部分にIPアドレスを指定します。
[ユーザーID] pptpd [パスワード] *

sysctl.confを編集します。
$ vi /etc/sysctl.conf

net.ipv4.ip_forwardを0→1に変更して保存します。
net.ipv4.ip_forward = 1

設定を保存した後、pptpdを起動します。
pptpdをサーバ起動時に自動的に動作するよう登録します。
$ sysctl -p

$ service pptpd start
$ chkconfig pptpd on


iptablesの設定をします。
greの許可とポート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

Android側では、設定→ワイヤレスとネットワーク→VPNから接続設定を作ります。
サーバアドレスとID、パスワードを設定し、タイプにPPTPを選択するだけです。

speedtest
au LTEからVPN経由で接続してみました。
左はVPNを経由していない場合ですが、だいたい下り25~30Mbpsぐらい出ます。
VPN経由だと下り10Mbps前後になりますね。YouTube見るぐらいなら問題ないでしょうが。

追記:
SPモード接続の場合、PPTP経由での接続が行えませんでした。
L2TP経由なら行えるとの事ですが、こちらはAndroidのバグにより特定バージョンからの接続ができないようです。

OpenVPN版を書きました→ さくらのVPSにOpenVPNを建ててAndroidから繋げるようにした

参考:
さくらのVPS(CentOS 6.2)にPPTPのVPN作ってみた – くにくにネット
Debian GNU/Linux での pptpd 設定 (サーバ側で NAPT する場合) – Open the Next




  • このエントリーをはてなブックマークに追加