Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
141
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@ask

MacでSoftEther VPN Clientを使う

SoftEther VPN ClientのMac版を使って、VPN経由でインターネットに接続するお話。

まだ、Beta版のためか、私の環境ではVPNの接続中にvpnclientのCPU使用率が常に100%付近をうろうろします。
SoftEtherVPNのGitHubリポジトリにあるPull requests #165を適用することで解決しました。

  • SoftEther VPN Server側は設定済みな前提
    (私はVPS上でSecureNATを有効にして利用しています)

  • Mavericks(10.9.2),Yosemite(10.10.1), El Capitanで動作確認

事前準備

  • XcodeのCommand Line Toolsをインストール
    SoftEther VPN Clientをmakeするのに必要です。

  • TunTapをインストール
    仮想LANカードの作成に必要になります。
    Homebrew Caskにパッケージがあったので、それでインストールしました。
    署名付きっぽいです。

$ brew cask install tuntap

SoftEther VPN Clientのインストール

SoftEther VPN プロジェクトから、SoftEther VPN Clientをダウンロードしてきます。

Mavericksで確認したバージョン

SoftEther VPN Client (Ver 4.06, Build 9432, beta)
softether-vpnclient-v4.06-9432-beta-2014.03.20-macos-x64-64bit.tar.gz (4.83 MB)

Yosemiteで確認したバージョン

SoftEther VPN Client (Ver 4.12, Build 9514, beta)
softether-vpnclient-v4.12-9514-beta-2014.11.17-macos-x64-64bit.tar.gz (5.15 MB)

作業としては、解凍してmakeするだけです。

$ tar zxvf softether-vpnclient-v4.06-9432-beta-2014.03.20-macos-x64-64bit.tar
$ cd ./vpnclient/
$ make

# 適当にディレクトリを移動します
$ cd ../
$ mv ./vpnclient/ /usr/local/
$ cd /usr/local/vpnclient/

SoftEther VPN Clientの起動

sudoで実行させないと、仮想LANカードが扱えません。

$ sudo ./vpnclient start
Password:
SoftEther VPN Client Service Started.

SoftEther VPN Clientの設定

CUIで行います。

  • VPN Clientへの接続
$ ./vpncmd
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.06 Build 9432   (Japanese)
Compiled 2014/03/20 16:24:14 by yagi at pc25
Copyright (c) SoftEther VPN Project. All Rights Reserved.

vpncmd プログラムを使って以下のことができます。

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 - 3 を選択: 2

接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。
接続先のホスト名または IP アドレス:

VPN Client "localhost" に接続しました。
  • 仮想LANカードの作成
VPN Client>NicCreate
NicCreate コマンド - 新規仮想 LAN カードの作成
仮想 LAN カードの名前: VPN

コマンドは正常に終了しました。
  • 接続設定の作成
VPN Client>AccountCreate
AccountCreate コマンド - 新しい接続設定の作成
接続設定の名前: Example

接続先 VPN Server のホスト名とポート番号: example.com:443

接続先仮想 HUB 名: default

接続するユーザー名: exampleuser

使用する仮想 LAN カード名: VPN

コマンドは正常に終了しました。

後は、適宜設定を行ってください。
私の場合は、追加でパスワード認証の設定を行います。

VPN Client>AccountPasswordSet
AccountPasswordSet コマンド - 接続設定のユーザー認証の種類をパスワード認証に設定
接続設定の名前: Example

パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。

パスワード: ********
確認入力  : ********


standard または radius の指定: standard

コマンドは正常に終了しました。

CUIで設定するのが面倒であれば、Windows版のClientに含まれるSoftEther VPN クライアント接続マネージャをWineで動かせばGUIで設定できます。
(引数に/remoteが必要?)

SoftEther VPN Serverへの接続

  • SoftEther VPN Serverへの接続
VPN Client>AccountConnect
AccountConnect コマンド - 接続設定を使用して VPN Server へ接続を開始
接続設定の名前: Example

コマンドは正常に終了しました。
  • DHCPやルーティングの設定

ここからはvpncmdから抜けて、シェルでの作業。
各インタフェースやIPアドレス等は各自の環境に合わせてください。

# DHCPによるIPアドレスの取得
$ sudo ipconfig set tap0 DHCP

# IPアドレスの確認
$ ifconfig tap0
tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 00:ac:xx:xx:xx:xx
    inet 192.168.30.10 netmask 0xffffff00 broadcast 192.168.30.255
    open (pid 290)

# ルーティングテーブルの確認
$ netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.11.1       UGSc           15        0     en0
default            192.168.30.1       UGScI           0        0    tap0
...

# VPN Serverへの接続が切れないように静的ルーティングを追加
# (example.comのIPアドレスが203.0.113.100の場合)
$ sudo /sbin/route add -net 203.0.113.100 192.168.11.1 255.255.255.255

$ netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.11.1       UGSc           14        0     en0
default            192.168.30.1       UGScI           0        0    tap0
...
203.0.113.100/32   192.168.11.1       UGSc            1        0     en0
...

# 既存のデフォルトゲートウェイの削除
$ sudo route delete default 192.168.11.1
delete net default: gateway 192.168.11.1

# DHCPで設定されるデフォルトゲートウェイはうまく機能しないので、
# 手動でデフォルトゲートウェイを追加
$ sudo route add default 192.168.30.1
add net default: gateway 192.168.30.1

$ netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.30.1       UGSc            0        0    tap0
default            192.168.30.1       UGScI           1        0    tap0
...
203.0.113.100/32   192.168.11.1       UGSc            1        0     en0
...

後は、IPアドレスを確認するWebサイトで、IPアドレスが変わっているかどうかを確認してください。

SoftEther VPN Serverとの切断

ルーティングを戻して、vpncmdで切断すればOKです。

# 追加したデフォルトゲートウェイを削除
$ sudo route delete default 192.168.30.1
delete net default: gateway 192.168.30.1

# 元々のデフォルトゲートウェイを追加
sudo route add default 192.168.11.1
add net default: gateway 192.168.11.1

# VPN Serverへの静的ルーティングを削除
$ sudo /sbin/route delete -net 203.0.113.100
delete net 203.0.113.100

$ netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.11.1       UGSc            2        0     en0
default            192.168.30.1       UGScI           4        0    tap0
...


# VPN Serverとの切断
$ ./vpncmd
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.06 Build 9432   (Japanese)
Compiled 2014/03/20 16:24:14 by yagi at pc25
Copyright (c) SoftEther VPN Project. All Rights Reserved.

vpncmd プログラムを使って以下のことができます。

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 - 3 を選択: 2

接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。
接続先のホスト名または IP アドレス:

VPN Client "localhost" に接続しました。

VPN Client>AccountDisconnect
AccountDisconnect コマンド - 接続中の接続設定の切断
接続設定の名前: Example

コマンドは正常に終了しました。

VPN Client>exit

# VPN Clientの停止
$ sudo ./vpnclient stop
Stopping SoftEther VPN Client Service...
SoftEther VPN Client Service Stopped.
141
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
141
Help us understand the problem. What is going on with this article?