OpenWrtなどの組み込みLinux環境では、設定管理ツールとしてuci
(Unified Configuration Interface)がよく使用されます。uci
はシステム設定の管理と読み出しを簡略化するためのコマンドで、設定は通常/etc/config
ディレクトリ内に保存されています。各ファイルは個別の設定カテゴリに対応しており、ネットワーク設定は/etc/config/network
、システム設定は/etc/config/system
に記録されています。
OpenWrtルータのホスト名は、通常/etc/config/system
ファイルに以下のように設定されます。
config system
option hostname 'GL-A1300'
この設定により、ルータの全体的なホスト名がGL-A1300
に設定されます。また、インターフェースごとに異なるホスト名を設定する場合は、/etc/config/network
ファイル内で以下のように記述します。
config interface 'lan'
option hostname 'GL-MT1300-fd6'
config interface 'wan'
option hostname 'GL-MT1300-fd6'
ホスト名を確認する方法として、一般的なLinuxコマンドであるhostname
がOpenWrt環境に存在しない場合が多いため、以下の代替コマンドが使用されます。
-
uname -n
uname
コマンドはシステム情報を表示するコマンドで、-n
オプションでホスト名を取得します。uname -n
-
cat /proc/sys/kernel/hostname
/proc/sys/kernel/hostname
ファイルには現在のホスト名が保存されています。cat
コマンドを使用して内容を表示することでホスト名が確認できます。cat /proc/sys/kernel/hostname
-
uci get
コマンド
uci
を使用して、設定されているホスト名を直接取得することもできます。uci get system.@system[0].hostname
多くのLinuxディストリビューションに含まれるhostname
コマンドやuname -n
は、内部でgethostname
システムコールを使用してホスト名を取得しています。gethostname
は、システムのカーネルが保持している現在のホスト名を取得するシステムコールであり、以下のプロトタイプを持ちます。
int gethostname(char *name, size_t len);
このシステムコールを呼び出すことで、ホスト名がname
のバッファに格納されます。