LAN設定の切替え

ノートパソコンを使用していて,ネットに繋ぐ形態が,研究室では固定IPアドレス,自宅ではルータを使ってDHCPの動的割り当て,というものだったとします.こんなとき,毎回々々LANの設定をし直していたのではちょっと大変です.僕は以前こういう状況でしたので,簡単なスクリプトをつくって対処していました.

mynet

早速ですがスクリプト本体です.mynetという当たり障りのない名前にしています.多分動くと思いますが,使用する場合は自己責任でお願いします.

ダウンロード

使用方法

まず,同梱の設定ファイルに設定を書き込んでください.各ファイルに簡単な説明を書いていますので,それを参照してください.つぎに,mynetディレクトリごと/usr/localに置きます. mynetディレクトリにあるmynetというスクリプト(実行ファイル)は /usr/local/binなどにシンボリックリンクを張ります.実行にはroot権限が必要です.研究室(固定IP)用にネットワークを設定するには

# mynet lab

とし,家(DHCP)用にネットワークを設定するには

# mynet home

とします.ネットワークの再起動もスクリプトの方で行うようにしています.

スクリプトの説明

スクリプト本体の説明です.難しいことはしていません.

#!/bin/sh

test -z "$1" && echo "Usage: mynet <'lab' or 'home'>" && exit

# 設定ファイルの置き場所
DIR=/usr/local/mynet

if [ $1 = "home" ]; then
    cp $DIR/network-home /etc/sysconfig/network
    cp $DIR/ifcfg-eth0-home /etc/sysconfig/network-scripts/ifcfg-eth0
    echo "Set network for home (dhcp)"
elif [ $1 = "lab" ]; then
    cp $DIR/resolv.conf-lab /etc/resolv.conf
    cp $DIR/network-lab /etc/sysconfig/network
    cp $DIR/ifcfg-eth0-lab /etc/sysconfig/network-scripts/ifcfg-eth0
    echo "Set network for laboratory"
else
    echo "Unknown parameter '$1', exit"
    exit
fi

/etc/rc.d/init.d/network restart
/sbin/ifup eth0

test -z で第1引数をチェックしています.第1引数がlabかhome以外ならばエラーメッセージを吐いて終了します.シェル変数DIRには設定ファイルを置いている場所をセットしています. mynetディレクトリを/usr/local以外の場所に置く場合はここを書き換えてください.

if文では引数がlabかhomeかに応じて,それ用の設定ファイルを本来の設定ファイルにコピーしています. NICのエイリアスがeth0でない場合は,環境にあわせて該当部分を書き換えてください. DHCPの場合は/etc/resolv.confが自動的に書き換えられるので,あらかじめファイルを準備しておく必要はありません.

設定ファイルをコピーしたあと,ネットワークを再起動し(/etc/rc.d/init.d/network restart), NICを有効にしています(/sbin/ifup eth0).

Valid XHTML 1.1! home > コンピュータ > Linux >
リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.2.17HTML convert time to 0.036 sec.