[arm版Debian12]IPアドレス固定設定シェルスクリプト

毎回、手動でIPアドレスを固定するのがめんどいのでシェルスクリプト化してみました。
シェルスクリプトをコピーペースト後、[#### 環境に合わせて修正ここから ####]から[#### 環境に合わせて修正ここまで ####]を、各々の環境に修正してから実行して下さい。

[arm版Debian12]IPアドレス固定設定シェルスクリプト
#!/bin/bash

# Debian12 固定ipアドレスシェルスクリプト
# 令和7年6月24日(火)作成

#### このシェルスクリプトの使い方 ####
# ipアドレスを固定したいDebian12のターミナルで、このスクリプトを作成し、実行して下さい。
# 1 シェルスクリプト新規作成	nano ip_static.sh
# 2 シェルスクリプトコピーペースト
# 3 環境に合わせて修正
# 4 シェルスクリプト実行権限付与 	sudo chmod +x ip_static.sh
# 5 シェルスクリプト実行		./ip_static.sh

#### 環境に合わせて修正ここから ####
# 割り振る固定ipアドレス
STATIC_IP="192.168.0.158"
# gatewayアドレス
GATEWAY_IP="192.168.0.1"
# dnsアドレス
DNS01_IP="192.168.0.1"
# ブロードキャストアドレス
BRODCAST_IP="192.168.0.255"
# ネットワークアドレス        
NETWORK_IP="192.168.0.0"        
NIC_NAME=""
#### 環境に合わせて修正ここまで ####

### 処理開始 ###
cd

# NIC名取得
NIC_NAMES=$(for DEV in `find /sys/devices -name net | grep -v virtual`; do ls $DEV/; done)
#echo $NIC_NAMES
NIC_ARR=($NIC_NAMES)
#echo ${NIC_ARR[@]}

# NIC一覧表示
select nic_names in ${NIC_ARR[@]}
do
	if [ "$nic_names" ]; then
                NIC_NAME=$nic_names
	        echo "<--$NIC_NAME has been selected.-->"
                break
	fi
        echo "<--SELECT NIC-->"

done

# 固定ipアドレス設定ファイル作成 ファイル名:static
cat << EOT > static
allow-hotplug $NIC_NAME
iface $NIC_NAME inet static
        address        $STATIC_IP/24
        gateway        $GATEWAY_IP
        broadcast      $BRODCAST_IP
        network        $NETWORK_IP
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers $DNS01_IP
EOT

# staticを/etc/network/interfaces.d/へ移動
sudo mv static /etc/network/interfaces.d/

echo "=================================================="
echo "static IP: $STATIC_IP"
echo "ssh connection command: ssh $USER@$STATIC_IP"
echo "=================================================="

# system再起動
echo "system reboot"
sudo reboot

### 処理終了 ###
タイトルとURLをコピーしました