ルーターやファイアウォールとして利用できるDebianベースのネットワークOS
- VyOS -
VyOSは、ルーティングやファイアウォールなどの機能を備えたオープンソースのネットワークOSです。VirtualBoxと組み合わせれば、物理的なルーターを用意しなくても、自宅のパソコン上にネットワーク検証環境を構築できます。
本記事では、VirtualBoxにVyOSをインストールし、Kali LinuxとUbuntu ServerをVyOS経由で通信させるまでの手順を、ネットワーク構成図やコマンド例とともに解説します。
VyOSとは何か、VyattaとVyOSの違い、VyOSのダウンロード、インストール、基本コマンド、初期設定、ルーティング設定、そして通信テストまで必要な知識をこの一記事で体系的に学べます。
物理機器は不要で、手元のPCだけで本格的なネットワーク構成を再現できるため、コストをかけずに実践的なスキルを積める点が最大のメリットです。ぜひ本記事の手順に沿って、実際に手を動かしながら学習を進めてみてください。
本記事で構築するネットワーク構成
本記事では、Windows上のVirtualBoxに3台の仮想マシンを用意し、Kali LinuxとUbuntu ServerをVyOS経由で通信できるネットワークを構築します。
VirtualBoxのネットワークモードは、ホストオンリーアダプターを使用します。ホストオンリーアダプターは、ホストOSと仮想マシン間、および同一のホストオンリーネットワークに接続された仮想マシン間でのみ通信できます。外部インターネットへの通信は発生しないため、クローズドな検証環境として適しています。
ネットワーク構成図
本記事で構築するネットワーク構成は、以下の通りです。

構成上のポイントは、Kali LinuxとUbuntu Serverをそれぞれ異なるネットワークセグメントに配置することです。両者は直接通信できないため、VyOSをルーターとして配置し、セグメント間の通信を中継します。
具体的には、VyOSが2つのネットワークインターフェース(eth0・eth1)を持ち、それぞれのセグメントのゲートウェイとして機能することで、Kali LinuxとUbuntu Server間のルーティングを実現します。
仮想マシン一覧
本記事で使用する仮想マシンは、以下のとおりです。なお、仮想化ソフトウェアには「Oracle VirtualBox」を使用します。
| 仮想マシン | バージョン | 用途 | インターフェース | IPアドレス |
|---|---|---|---|---|
| Kali Linux | 2026.1 | 接続元マシン | eth0 | 192.168.10.11/24 |
| VyOS | 2026.06.10-0053-rolling | 仮想ルーター | eth0 | 192.168.10.254/24 |
| 〃 | 〃 | 〃 | eth1 | 192.168.20.254/24 |
| Ubuntu Server | 26.04 LTS | 接続先マシン | enp0s8 | 192.168.20.106/24 |
- Kali Linux:脆弱性診断やペネトレーションテストに特化したLinuxディストリビューション
- Ubuntu Server:幅広い用途に対応するサーバー向けLinuxディストリビューション
Kali LinuxとUbuntu ServerのインストールおよびIPアドレスの設定は完了していることを前提とします。
VyOSは本記事にてインストールから設定まで詳しく解説します。
VyOSとは
VyOSは、Debian GNU/Linuxをベースに構築されたオープンソースのネットワークOSです。ソフトウェアベースのルーティング、ファイアウォール、VPNなどの機能を提供します。
一般的なLinuxディストリビューションにルーティングやパケットフィルタリングを個別に設定する方法とは異なり、VyOSはネットワーク機器として利用することを前提に設計されています。そのため、設定コマンドが体系化されており、ルーティング、インターフェース、ファイアウォール、NAT、VPNなどをコマンドラインインターフェース(CLI)で統合的に管理できます。
主な特徴
ルーター機能を標準搭載したネットワークOS
VyOSでは、スタティックルーティング、ダイナミックルーティング、NAT、ファイアウォール、VPNなど、ネットワーク機器で利用される機能をCLIから設定できます。
設定内容をコマンドとして管理しやすい
VyOSでは、設定変更を行う際にコンフィギュレーションモードへ入り、設定後にcommitで反映し、saveで永続化します。この流れは、ネットワーク機器の設定管理に近い考え方です。
Linuxの設定ファイルを直接編集する方法と比較すると、VyOSでは「どの設定を追加したのか」「現在どの設定が有効なのか」を確認しやすいという利点があります。例えば、show configuration commandsを実行すると、現在の設定をコマンド形式で確認できます。検証環境を再構築する場合や、手順書を作成する場合にも有効です。
仮想環境と相性が良い
VyOSはVirtualBox、VMware、KVMなどの仮想化環境で利用できます。物理ルーターを用意しなくても、Windows上のVirtualBoxだけで複数セグメントのネットワークを構築できます。
オープンソース・無償利用可能
VyOSはオープンソースのネットワークOSであるため、個人の学習環境でも導入しやすい点が特徴です。特にRolling releaseは無償で入手できるため、VirtualBox上で基本的なルーティングやファイアウォール設定を学習する用途に適しています。
リリースタイプの違い
VyOSは現在、3つのリリースタイプで提供されています。
| リリースタイプ | 特徴 | 主な用途 | 安定性 |
|---|---|---|---|
| Rolling release | 最新の変更が反映される。 安定性の保証はなく、仕様変更が入る可能性がある。 | 学習、検証、最新機能の確認 | 低〜中 |
| VyOS Stream | 次期LTSの機能を事前に確認できる。 | 次期LTSに向けた事前検証 | 中 |
| LTS release | 長期利用を前提とした安定版。 サブスクリプションやコントリビューター向けに提供。 | 本番環境、長期運用 | 高 |
Rolling release
Rolling releaseは、毎日自動ビルドされるナイトリービルドです。公開前に手動テストは実施されませんが、自動スモークテストが実施されます。
VyOS Stream
VyOS Streamは、Rolling releaseとLTS releaseの間を埋めるための新しいリリースラインとして2024年に発表されました。将来のLTS releaseに向けた技術プレビューという位置付けです。
LTS release
LTS releaseは、長期運用を前提とした安定版です。商用・本番環境での利用に適しており、長期間にわたってサポートとバグ修正が提供されます。
VyattaとVyOSの違い
Vyatta Coreは、オープンソースのネットワークOSとして利用されていました。しかし、Vyattaを提供していた企業がBrocade Communications Systemsに買収され、Vyatta Coreのコミュニティ版は2013年に開発を終了しました。その後、Vyatta Core 6.6 R1をベースとしたコミュニティ主導のフォークとして、VyOSの開発が開始されました。
VyOSは、Vyatta CoreからフォークされたオープンソースのネットワークOSです。
VyattaとVyOSの大きな違いは、VyOSは現在も開発を継続していますが、Vyatta Coreは開発が終了しており、現在の利用には適していません。
| 項目 | Vyatta Core | VyOS |
|---|---|---|
| 位置づけ | 旧Vyattaのコミュニティ版 | Vyatta Coreから派生したオープンソースのネットワークOS |
| 開発状況 | 2013年に終了 | 現在も継続 |
| 主な用途 | ルーター、ファイアウォール、VPN | ルーター、ファイアウォール、VPN |
| 学習環境での利用 | 現在は新規導入に不向き | VirtualBoxなどに導入しやすい |
これから学習を始める場合は、Vyatta CoreではなくVyOSを利用するのが現実的です。VyOSは現在もドキュメントが整備されており、Rolling releaseを使えばVirtualBox上に学習環境を作成できます。
VyOSのISOイメージをダウンロード
VyOSをVirtualBoxにインストールするには、まずVyOSのISOイメージをダウンロードします。
本記事では、学習環境・検証環境で利用しやすいRolling releaseを使用します。Rolling releaseは、開発中の最新機能や変更点を反映したISOイメージで、VirtualBox上でルーティングやセグメント間通信の検証を行う用途に適しています。
Rolling releaseのISOイメージは、VyOSの公式サイト、またはGitHubから無償でダウンロードできます。
- 公式サイトのダウンロードページ:https://vyos.net/get/nightly-builds/
- GitHubのダウンロードページ:https://github.com/vyos/vyos-nightly-build/releases
ISOファイルのダウンロードが完了したら、次のセクションでVirtualBoxにVyOS用の仮想マシンを作成します。
VirtualBoxにVyOSをインストール
VyOSのISOイメージをダウンロードしたら、VirtualBox上に仮想マシンを作成してインストールを進めます。本記事では、Kali Linux(192.168.10.0/24)とUbuntu Server(192.168.20.0/24)の間をルーティングするため、VyOSに2つのネットワークインターフェースを割り当てます。
ホストマシン(Windowsなど)にOracle VirtualBoxをインストール済みであること。
※本記事では、Oracle VirtualBox 7.2を使用しています。
仮想マシン(仮想ルーター)の作成
VyOS Rolling Releaseの最小システム要件は、「RAM 4GB」「ストレージ 10GB」です。VyOSはCLIベースの軽量なネットワークOSであり、学習目的の検証環境では多くのリソースを必要としません。仮想マシンのリソースは後から追加できるため、まずは「メモリ 2GB」「CPU 1コア」「ストレージ 10GB」の構成で作成します。
VirtualBoxの新規アイコンをクリック
まずVirtualBoxを起動し、画面上部の「新規アイコン」をクリックします。

新規仮想マシンの作成ウィザードが表示されるため、ここからVyOS用の仮想マシンを作成していきます。
「新しい仮想マシン」に必要な情報を入力
仮想マシンの作成画面では、以下の情報を入力します。

- VM名:VyOS(わかりやすい名前を入力)
- VMフォルダー:VyOSをインストールするフォルダ
- ISOイメージ::ダウンロードしたISOファイル
- OS:Linux
- OSディストリビューション:Debian
- OSバージョン:Debian(64-bit)

- 変更なし

- 変更なし(メインメモリー:2048MB、CPU数:1)

- ディスクサイズを変更する(20GB → 10GB)
完了ボタンをクリック
必要事項を入力後、「完了ボタン」をクリックします。VirtualBoxマネージャーの左ペインに、仮想マシン「VyOS」が追加されていることを確認してください。

仮想マシンのインターフェース設定
本記事の検証では、異なるネットワークセグメント間をVyOSでルーティングするため、上記で作成した仮想マシンにネットワークインターフェースを2つ割り当てます。
VirtualBoxの設定アイコンをクリック
作成した仮想マシン「VyOS」を選択した状態で、上部メニューの 「設定アイコン」をクリックします。

仮想マシンの各種設定画面が表示されます。
高度タブのネットワークを選択する
高度タブを選択し、左メニューの「ネットワーク」をクリックします。

ネットワークアダプターの設定画面が表示され、仮想マシンに接続するNICの構成を設定できます。
ネットワークアダプター1の設定

「アダプター1」タブを選択し、以下のとおり設定します。
| 項目 | 設定値 |
|---|---|
| ネットワークアダプターを有効化 | チェックあり |
| 割り当て | ホストオンリーアダプター |
| 名前 | VirtualBox Host-Only Ethernet Adapter(192.168.10.0/24 に対応するもの) |
アダプター1は、Kali Linuxが所属するネットワークとの通信に利用します。Kali Linuxに設定しているアダプターと同じアダプターを選択して下さい。
ネットワークアダプター2の設定

続いて「アダプター2」タブを選択し、以下のとおり設定します。
| 項目 | 設定値 |
|---|---|
| ネットワークアダプターを有効化 | チェックあり |
| 割り当て | ホストオンリーアダプター |
| 名前 | VirtualBox Host-Only Ethernet Adapter #2(192.168.20.0/24 に対応するもの) |
アダプター2は、Ubuntu Serverが所属するネットワークとの通信に利用します。Ubuntu Serverに設定しているアダプターと同じアダプターを選択して下さい。
OKボタンをクリック
ネットワークアダプター1、2の設定が完了したら、画面右下の「OKボタン」をクリックします。

設定内容の確認
VirtualBoxマネージャーの右ペインに表示される仮想マシンの 「詳細タブ」 を確認します。

ネットワークアダプター1、2に設定内容が正しく表示されていれば、ネットワークアダプターの設定は完了です。
次のセクションでは、ISOイメージから起動します。
ISOイメージからVyOSを起動
VyOSの仮想マシンが作成できたら、ISOイメージからVyOSを起動します。
VirtualBoxの起動アイコンをクリック
作成した仮想マシン「VyOS」を選択し、画面上部の「起動アイコン」をクリックします。

仮想マシン作成時に割り当てたVyOSのISOイメージからブート処理が起動します。
VyOSが起動しない場合は、VyOSのISOイメージが仮想光学ドライブに割り当てられているか確認して下さい。
- VirtualBoxマネージャーの「設定アイコン」をクリック
- 左メニューから「ストレージ」を選択し、対象のデバイスを選択

VyOSをデフォルト(KVM)のまま起動する
しばらくすると、VyOSの起動メニューが表示されます。

「KVM console」がデフォルトで選択されています。そのままEnterキーを押すか、数秒待つと自動的に起動が始まります。
「vyos login:」が表示されるまで、しばらく待つ
起動処理が完了すると、コンソール画面に次のログインプロンプトが表示されます。

この表示が出るまで、しばらく待ちます。(本記事の検証環境では、数分程度で起動を完了しました。)
VyOSにログイン
VyOSにログイン
デフォルトのユーザー名、パスワードを使って、VyOSにログインします。
- ユーザー名:vyos
- パスワード:vyos
ログインに成功すると、以下のプロンプトが表示されます。
vyos@vyos:~$VyOSイメージの確認
まずはVyOSのシステムイメージを確認します。
vyos@vyos:~$ show system image
Name Default boot Running
------ -------------- ---------
(出力なし)現時点(ISOイメージから起動している段階)では、ディスク上にインストール済みのシステムイメージは存在しません。
起動方式の確認
最後に、現在の起動方式を確認します。
vyos@vyos:~$ show version | match 'Boot via'
Boot via: livecdBoot via: livecdと表示されていれば、現在のVyOSはISOイメージから起動していることが確認できます。
ISOイメージから起動していることが確認できたら、次のセクションでVyOSを仮想ディスクにインストールします。
VyOSのインストール
VyOSを仮想ディスクにインストール
ISOイメージから起動したVyOSにログインできたら、次は仮想ディスクへのインストールを行います。install imageコマンドを実行するとインストールが始まるので、ウィザードの指示に従ってインストールを進めます。
以下は、本記事の検証環境で実施したインストール時の入力例です。
vyos@vyos:~$ install image
Welcome to VyOS installation!
This command will install VyOS to your permanent storage.
Would you like to continue? [y/N] y
What would you like to name this image? (Default: 2026.06.10-0053-rolling)
Please enter a password for the "vyos" user: *****
Please confirm password for the "vyos" user: *****
What console should be used by default? (K: KVM, S: Serial)? (Default: K)
Probing disks
1 disk(s) found
The following disks were found:
Drive: /dev/sda (10.0 GB)
Which one should be used for installation? (Default: /dev/sda)
Installation will delete all data on the drive. Continue? [y/N] y
Searching for data from previous installations
No previous installation found
Would you like to use all the free space on the drive? [Y/n] Y
Creating partition table...
The following config files are available for boot:
1: /opt/vyatta/etc/config/config.boot
2: /opt/vyatta/etc/config.boot.default
Which file would you like as boot config? (Default: 1)
Creating temporary directories
Mounting new partitions
Creating a configuration file
Copying system image files
Installing GRUB configuration files
Installing GRUB to the drive
Cleaning up
Unmounting target filesystems
Removing temporary files
The image installed successfully; please reboot now.インストール完了
インストールが正常に完了すると、以下のメッセージが表示されます。
The image installed successfully; please reboot now.
ISOイメージをアンマウントする
VyOSの再起動前にISOイメージを仮想光学ドライブから取り外します。

- VirtualBoxマネージャーの「設定アイコン」をクリック
- 左メニューから「ストレージ」を選択し、対象のデバイスを選択
- 「光学ドライブアイコン」をクリック、「仮想ドライブからディスクを除去」を選択
- 対象のデバイスが「空」になったことを確認し、OKボタンを押下
VyOSの再起動
ISOイメージをアンマウントしたら、VyOSを再起動します。
vyos@vyos:~$ reboot
Are you sure you want to reboot this system (vyos)? [y/N] yVirtualBoxの画面が一度ブラックアウトし、その後VyOSのブートシーケンスが始まります。

再起動が完了すると、ログインプロンプトが表示されます。
VyOSに再ログイン
インストール時に設定したパスワードでログインします。
vyos login: vyos
Password: ********- ユーザー名:vyos
- パスワード:インストール時に設定したパスワード
ログインに成功すると、以下のプロンプトが表示されます。
vyos@vyos:~$インストール後の確認
ここでは、以下の3つを確認します。
| 確認項目 | 使用するコマンド | 確認する内容 |
|---|---|---|
| インストール済みイメージ | show system image | VyOSの起動イメージ |
| ストレージ使用状況 | show system storage | 仮想ディスクの使用量 |
| 起動方式 | show version | grep 'Boot via' | インストール済みイメージから起動していること |
インストール済みイメージ
システムにインストールされているVyOSイメージの一覧を確認します。
vyos@vyos:~$ show system image
Name Default boot Running
----------------------- -------------- ---------
2026.06.10-0053-rolling Yes Yes- Name:インストールされているVyOSのイメージ名
- Default boot:次回起動時にこのイメージが使われるか
- Running:現在実行中のイメージかどうか
ストレージ使用状況
次に、ストレージの状態(仮想ディスクの容量)を確認します。
vyos@vyos:~$ show system storage
Filesystem: /dev/sda3
Size: 9.5GB
Used: 795M (9%)
Available: 8.3G (91%)- Filesystem:デバイスファイルのパス
- Size:システム全体の総容量
- Used:使用済み容量
- Available:空き容量
起動方式
最後に、VyOSの起動方式を確認します。
vyos@vyos:~$ show version | grep 'Boot via'
Boot via: installed imageBoot via: installed image と表示されていれば、ディスクにインストールしたイメージから起動していることが確認できます。
VyOSの基本コマンド
VyOSは、DebianベースのネットワークOSですが、設定操作は一般的なLinuxコマンドだけでなく、VyOS独自のコマンドも使用します。本セクションでは、VyOSへログインした後の基本操作を理解できるよう、基本コマンドの使い方を解説します。
利用可能なコマンドを確認
VyOSのCLIでは、Tabキーまたは?キーを入力することで、その位置で利用可能なコマンドや引数の候補を一覧表示できます。
例えば、ログイン直後の状態でTabキーまたは?キーを押すと、利用できるコマンドを確認できます。
vyos@vyos:~$ ?
Possible completions:
add Add an object
clear Clear system information
clone Clone an object
〜 省略 〜
show Show system information
traceroute Trace network path to node
update Update data for a serviceまた、showと入力し、末尾に半角スペースを入れてからTabキーまたは?キーを押すと、showの後に指定できる候補が表示されます。
vyos@vyos:~$ show ?
Possible completions:
arp Show Address Resolution Protocol (ARP) information
babel Show Babel routing protocol information
bfd Show Bidirectional Forwarding Detection (BFD)
〜 省略 〜
interfaces Show network interface information
ip Show IPv4 routing information
〜 以下、省略 〜以下のように候補を段階的に絞ることもできます。
vyos@vyos:~$ show interfaces ?
Possible completions:
<Enter> Execute the current command
bonding Show specified bonding interface information
bridge Show bridge interface information
counters Show network interface counters
detail Show detailed information of all interfaces
dummy Show dummy interface information
ethernet Show specified Ethernet interface information
〜 以下、省略 〜このように、Tabキーや?キーを使うことで、今の位置で使用できるコマンドや引数をCLI上で確認できます。
動作モード
VyOSには、2つの動作モードがあります。
| モード | 主な用途 | プロンプトの末尾 |
|---|---|---|
| オペレーショナルモード(Operational mode) | 現在の状態確認、システム停止・再起動など | $ |
| コンフィギュレーションモード(Configuration mode) | 設定の追加・変更・削除など | # |
ログイン直後はオペレーショナルモードです。
オペレーショナルモード
オペレーショナルモードでは、現在の状態を確認するコマンドを実行できます。ログイン直後はオペレーショナルモードで起動し、プロンプトの末尾には$が表示されます。
インターフェース情報の確認、ルーティングテーブルの確認、システム情報の確認、システム停止・再起動など
コンフィギュレーションモード
IPアドレスやルーティングなどの各種設定は、コンフィギュレーションモードで行います。オペレーショナルモードからコンフィギュレーションモードに移行するには、configureコマンドを実行します。
vyos@vyos:~$ configure
[edit]
vyos@vyos#コンフィギュレーションモードに移行すると、プロンプトの末尾が$から#に切り替わります。
各種設定の追加・変更・削除 など
コンフィギュレーションモードの状態でexitを実行すると、コンフィギュレーションモードを終了し、オペレーショナルモードに戻ります。
vyos@vyos# exit
exit
vyos@vyos:~$設定内容の確認・変更・削除
VyOSの設定作業では、以下のコマンドを使用します。
| コマンド | 主な用途 | 主な動作モード |
|---|---|---|
show | 設定内容や状態を確認する | オペレーショナルモード |
set | 設定を追加・変更する | コンフィギュレーションモード |
delete | 設定を削除する | 〃 |
現在の設定内容を確認する
showコマンドは、VyOSの状態や設定内容を確認するコマンドです。オペレーショナルモードでは、ネットワークインターフェース、ルーティングテーブル、システム情報などを確認できます。
例)ネットワークインターフェース
vyos@vyos:~$ show interfaces
例)ルーティングテーブル
vyos@vyos:~$ show ip route
例)VyOSのバージョン情報
vyos@vyos:~$ show version
例)ホスト名
vyos@vyos:~$ show host name
例)システムログ
vyos@vyos:~$ show logshowコマンドは主にオペレーショナルモードで使用します。
設定の追加・変更
VyOSに設定を追加・変更する場合、setコマンドを使用します。setコマンドは、主にコンフィギュレーションモードで使用します。
例)eth0にIPアドレスを設定する
vyos@vyos# set interfaces ethernet eth0 address '192.168.10.254/24'
例)ホスト名を変更する
vyos@vyos# set system host-name vyos-router01setコマンドを実行しただけでは設定は反映されません。後述するcommitコマンドを実行することで、初めて設定が有効になります。
設定の削除
VyOSの設定を削除する場合、deleteコマンドを使用します。deleteもsetと同じく、主にコンフィギュレーションモードで実行します。
例)eth0に設定したIPアドレスを削除する
vyos@vyos# delete interfaces ethernet eth0 address 192.168.10.254/24deleteもsetと同様、実行した瞬間に反映されるわけではありません。設定候補として保持され、commitによって反映されます。
設定内容の反映
コンフィギュレーションモードで設定を変更・削除しても、システムに即反映されるわけではありません。設定を反映するには、commitを実行します。また、再起動後も設定を維持するには、saveを実行する必要があります。
configure:コンフィギュレーションモードへ移行set/delete:設定を変更・削除するcompare:変更内容の差分を表示するcommit:変更内容の有効化save:変更内容をディスクに保存するexit:オペレーショナルモードに戻る
変更内容の差分確認
compareコマンドは、現在の設定と変更中の設定の差分を表示します。
例えば、VyOSのeth0に192.168.10.254/24を設定した直後にcompareを実行すると、追加予定の設定が差分として表示されます。
vyos@vyos# compare
[interfaces ethernet eth0]
+ address "192.168.10.254/24"先頭に+が付いている行は、追加される設定を表します。一方、削除予定の設定には-が表示されます。
例)IPアドレスを削除した場合
vyos@vyos# compare
[interfaces ethernet eth0]
- address "192.168.10.254/24"設定変更の有効化
commitは、変更した設定内容を現在稼働中のVyOSに反映するコマンドです。
vyos@vyos# commitcommitを実行した時点で初めてVyOSの挙動が変わります。ただし、この段階では設定はメモリ上にのみ存在しており、再起動すると設定が失われます。
設定変更の取り消し
discardは、まだcommitしていない設定変更を破棄するコマンドです。設定を誤った場合や変更をやり直したい場合に使用します。
vyos@vyos# discardcompareで差分を確認し、意図しない変更が含まれていた場合は、commitを実行せずにdiscardでリセットしてください。
設定変更を保存
saveコマンドは、commitで有効化した設定内容をストレージ(ディスク)に保存します。VyOSでは、commitで設定を反映しても、saveを実行しないまま再起動すると設定が失われます。再起動後も同じ設定で動作したい場合は、必ずsaveを実行します。
vyos@vyos# save設定ファイルはデフォルトで/config/config.bootに保存されます。/config/config.bootは、VyOSの起動時に読み込まれる設定ファイルです。
VyOSの停止・再起動
VyOSの停止・再起動コマンドは、オペレーショナルモードで実行します。コンフィギュレーションモードにいる場合は、exitでオペレーショナルモードに戻ってから実行します。
VyOSの停止
VyOSを停止する場合、poweroffコマンドを使用します。
vyos@vyos:~$ poweroff
Are you sure you want to poweroff this system (vyos)? [y/N]yを入力してEnterを押すと、シャットダウン処理が開始されます。
VyOSの再起動
VyOSを再起動する場合、rebootコマンドを使用します。
vyos@vyos:~$ reboot
Are you sure you want to reboot this system (vyos)? [y/N]poweroffと同様に、yを入力してEnterを押すと再起動が開始されます。
その他、便利コマンド
オペレーショナルモードのコマンドをコンフィギュレーションモードで実行する
コンフィギュレーションモードにいる状態で、オペレーショナルモードのコマンドを実行する場合、runコマンドを使用します。
例えば、show versionコマンドはオペレーショナルモードでしか実行できません。しかし、コマンドの先頭にrunを付けることで、コンフィギュレーションモードを抜けることなく実行できます。
vyos@vyos# run show version
Version: VyOS 2026.06.10-0053-rolling
Release train: rolling
Release flavor: generic
Built by: autobuild@vyos.net
Built on: Wed 10 Jun 2026 00:53 UTC
Build UUID: c824595f-01ce-4f7e-b0ca-4d20bfad9abe
Build commit ID: 0b27f39ae61acc
Architecture: x86_64
Boot via: installed image
System type: KVM guest
Secure Boot: n/a (BIOS)
Hardware vendor: innotek GmbH
Hardware model: VirtualBox
Hardware S/N: VirtualBox-780c53ff-c22f-4a3b-9331-d4cfc67d5e7a
Hardware UUID: ff530c78-2fc2-3b4a-9331-d4cfc67d5e7a
Copyright: VyOS maintainers and contributors
[edit]
vyos@vyos#現在の設定内容を実行可能なコマンド形式で出力
show configuration commandsコマンドは、現在のVyOSの設定内容をそのまま再実行可能なコマンド形式で一覧表示します。設定のバックアップや、別の環境へ設定を移植する際に有用です。
vyos@vyos:~$ show configuration commands
set interfaces ethernet eth0 address '192.168.10.254/24'
set interfaces ethernet eth0 hw-id '08:00:27:df:20:20'
set interfaces ethernet eth0 offload gro
set interfaces ethernet eth0 offload gso
〜 省略 〜
set system option reboot-on-upgrade-failure '5'
set system syslog local facility all level 'info'
set system syslog local facility local7 level 'debug'
set system time-zone 'Asia/Tokyo'出力結果はすべてsetコマンド形式になっているため、コンフィギュレーションモードへ貼り付けるだけで同じ設定を再現できます。設定内容をツリー構造(階層形式)で出力することもできます。
| コマンド | 出力形式 | 用途 |
|---|---|---|
show configuration | ツリー構造(階層形式) | 設定全体を視覚的に把握する |
show configuration commands | setコマンド形式 | バックアップ・環境構築に使用する |
システムログを出力
show logコマンドを使用すると、VyOSのシステムログを確認できます。show logコマンドには多数のオプションが用意されていますので、トラブルシューティングの際はご活用ください。
vyos@vyos:~$ show log ?
Possible completions:
<Enter> Execute the current command
<1-9999> Show last number of messages in master logging buffer
all Show contents of all master log files
audit Show audit logs
authorization Show listing of authorization attempts
certbot Show log for certbot
cluster Show log for Cluster
conntrack Show log for conntrack events
conntrack-sync Show log for Conntrack-sync
console-server Show log for console server
container Show logs from a given container
dhcp Show log for Dynamic Host Control Protocol (DHCP)
dhcpv6 Show log for Dynamic Host Control Protocol IPv6 (DHCPv6)
dns Show log for Domain Name System (DNS) related services
firewall Show log for Firewall
flow-accounting Show log for flow-accounting
frr Show log for FRRouting suite
haproxy Show log for HAProxy
https Show log for HTTPs
igmp-proxy Show log for IGMP multicast proxy
image Show contents of master log file for image
ipoe-server Show log for IPoE server
ipsec Show log for IPsec
kernel Show log for Linux Kernel
l2tp Show log for L2TP
lldp Show log for Link Layer Discovery Protocol (LLDP)
macsec Show log for MACsec
mdns Show log for multicast Domain Name System related services
nat Show log for Network Address Translation (NAT)
ndp-proxy Show log for Neighbor Discovery Protocol (NDP) Proxy
network-event Show log for network events
ntp Show log for Network Time Protocol (NTP)
openconnect Show log for OpenConnect
openvpn Show log for OpenVPN
pppoe Show log for PPPoE interface
pppoe-server Show log for PPPoE server
pptp Show log for PPTP
protocol Show log for Routing Protocol
router-advert Show log for Router Advertisement Daemon (radvd)
snmp Show log for Simple Network Monitoring Protocol (SNMP)
spanning-tree Show log for Spanning Tree Protocol (STP)
ssh Show log for Secure Shell (SSH)
sstp Show log for Secure Socket Tunneling Protocol (SSTP) server
sstpc Show log for Secure Socket Tunneling Protocol (SSTP) client
tail Show given number of the latest log messages (default: 10)
vpn Show log for ALL Virtual Private Network services
vrrp Show log for Virtual Router Redundancy Protocol (VRRP)
vyos-configd Show log for VyOS configuration daemon
vyos-domain-resolver Show log for VyOS domain resolver daemon
webproxy Show log for Webproxy
wireless Show log for Wireless interfaceVyOSの初期設定
本記事のネットワーク構成では、VyOSが2つのネットワークセグメントを中継します。
- Kali Linux側ネットワーク:192.168.10.0/24
- Ubuntu Server側ネットワーク:192.168.20.0/24
初期状態の確認
まずは現在の状態を確認します。
ネットワークインターフェース
show interfacesコマンドは、VyOSに設定されているすべてのネットワークインターフェースを一覧表示します。
vyos@vyos:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address MAC VRF MTU S/L Description
----------- ------------ ----------------- ------- ----- ----- -------------
eth0 - 08:00:27:df:20:20 default 1500 u/u
eth1 - 08:00:27:1a:af:09 default 1500 u/u
lo 127.0.0.1/8 00:00:00:00:00:00 default 65536 u/u
::1/128上記はインストール直後のネットワークインターフェースの状態です。eth0およびeth1いずれにもIPアドレスが割り当てられていないことが確認できます。
MACアドレスを照合することで、VirtualBoxのネットワークアダプター1はeth0、ネットワークアダプター2はeth1として認識されていることが確認できます。
| インターフェース | MACアドレス | VirtualBoxのネットワークアダプターのMACアドレス |
|---|---|---|
| eth0 | 08:00:27:df:20:20 | アダプター1(080027DF2020) |
| eth1 | 08:00:27:1a:af:09 | アダプター2(0800271AAF09) |
システム日時・タイムゾーン
show host dateコマンドは、現在のシステム日時を表示します。
vyos@vyos:~$ show host date
Fri Jun 19 06:37:59 AM UTC 2026タイムゾーンのデフォルト設定が、UTC(協定世界時)であることを確認できます。
SSHサービス
SSHサービスを有効化すると、Kali LinuxやWindowsのターミナルからVyOSへリモートログインできるようになります。現在の状態を確認するには、以下のコマンドを実行します。
vyos@vyos:~$ show configuration commands | match ssh
(出力なし)show configuration commands は、現在VyOSに適用されているすべての設定をsetコマンドで出力します。| match sshを付加することで、SSHに関連する設定のみをフィルタリングして表示できます。
初期状態では、SSHサービスは設定されていません。
設定変更
初期状態の確認が完了したら、以下の設定を変更していきます。
- IPアドレス
- タイムゾーン
- SSHサービス有効化
コンフィギュレーションモードに移行
VyOSにログインした状態は、オペレーショナルモードです。設定を変更するには、configureコマンドでコンフィギュレーションモードに移行します。
vyos@vyos:~$ configure
[edit]
vyos@vyos#コンフィギュレーションモードに移行すると、プロンプトの末尾が#に切り替わります。
IPアドレス設定(アダプター1)
まず、Kali Linux側のネットワークに接続するeth0に192.168.10.254/24を設定します。
vyos@vyos# set interfaces ethernet eth0 address '192.168.10.254/24'Kali Linuxが所属するネットワーク(192.168.10.0/24)のゲートウェイとして使用します。
IPアドレス設定(アダプター2)
次に、Ubuntu Server側のネットワークに接続するeth1に192.168.20.254/24を設定します。
vyos@vyos# set interfaces ethernet eth1 address '192.168.20.254/24'Ubuntu Serverが所属するネットワーク(192.168.20.0/24)のゲートウェイとして使用します。
この時点ではまだ設定を入力しただけです。実際に反映するには、後述するcommitが必要です。
タイムゾーン
続いて、タイムゾーンを日本標準時に変更します。
vyos@vyos# set system time-zone 'Asia/Tokyo'タイムゾーンが適切に設定されていない場合、ログのタイムスタンプが正確に記録されません。その結果、インシデント発生時の原因調査や関連ログの突合に支障をきたす恐れがあります。
設定可能なタイムゾーンは、以下のコマンドで確認できます。
vyos@vyos# set system time-zone ?
〜 省略 〜
Asia/Thimbu
Asia/Thimphu
Asia/Tokyo
Asia/Tomsk
Asia/Ujung_Pandang
〜 省略 〜SSHサービス有効化
VyOSへSSH接続できるようにするため、SSHサービスを有効化します。
例)デフォルトポート(22番)を使用する場合
vyos@vyos# set service ssh
例)ポート番号を指定する場合
vyos@vyos# set service ssh port <ポート番号>SSHサービスを有効化すると、Kali LinuxやWindows側のSSHクライアントからVyOSへリモート接続できるようになります。
現在の設定と変更内容の差分確認
commitを実行する前に、compareコマンドで現在の設定と変更内容の差分を確認します。
vyos@vyos# compare
[interfaces ethernet eth0]
+ address "192.168.10.254/24"
[interfaces ethernet eth1]
+ address "192.168.20.254/24"
[service]
+ ssh {
+ }
[system]
+ time-zone "Asia/Tokyo"意図した設定内容と一致していることを確認してから、次のステップへ進んでください。
変更内容の適用・保存
差分の確認が完了したら、commitで設定を適用します。
vyos@vyos# commitcommitを実行すると、現在の動作に設定変更が反映されますが、再起動すると失われます。設定を永続化するには、続けてsaveを実行します。
vyos@vyos# savesaveを実行すると、設定が/config/config.bootに書き込まれ、再起動後も維持されます。
コンフィギュレーションモードを終了する
設定変更が完了したら、exitでコンフィギュレーションモードを終了し、オペレーショナルモードへ戻ります。
vyos@vyos# exit
exit
vyos@vyos:~$次のセクションでは、設定変更後の結果を検証し、各インターフェースに正しくIPアドレスが割り当てられているか確認します。
設定変更後の結果確認
VyOSの初期設定が完了したら、設定内容が正しく反映されているかを確認します。
設定内容が正しく適用されていることを確実に確認するため、VyOSを再起動したうえで確認コマンドを実行することを推奨します。
vyos@vyos:~$ rebootネットワークインターフェース
vyos@vyos:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address MAC VRF MTU S/L Description
----------- ----------------- ----------------- ------- ----- ----- -------------
eth0 192.168.10.254/24 08:00:27:df:20:20 default 1500 u/u
eth1 192.168.20.254/24 08:00:27:1a:af:09 default 1500 u/u
lo 127.0.0.1/8 00:00:00:00:00:00 default 65536 u/u
::1/128eth0とeth1に正しいIPアドレスが設定されているか、確認します。
システム日時・タイムゾーン
vyos@vyos:~$ show host date
Fri Jun 19 04:01:57 PM JST 2026タイムゾーンがUTC(協定世界時)からJST(日本標準時)に切り替わっていることを確認します。
SSHサービス
vyos@vyos:~$ show configuration commands | match ssh
set service sshSSHサービスがデフォルトポート(22番)で有効化されていることが確認できます。
ルーティング設定
Kali LinuxとUbuntu Serverは、それぞれ異なるネットワークセグメントに配置されています。
| 役割 | 仮想マシン | インターフェース | IPアドレス | 所属ネットワーク |
|---|---|---|---|---|
| 送信元 | Kali Linux | eth0 | 192.168.10.11/24 | 192.168.10.0/24 |
| 中継 | VyOS | eth0 | 192.168.10.254/24 | 192.168.10.0/24 |
| 中継 | VyOS | eth1 | 192.168.20.254/24 | 192.168.20.0/24 |
| 送信先 | Ubuntu Server | enp0s8 | 192.168.20.106/24 | 192.168.20.0/24 |
セグメント間通信を行うためには、送信元から送信先への往路だけでなく、送信先から送信元への復路も設定する必要があります。
| 往路 | Kali Linux側に「192.168.20.0/24宛ての通信はVyOSのeth0(192.168.10.254)へ送る」という経路情報が必要 |
|---|---|
| 復路 | Ubuntu Server側にも「192.168.10.0/24宛ての通信はVyOSのeth1(192.168.20.254)へ送る」という経路情報が必要 |
Kali Linux(接続元マシン)
Kali Linuxで一時的にルーティングを追加するだけであれば、ip route addコマンドで設定できます。
$ sudo ip route add 192.168.20.0/24 via 192.168.10.254ただし、この方法で追加したルーティング情報は、Kali Linuxを再起動するたびに失われます。本セクションでは、再起動後も設定が維持される永続的な設定方法について解説します。
現在のルーティングテーブルを確認
変更後のルーティングテーブルと比較するため、まず現在のルーティングテーブルを確認します。
$ ip route
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.11現在の通信状況を確認
$ traceroute 192.168.20.106
traceroute to 192.168.20.106 (192.168.20.106), 30 hops max, 60 byte packets
connect: ネットワークに届きません接続先マシン(Ubuntu Server)は異なるネットワークセグメントにあるため、通信が確立できません。
NATのネットワークアダプターが有効な場合、NAT経由で他セグメントとの通信が可能になります。
NATが有効な場合
$ traceroute 192.168.20.106
traceroute to 192.168.20.106 (192.168.20.106), 30 hops max, 60 byte packets
1 10.0.3.2 (10.0.3.2) 0.716 ms 0.678 ms 0.668 ms
2 10.0.3.2 (10.0.3.2) 5.286 ms 5.277 ms 5.268 msそのため、本記事の検証環境ではNATを無効にしています。(ホストオンリーアダプターのみ有効)
/etc/network/interfacesファイルを編集
当サイトの検証環境では、Kali Linuxのネットワーク設定を/etc/network/interfacesファイルで管理しています。そのため、スタティックルートも同ファイルに追加します。編集後の内容は、以下のとおりです。
編集後のinterfacesファイル(eth0の設定のみ抜粋)
auto eth0
iface eth0 inet static
address 192.168.10.11
netmask 255.255.255.0
post-up ip route add 192.168.20.0/24 via 192.168.10.254 ← 追加
pre-down ip route del 192.168.20.0/24 via 192.168.10.254 ← 追加post-up:NICが起動した後に実行pre-down:NICが停止する前に実行ip route add:ルーティングの追加ip route del:ルーティングの削除192.168.20.0/24:宛先ネットワークvia 192.168.10.254:次の転送先(ゲートウェイ)
ネットワークインターフェースを再起動
/etc/network/interfacesにスタティックルートを追加後、設定を適用するためにeth0を再起動します。
$ sudo ifdown eth0 && sudo ifup eth0ルーティングテーブルの確認
192.168.20.0/24宛てのルートが追加されていることを確認します。
$ ip route
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.11
192.168.20.0/24 via 192.168.10.254 dev eth0192.168.20.0/24 via 192.168.10.254 dev eth0が表示されていれば、Kali Linuxは192.168.20.0/24宛ての通信をVyOS(192.168.10.254)に転送します。
192.168.20.0/24:宛先ネットワークvia 192.168.10.254:次の転送先(ゲートウェイ)dev eth0:使用するネットワークインターフェース
Ubuntu Server(接続先マシン)
Ubuntu Serverにおけるルーティング設定は、Netplanの設定ファイルに記述することで永続化できます。Netplanとは、Ubuntu 17.10以降で採用されたネットワーク設定の管理ツールで、YAMLファイルに設定を定義します。
現在のルーティングテーブルを確認
設定変更前のルーティングテーブルを確認します。(enp0s8のみ抜粋)
$ ip route | grep enp0s8
default via 192.168.20.1 dev enp0s8 proto static
192.168.20.0/24 dev enp0s8 proto kernel scope link src 192.168.20.106Netplanの設定ファイルを編集する
Netplanの設定ファイルにスタティックルートを追加します。設定ファイル名は環境によって異なり、本記事の検証環境の場合、/etc/netplan/00-installer-config.yamlです。
編集後の設定ファイル(enp0s8の設定のみ抜粋)
enp0s8:
accept-ra: true
addresses:
- 192.168.20.106/24
nameservers:
addresses: []
search: []
routes:
- to: default
via: 192.168.20.1
- to: 192.168.10.0/24 ← 追加
via: 192.168.20.254 ← 追加- to: 192.168.10.0/24:宛先ネットワークvia: 192.168.20.254:次の転送先(ゲートウェイ)
この設定では、Ubuntu Serverから192.168.10.0/24宛ての通信を、VyOSの192.168.20.254に転送するよう指定しています。
変更内容を適用する
設定ファイルを編集したら、netplan tryコマンドを実行します。
$ sudo netplan try
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 120 secondsnetplan tryコマンドは、設定を一時的に適用して問題がないか確認できるコマンドです。設定を一時的に反映し、120秒以内にEnterキーを押下しなければ自動的にロールバックされる仕組みになっています。問題がなければ、プロンプトに従いEnterキーを押して設定を確定します。
# Enterキーを押下した場合
Configuration accepted.
# キャンセル(ロールバック)した場合
Reverting.ルーティングテーブルの確認
設定内容が適切に反映されているかを、ip routeコマンドで確認します。
$ ip route | grep enp0s8
default via 192.168.20.1 dev enp0s8 proto static
192.168.10.0/24 via 192.168.20.254 dev enp0s8 proto static
192.168.20.0/24 dev enp0s8 proto kernel scope link src 192.168.20.106192.168.10.0/24 via 192.168.20.254 dev enp0s8 proto staticが表示されていれば、192.168.10.0/24宛てのパケットをVyOS(192.168.20.254)へ転送するルートが正常に設定されています。
192.168.10.0/24:宛先ネットワークvia 192.168.20.254:次の転送先(ゲートウェイ)dev enp0s8:使用するネットワークインターフェースproto static:スタティックルート
VyOS(仮想ルーター)
最後にVyOSのルーティング設定です。今回の構成では、VyOSは次の2つのネットワークに直接接続しています。
| インターフェース | IPアドレス | 接続先ネットワーク |
|---|---|---|
| eth0 | 192.168.10.254/24 | Kali Linux側(192.168.10.0/24) |
| eth1 | 192.168.20.254/24 | Ubuntu Server側(192.168.20.0/24) |
この2つのネットワーク間の通信に限れば、VyOSにスタティックルートを追加する必要はありません。
VyOSはDebian GNU/LinuxをベースとしたネットワークOSで、標準機能としてインターフェース間のIPv4パケット転送に対応しています。本記事の検証環境では、VyOSが192.168.10.0/24および192.168.20.0/24の両ネットワークに直接接続しています。そのため、これらのネットワークは接続済みネットワークとして認識され、対応する経路が自動的にルーティングテーブルへ登録されます。
オペレーショナルモードでshow ip routeコマンドを実行すると、VyOSのルーティングテーブルを確認できます。
vyos@vyos:~$ show ip route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 192.168.10.0/24 is directly connected, eth0, weight 1, 01:39:45
L>* 192.168.10.254/32 is directly connected, eth0, weight 1, 01:39:45
C>* 192.168.20.0/24 is directly connected, eth1, weight 1, 01:39:45
L>* 192.168.20.254/32 is directly connected, eth1, weight 1, 01:39:45- C(Connected):インターフェースに直接接続されているネットワーク
- L(Local):インターフェースに設定されたIPアドレス(ルーター自身のIPアドレス)
192.168.10.0/24がeth0に、192.168.20.0/24がeth1にそれぞれ直接接続されていることが確認できます。そのため、VyOS側でスタティックルートを追加しなくても、Kali Linux側ネットワークとUbuntu Server側ネットワークの間でルーティングが可能です。
通信テスト
ルーティングの設定が完了したら、いよいよKali LinuxとUbuntu ServerがVyOS経由で通信できるかを確認します。確認にはtracerouteコマンドを使用します。pingと異なり、tracerouteはパケットが経由するホップ(中継点)を可視化できるため、VyOSがルーターとして正しく機能しているかを明確に検証できます。
Kali LinuxからUbuntu Serverに向けてtracerouteを実行した結果は、以下のとおりです。
Kali Linux(192.168.10.11)のターミナルで実行
$ traceroute 192.168.20.106
traceroute to 192.168.20.106 (192.168.20.106), 30 hops max, 60 byte packets
1 192.168.10.254 (192.168.10.254) 0.648 ms 0.617 ms 0.604 ms
2 192.168.20.106 (192.168.20.106) 0.592 ms 0.521 ms 0.503 ms1ホップ目でVyOSのeth0インターフェース(192.168.10.254)を経由し、2ホップ目でUbuntu Server(192.168.20.106)に到達していることが確認できます。
以上の検証により、Kali Linux(192.168.10.11/24)とUbuntu Server(192.168.20.106/24)がVyOSを介して通信できることが確認できました。
まとめ
本記事では、VirtualBox上にVyOSをインストールし、Kali LinuxとUbuntu ServerをVyOS経由で通信させる手順を解説しました。
VyOSはDebian GNU/LinuxベースのオープンソースのネットワークOSです。エンタープライズ向けネットワーク機器と同等の機能(ルーティング、ファイアウォール、VPNなど)を無償で利用できる点が大きな特徴です。Vyattaのコミュニティフォークとして2013年に誕生し、現在も継続的に開発が進められています。
ネットワーク機器の設定管理に近い操作体系を採用しており、オペレーショナルモードとコンフィギュレーションモードを切り替えて操作します。設定変更はconfigure→set→commit→saveの流れが基本で、saveを忘れると再起動時に設定が消える点は特に注意が必要です。
