前回に引き続き、Raspberry Pi のVPN サーバーの設定を行ないます。

◆VPN 経由で Raspberry Pi 上の web サーバーにローカルアクセス出来ない問題

前回までで VPN 接続は出来るようになりましたが、前回環境ではなぜか VPN 経由では Raspberry Pi 上の web サーバーにローカルアクセスIPアドレスでアクセス出来ませんでした。

いろいろ Google 先生に問い合わせてみると、
「Linux および Solaris オペレーティングシステムでは、仮想 HUB (VPN) の内側からローカルブリッジ先のLANカードから LAN への通信は行うことが出来ますが、ローカルブリッジしている LAN カード自体に対して通信することはできません。これは Linux カーネルの制限事項です。」
という情報を Google 先生から頂きました。

つまり、Linux ではこれは仕様という事。。。
回避策は、、、物理的にLANカードもう一個挿す事。。。

何とか、ソフトだけで回避はできないのか!?
→ できるみたいです!!


何かブリッジの設定をすればいいっぽいみたいですが、すいません。正直、よく分かってないです。

http://www.petapico.biz/ラジ館petapicoshop/softether-vpnで外から-irmagician-を制御してエアコンをつける/

のページの情報が凄く役立ちました。先人の知恵に感謝です。


以下の手順で解決しました。

◆ローカルブリッジの設定

必要パッケージをインストールします。
$ sudo apt-get install bridge-utils

/etc/network/interfaces
を修正します。
auto eth0
iface eth0 inet manual


auto br0
iface br0 inet static
  address 192.168.0.100
  netmask 255.255.255.0
  network 192.168.0.0
  broadcast 192.168.0.255
  gateway 192.168.0.1
  bridge_ports eth0
  bridge_maxwait 10


前回作った /etc/init.d/vpnserver に下記を追加します。
        : (略)
vpn_start() {
    ${DAEMON} start
    sleep 2
    tap=`ip tuntap | cut -f1 -d:`
    brctl addif br0 ${tap}

}
        : (略)

上記を追加した part2 版が↓です。
$ curl -O http://sstea.blog.jp/raspi/script/vpnserver2 > vpnserver
$ chmod 755 vpnserver
$ sudo mv vpnserver /etc/init.d/

◆tapデバイスの設定

Windows 側で「SoftEther VPN サーバー管理マネージャ」を立ち上げます。
前回の (F-2)  ~ (F-4) の部分の設定を変えます。

メインウィンドウから「ローカルブリッジ設定」ボタンを押下し、「ローカルブリッジ設定」ウィンドウを出します。
「ローカルブリッジの削除」ボタンで前回追加した設定は一旦、削除します。

(F-2)' [新しいローカルブリッジの定義]->[仮想 HUB] を選択
(F-3)' [作成する種類] で「新しい tap デバイスとのブリッジ接続」を選択
(F-4)' [新しい tap デバイス名] を入力
(F-5)' 「ローカルブリッジを追加」ボタンを押下


これで、VPN 経由でも Raspberry Pi 上の web サーバーにアクセス出来るようになりました。

これからは Raspberry Pi を VPN サーバーとして常時稼動させようと思いますので、どれほどの省電力効果があるか分かりませんが、オーバークロック設定は None に戻しておこうと思います。

◆おまけ1
Xperia Z3 には以下のAndroidアプリを入れています。

・WOL用アプリ
Fing - Network Tools

LAN内のマシンを自動的に検出してくれるので、MACアドレスとか入力しなくてもよくてお手軽です。

・リモートデスクトップ用アプリ
Splashtop 2 Remote Desktop

リモートデスクトップでアクセスしたいマシンに Splashtop Streamer をインストールしておく必要はありますが、軽い動画くらいなら普通にリモートデスクトップ経由で見れるくらいのポテンシャルを持ってます。(音も鳴ります)

外出先から VPN 接続し、上記アプリを使用して PC の電源を入れてリモートデスクトップで操作、という事が普通にできてます。

◆おまけ2
Windowsマシンでの動画再生には VLC メディアプレイヤーを使ってるんですが、Splashtop のリモートデスクトップ経由で動画再生した時に、VLC のウィンドウ内が真っ黒で動画が見えないことがありました。

VLC の[ツール]->[設定]->[ビデオ]->[ディスプレイ]->[出力] を「Direct3Dビデオ出力」に設定することで、表示されるようになりました。