以前、VPS の SSH 暗号化トンネルを使用して透明なプロキシを実現する方法について説明しましたが、脱獄されていない iPhone デバイスでは SSH を使用することができず、VPN を使用する必要があります。自分の iPhone で GFW を回避するために、最近自分の VPS 上で PPTP を使用して VPN サービスを構築しました。構築プロセスは比較的簡単です。ここでは CentOS 6.4 を使用していますが、他の Linux ディストリビューションでも基本的な設定は同じです。
1. まず、VPS の PPP と TUN デバイスが正しくインストールされているか確認します。
ls /dev/ppp
ls /dev/net/tun
#または
cat /dev/ppp
cat /dev/net/tun
「No such file or directory」と表示される場合、または「No such device or address」と表示される場合は、インストールされていないことを意味します。通常、VPS プロバイダーに依頼して開いてもらう必要があります。
2.pptp をインストールします。pptp は ppp に依存しているため、まず ppp をインストールする必要があります。
yum install -y ppp
yum install -y pptp
3.VPN 専用のパイプを作成します。
mknod /dev/ppp c 108 0
VPN に接続する際に 619 エラーが発生する場合は、上記のコマンドを実行することもできます。
4./etc/sysctl.conf を編集し、IPv4 フォワーディングを有効にします。ファイルを開いた後、以下の内容を探し、変更します。
net.ipv4.ip_forward=1
net.ipv4.tcp_syncookies=0
/etc/sysctl.conf の変更を有効にする(オプション)
sysctl -p
または、以下のコマンドを実行します。
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
5./etc/pptpd.conf ファイルを編集し、VPN の IP アドレスを設定します。以下を追記します。
localip XXX.XXX.XXX.XXX
remoteip XXX.XXX.XXX.XXX-XXX
localip はローカル IP、つまり自分の IP アドレスです。remoteip はリモートホストに割り当てられる IP アドレスで、通常は連続した IP アドレス範囲を設定します。
6./etc/ppp/options.pptpd ファイルを編集し、VPS サーバーの DNS を変更します。
ms-dns 8.8.8.8
ms-dns 8.8.4.4
7./etc/ppp/chap-secrets ファイルを編集し、VPN 接続のユーザーを設定します。以下の形式で記述します。
username pptpd password *
username: ユーザー名 password: パスワード
または、以下のコマンドを実行します。
echo "username pptpd password *" >> /etc/ppp/chap-secrets
8.iptables の設定を変更し、ファイアウォールを開きます。
iptables -A FORWARD -s XXX.XXX.XXX.XXX/XX -p tcp -m tcp --tcp-flags
FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356
#保存
service iptables save
ここで XXX.XXX.XXX.XXX/XX は、5 番目の手順で設定したリモート IP です。
9. 起動時にサービスを設定します(オプション)
chkconfig iptables on
chkconfig pptpd on
10.pptp と iptables サービスを起動または再起動します。
# service iptables start
service pptpd start#
service iptables restart
service pptpd restart
最後に、CentOS/RHEL 用のワンクリックインストールスクリプトを提供します http://www.diahosting.com/dload/pptpd.sh
使用方法:
wget http://www.diahosting.com/dload/pptpd.sh
sh pptpd.sh