LoginSignup
35
34

More than 5 years have passed since last update.

高速VPNを最速3分でスタート ConoHaで月額630円

Posted at

世の中リモートワークが増えてきましたが、固定IPからの接続が必要な作業もあります。
そんなときに便利なのがVPNです。

インターリンクさんのマイIPは安くて簡単です。ただ、自分が契約したときは通信速度が遅くて解約しちゃました…(中の人にはすみません!)

同じような低料金のソリューションとして、低価格VPSでSoftEtherを稼働させる方法がよく紹介されています。

マイIPの最速3分でスタートに対抗して、最速3分でVPSにSoftEtherをセットアップするレシピを考えてみました。

こちらのステキなDockerイメージにより実現しました。

siomiz/softethervpn
https://hub.docker.com/r/siomiz/softethervpn

材料

  • ConoHaのアカウント
  • 事前共有鍵 例: rRhM*HkHcX9U
  • VPNに接続するユーザー名:パスワードの組み合わせ(;区切りで複数可) 例: user01:pass01;user02:pass02;user03:pass03

セットアップ

スタートアップスクリプトの準備

任意のエディタなどで次のスタートアップスクリプトを用意します。
PKS='事前共有鍵'と、USERS='ユーザー名:パスワードの組み合わせ'の部分を先ほど用意した材料で置き換えてください。

#!/bin/bash

cat << EOS > /etc/systemd/system/vpnserver.service
[Unit]
Description=SoftEther VPN Server
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker run --privileged --name vpnserver \
    -p 500:500/udp -p 4500:4500/udp -p 1701:1701/tcp \
    -e PSK='事前共有鍵' \
    -e USERS='ユーザー名:パスワードの組み合わせ' \
    siomiz/softethervpn:4.27-ubuntu
ExecStop=/usr/bin/docker stop -t 2 vpnserver
ExecStopPost=/usr/bin/docker rm -f vpnserver

[Install]
WantedBy=multi-user.target
EOS
systemctl daemon-reload
systemctl enable vpnserver
systemctl start vpnserver

内容としては、SoftEtherのDockerコンテナを起動するsystemd向けのサービススクリプトを登録して、有効化・起動しているだけです。

ここでは公開ポートをL2TP over IPSecのみとしているので、OpenVPNやSoftEtherのポートも公開したい場合は上記のDockerイメージの説明をご参考ください。

なお、説明では--cap-add NET_ADMINで必要な特権を付与していますが、これだけではdmesgのエラーが出てしまい起動せず、--privilegedに置き換えています。

スタートアップスクリプト付きでVPSを起動

ConoHaでサーバーの追加フォームを開き、Dockerイメージを選択します。

ConoHaコントロールパネル.png

オプションを見るを開き、スタートアップスクリプトに上記のスクリプトを貼り付けます。

ConoHaコントロールパネル.png

2分待つ

セットアップ作業はこれだけです!
あとはじっとサーバーの起動と、スクリプトの完了を待ちます。

初回はDockerイメージのpullがあるので、それなりに時間がかかります。
自分の場合は追加ボタンを押してから実測1分40秒ほどでコンテナが起動しましたが、もちろん前後します。

起動の確認

VPSインスタンスの詳細画面でIPアドレスを確認します。

vpn01___ConoHaコントロールパネル.png

次のコマンドを実行すると、VPNサーバーが起動されたか確認できます。
(ConoHaのrootログインって大胆だなといつも思いつつ…)

ssh root@IPアドレス docker ps

以下のようにsiomiz/softethervpnイメージのDockerコンテナ表示されたら起動済みです。

CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                                                                               NAMES
eb437b346cac        siomiz/softethervpn:ubuntu   "/entrypoint.sh /usr…"   5 seconds ago       Up 4 seconds        0.0.0.0:500->500/udp, 443/tcp, 5555/tcp, 0.0.0.0:4500->4500/udp, 1194/udp, 0.0.0.0:1701->1701/tcp   vpnserver

スピードテストの結果

接続方法の前に気になるスピードテストの結果を紹介します。VPNを経由すると下りが半分くらいになりました。
当方、札幌からの接続で物理的な距離もあるのでこれで満足です。

VPNなし

Speedtest_by_Ookla_-_The_Global_Broadband_Speed_Test.png

VPNあり

Speedtest_by_Ookla_-_The_Global_Broadband_Speed_Test.png

クライアントからの接続

あとは起動したVPNサーバーをおいしくいただきましょう。macOSを例に説明します。
Windowsでも同じプロトコルがサポートされているので多分大丈夫です。

ネットワークインターフェースの追加

環境設定のネットワークでL2TP over IPSecのVPNインターフェースを追加します。

ネットワーク_と_「最速3分でスタート_ConoHaで高速VPNサーバー構築_月額630円」を編集_-_Qiita_と_コンテナの自動起動_—_Docker-docs-ja_1_12_RC2_ドキュメント.png

接続先と認証情報

まずはIPアドレスユーザ名を入力します。

ネットワーク_と_「最速3分でスタート_ConoHaで高速VPNサーバー構築_月額630円」を編集_-_Qiita_と_コンテナの自動起動_—_Docker-docs-ja_1_12_RC2_ドキュメント.png

続いて認証設定ボタンを押してパスワード事前共有鍵を入力します。

OKボタンを押して認証設定を閉じ、右下の適用ボタンを押します。

それから接続ボタンを押すと、VPN接続が開始されます。

ネットワーク_と_「最速3分でスタート_ConoHaで高速VPNサーバー構築_月額630円」を編集_-_Qiita.png

ほどなく認証を経て、VPNに接続できます。やったー!

ネットワーク_と_「最速3分でスタート_ConoHaで高速VPNサーバー構築_月額630円」を編集_-_Qiita.png

VPNサーバーのIPアドレスで外に通信できてないなーという場合は、詳細ボタンを押して、すべてのトラフィックをVPN接続経由で送信にチェックを付いているか確認しましょう。

ネットワーク_と___httpd_v3_lightfile-command_—_root_133-130-121-156____—_ssh_vpn01_—_114×92_と_vpn01___ConoHaコントロールパネル.png

ファイヤーウォール

ConoHaのDockerアプリケーションイメージはUbuntuベースなのでufwコマンドでよしなに!

# for cond in 22/tcp 500/udp 1701/tcp 4500/udp; do ufw allow $cond; done
# ufw enable

ConoHa以外のホスティングの場合

Dockerとsystemdが使えるなら、スタートアップスクリプトをroot権限で実行すれば同じことができると思います。

35
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
34