Ubuntu 24.04 LTS 一覧へ戻る トップUbuntu 24.04 LTS / SoftEther VPN 外出先からの接続
Ubuntu 24.04 LTS ・ SoftEther VPN

外出先からの接続

SoftEther VPN 接続ガイド:Windows/Linux対応・状態とIPアドレスの図解・デスクトップアイコン化

L2ブリッジ方式クライアント Windows対応 Linux実機検証済み デスクトップアイコン化

SoftEther VPNの構築」で組み上げたL2ブリッジVPNへ、実際に外出先の端末から接続する側の手順をまとめたページです。接続前後で何が変わるのか、IPアドレスはどうなるのか、接続すると何ができるのか、切断時に何に気をつけるべきかを、図解と実機検証の記録つきで解説します。

本ページの位置づけについて

サーバー構築手順はSoftEther VPNの構築ページを参照してください。本ページはクライアント側(接続する側)の運用記録です。Linuxでの手順は実機で動作確認済みですが、Windowsでの手順はSoftEther公式クライアントの一般的な操作方法に基づく参考手順です。実際に構築・接続する場合は、必ずSoftEther VPN公式サイトの最新情報もあわせて確認してください。

目次

  1. 全体像:接続前後で何が変わるか
  2. 接続〜切断の状態遷移
  3. Windowsから接続する
  4. Linuxから接続する
  5. デスクトップアイコン化(Windows)
  6. デスクトップアイコン化(Linux)
  7. 接続すると何ができるか
  8. 実機検証で分かった注意点
  9. ゼロトラスト方式との比較

1. 全体像:接続前後で何が変わるか

まず、外出先の端末からVPNサーバーまでの通信経路と、接続前後でクライアント側に何が起きるのかを1枚の図にまとめます。

[外出先の端末] │ ① VPNクライアントで接続要求 │ (インターネット経由/TCP <VPN待受ポート番号>番ポート) ▼ [HGW(ホームゲートウェイ)] → [FortiGate(VIPで転送)] → [Ubuntuサーバー:br0] │ ┌───────────────────┴───────────────────┐ │ br0(自宅LANと同一セグメントの仮想スイッチ) │ │ ├─ 物理NIC ── 自宅LANの他の機器 │ │ └─ tapデバイス ── VPNクライアント │ └─────────────────────────────────────────┘ [接続前の端末] [接続後の端末] 実ネットワークのIP: そのまま 実ネットワークのIP: 変化なし(そのまま) 自宅LANへは直接到達できない + 仮想LANカードが新規追加される │ DHCPで自宅LANと同じセグメントを取得 ▼ 例: 192.168.1.124/24 │ ▼ 自宅LAN上の他の機器へ 192.168.1.x のまま 特別な経路設定なしに直接到達可能

ポイントは、VPNクライアントに新しく増える仮想LANカードが、自宅LANの機器と全く同じセグメントのIPアドレスをDHCPで取得する点です。これにより、VPN接続後は「自宅に物理的に居るのと同じ状態」で他の機器へアクセスできます。

2. 接続〜切断の状態遷移

「接続」は一瞬で完了するわけではなく、実際には複数の段階を踏みます。特に「VPNセッションは繋がったのに、まだ自宅LANへの通信は安定しない」という中間状態があることを知っておくと、あとの章で説明する「接続直後は少し待つ」という注意点が理解しやすくなります。

[未接続] │ ① VPNクライアントで接続(AccountConnect等) ▼ [VPNセッション確立] ← トンネル自体は繋がるが、まだ自宅LAN内のアドレスは持っていない │ ② DHCP要求(IPアドレスの取得) ▼ [IPアドレス取得完了] ← 例: 192.168.1.124/24 が付与される │ ③ ブリッジ側のARP解決を待つ(数秒〜10秒程度) ▼ [自宅LANへ安定して疎通可能] ← ここで初めてping等が安定して通るようになる │ ④ 用が済んだら切断 ▼ [切断] │ ⑤ 取得したIPアドレスを解放(重要) ▼ [未接続へ戻る]

③の段階で一時的にpingが失敗するのは正常

IP取得直後(②→③の間)は、自宅ルーター等へのpingが一瞬Destination Host Unreachableになることがあります。ブリッジ側のARP解決がまだ済んでいないためで、10秒ほど待って再度pingすれば通ります。異常ではありません。

3. Windowsから接続する

Windows

SoftEther VPN公式サイトから「SoftEther VPN Client」をインストールした状態を前提にします。

STEP 1

接続設定の作成(初回のみ)

  1. 「SoftEther VPN Client 管理マネージャ」を起動
  2. 「新しい接続設定の作成」を選択
  3. 接続設定名(例:my_vpn)、接続先VPNサーバー(ホスト名と<VPN待受ポート番号>)、仮想HUB名(VPN)、ユーザー認証情報を入力して保存
STEP 2

接続する

作成した接続設定をダブルクリックすると接続が始まります。コマンドで行う場合は次の通りです(vpncmd.exeはSoftEther VPN Clientのインストール先フォルダにあります)。

cd "C:\Program Files\SoftEther VPN Client"
vpncmd.exe localhost /CLIENT /CMD AccountConnect my_vpn
vpncmd.exe localhost /CLIENT /CMD AccountStatusGet my_vpn
STEP 3

接続確認

ipconfig /all
ping 192.168.1.1

「SoftEther VPN Client Adapter」等の名前の仮想アダプタに192.168.1.xのアドレスが付与され、自宅ルーター(192.168.1.1)へのpingが通れば成功です。すぐに失敗する場合は2章の通り10秒ほど待って再試行してください。

STEP 4

切断する

vpncmd.exe localhost /CLIENT /CMD AccountDisconnect my_vpn

4. Linuxから接続する

Linux(実機検証済み)

Ubuntu 24.04でのSoftEther VPN Client(/usr/local/vpnclientvpnclient.service常駐)を前提にした、実際に検証済みの手順です。

STEP 1

接続する

sudo /usr/local/vpnclient/vpncmd localhost /client /cmd AccountConnect my_vpn
sudo /usr/local/vpnclient/vpncmd localhost /client /cmd AccountStatusGet my_vpn
sudo dhclient vpn_vpn0
ip -4 addr show vpn_vpn0

inet 192.168.1.xxx/24が表示されればIP取得成功です。仮想LANカードはNetworkManagerの管理対象外のため、dhclientでの手動取得が必要です。

STEP 2

接続確認

ping -c 3 192.168.1.1

2章の通り、直後は失敗することがあります。10秒ほど待って再実行してください。

STEP 3

切断する

sudo /usr/local/vpnclient/vpncmd localhost /client /cmd AccountDisconnect my_vpn
sudo dhclient -r vpn_vpn0
sudo ip addr flush dev vpn_vpn0

下2行(IPアドレスの解放)は8章で説明する事故を防ぐために必須です。

5. デスクトップアイコン化(Windows)

毎回コマンドやマネージャー画面を開くのは手間なので、ダブルクリックone発で接続・切断できるアイコンを作ります。

STEP 1

接続用バッチファイルを作成

デスクトップ等にvpn_connect.batという名前でテキストファイルを作成し、以下を貼り付けます。

@echo off
cd /d "C:\Program Files\SoftEther VPN Client"
echo === SoftEther VPN (my_vpn) へ接続 ===
vpncmd.exe localhost /CLIENT /CMD AccountConnect my_vpn
vpncmd.exe localhost /CLIENT /CMD AccountStatusGet my_vpn

echo === 10秒待ってから疎通確認します ===
timeout /t 10 /nobreak
ping 192.168.1.1

pause
STEP 2

切断用バッチファイルを作成

同様にvpn_disconnect.batを作成します。

@echo off
cd /d "C:\Program Files\SoftEther VPN Client"
echo === SoftEther VPN (my_vpn) を切断 ===
vpncmd.exe localhost /CLIENT /CMD AccountDisconnect my_vpn
pause

参考:管理者権限が必要な場合

環境によってはvpncmd.exeの実行に管理者権限が必要になることがあります。その場合はバッチファイルを右クリック→「管理者として実行」するか、ショートカットのプロパティから「管理者として実行」を常時有効にしてください。また、実行時に一瞬表示される黒いコンソール画面が気になる場合は、同じ処理を.vbsファイルで包んで隠す方法もあります(発展的な内容のため本ページでは割愛します)。

6. デスクトップアイコン化(Linux/GNOME、実機検証済み)

Ubuntu(GNOME)で、ダブルクリックすると接続・切断が実行される.desktopアイコンを作成した例です。実際にこの構成で動作確認済みです。

STEP 1

接続スクリプト本体:~/vpn_connect.sh

#!/bin/bash
sudo /usr/local/vpnclient/vpncmd localhost /client /cmd AccountConnect my_vpn
sudo /usr/local/vpnclient/vpncmd localhost /client /cmd AccountStatusGet my_vpn

sleep 2

echo "=== vpn_vpn0 にDHCPでIPを取得 ==="
sudo dhclient vpn_vpn0

echo "---- IPアドレス ----"
ip -4 addr show vpn_vpn0

echo "---- ARP解決待ちのため10秒待ってから疎通確認します ----"
sleep 10
ping -c 3 192.168.1.1
chmod +x ~/vpn_connect.sh
STEP 2

切断スクリプト本体:~/vpn_disconnect.sh

#!/bin/bash
echo "=== SoftEther VPN (my_vpn) を切断 ==="
sudo /usr/local/vpnclient/vpncmd localhost /client /cmd AccountDisconnect my_vpn
sudo /usr/local/vpnclient/vpncmd localhost /client /cmd AccountStatusGet my_vpn

echo "=== vpn_vpn0 のIP/ルートを解放(残骸によるLAN通信障害を防ぐため) ==="
sudo dhclient -r vpn_vpn0 2>&1 || true
sudo ip addr flush dev vpn_vpn0 2>&1 || true
chmod +x ~/vpn_disconnect.sh

切断時にIPアドレスを解放する2行は、8章で説明する事故を防ぐために必須です。

STEP 3

「接続」アイコン本体:~/デスクトップ/SoftEther VPN接続.desktop

[Desktop Entry]
Type=Application
Name=SoftEther VPN接続
Comment=自宅ラボへSoftEther VPN(my_vpn)で接続します
Exec=bash -c "/home/USERNAME/vpn_connect.sh; echo; echo '終了しました。何かキーを押すとウィンドウを閉じます...'; read -n1"
Icon=network-vpn
Terminal=true
Categories=Utility;
STEP 4

「切断」アイコン本体:~/デスクトップ/SoftEther VPN切断.desktop

[Desktop Entry]
Type=Application
Name=SoftEther VPN切断
Comment=SoftEther VPN(my_vpn)を切断します
Exec=bash -c "/home/USERNAME/vpn_disconnect.sh; echo; echo '終了しました。何かキーを押すとウィンドウを閉じます...'; read -n1"
Icon=network-offline
Terminal=true
Categories=Utility;

USERNAMEは実際のログインユーザー名に置き換えてください。作成後は実行権限を付与します。

chmod +x ~/デスクトップ/"SoftEther VPN接続.desktop" ~/デスクトップ/"SoftEther VPN切断.desktop"

初回ダブルクリック時の確認ダイアログ

GNOMEでは初回、「信頼されていない実行可能ファイルです」という確認が出ることがあります。アイコンを右クリック→「起動を許可する」を選べば、以降はダブルクリックだけで実行できます。

7. 接続すると何ができるか

自宅LANの一員として振る舞えるため、以下が特別な設定なしにそのまま行えます。

8. 実機検証で分かった注意点

L2ブリッジ方式は自宅LANと完全に同じセグメントを使う設計であるがゆえに、以下2つの問題が実際に発生することを確認しています。

① 切断し忘れたまま別のネットワークへ移動すると、通常のLAN通信まで壊れる

5・6章のIP解放手順をせずに、例えば自宅WiFi(自宅LANと同じ192.168.1.0/24)へ端末を移動すると、死んだままの仮想LANカードのルートが192.168.1.0/24宛の通信を奪ってしまい、VPNを使っていないはずの通常のping・通信まで失敗するようになります。ネットワークを切り替える前は必ず切断手順の中でIPアドレスを解放してください。

② そもそも自宅LAN内(自宅WiFi等)からはこのVPNへ接続できないことがある

VPNサーバーの接続先ホスト名が自宅ルーターの公開グローバルIPに解決される構成の場合、自宅LAN内から同じホスト名へ接続しようとすると、ルーターの「NATループバック(ヘアピンNAT)」機能が必要になります。これに対応していないルーターでは、LAN内からの接続がNo route to hostで拒否されます。本VPNは外出先(自宅LAN外)から使うことを前提に設計されているため、自宅LAN内にいる間は無理に接続する必要はありません。

①②はいずれも、実際に外部端末(テザリング・自宅WiFi双方)で接続を試みる中で再現・確認済みです。特に②は「昨日まで繋がっていたのに急に繋がらなくなった」という誤解を生みやすいため、まず今どのネットワークに接続しているかを確認することをお勧めします。

9. ゼロトラスト方式との比較

自宅LANでは、認証基盤(IdP・MFA)と組み合わせたゼロトラスト方式(Tailscale/Headscale)のVPNも別途検証しています。同じ「外出先から自宅へ」という目的でも、設計思想が大きく異なります。

観点L2ブリッジ方式(本ページ)ゼロトラスト方式
接続後のIPアドレス自宅LANと同じセグメント(例: 192.168.1.x)をDHCPで取得専用の仮想IP帯(100.x.x.x)を取得。自宅LAN機器へは別途経路広告で到達
自宅LANとのIP衝突リスクあり(同一セグメントであるため。8章参照)原理的になし(LANでまず使われない専用帯域のため)
ブロードキャスト(機器発見等)LAN内にいる時と同様に機能する基本的に届かない(経路広告された宛先への到達のみ)
認証の仕組みVPNサーバー単体のユーザー認証IdP(authentik等)によるパスワード+多要素認証(MFA/TOTP)
自宅LAN内からの接続NATループバック非対応ルーターでは不可のことが多い同様の構成であれば同じ制約が起こり得る

どちらが優れているというより用途が異なります。自宅LANに「物理的に居るのと同じ状態」を素朴に再現したいなら本ページのL2ブリッジ方式、認証基盤と組み合わせて安全性を重視するならゼロトラスト方式(外出先から自宅ネットワークへ安全に接続する(ワンタイムパスワード))が向いています。

Ubuntu 24.04 LTS 一覧へ戻る