Ubuntu 24.04.1LTS で固定アドレスを設定する簡易スクリプト
以前に Ubuntu 20.10 で固定アドレスを設定する簡易スクリプト というメモを書きました。 内容的には大差無いのですが、「Ubuntu で固定アドレスを設定するスクリプト」の修正版をメモしておきます。 と言っても、あまり真面目に作っていないのですが…
実行例
IP アドレスとゲートウェイを指定する
- IP アドレスは
10.0.0.1/24
- ゲートウェイは
10.0.0.254
この場合の実行例は下記です。
chaddr -a 10.0.0.1/24 -g 10.0.0.254
IP アドレス / ゲートウェイ / DNS インターフェイス名を指定する
- IP アドレスは
10.0.0.1/24
- ゲートウェイは
10.0.0.254
- インターフェイス名は
ens192
- DNS は
8.8.8.8
と 8.8.4.4
この場合の実行例は下記です。
chaddr -a 10.0.0.1/24 -g 10.0.0.254 -i ens192 -d 8.8.8.8 8.8.4.4
インターフェイス名を省略した場合のデフォルト値は ens160
、DNS を領略した場合のデフォルト値は 1.1.1.1
と 1.0.0.1
です。
スクリプト
例えば下記のスクリプトを /usr/local/bin/chaddr
等のように保存し、chmod 755 /usr/local/bin/chaddr
を実行して実行権限を付与します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 | #!/usr/bin/env python3
import argparse
import subprocess
DEFAULT_DNS = ["1.1.1.1", "1.0.0.1"]
DEFAULT_INTERFACE = "ens160"
parser = argparse.ArgumentParser()
parser.add_argument("-a", "--address", type=str, required=True)
parser.add_argument("-g", "--gateway", type=str, required=True)
parser.add_argument("-d", "--dns", nargs="*", default=DEFAULT_DNS)
parser.add_argument("-i", "--interface", type=str, default=DEFAULT_INTERFACE)
args = parser.parse_args()
address = args.address
gateway = args.gateway
dns = args.dns
intf = args.interface
hostname = address[0 : address.index("/")].replace(".", "-")
subprocess.call("hostnamectl set-hostname " + hostname, shell=True)
netplan = f"""network:
version: 2
ethernets:
{intf}:
addresses:
- {address}
routes:
- to: default
via: {gateway}
dhcp4: false
nameservers:
addresses:
"""
for _ in dns:
netplan += f" - {_}\n"
with open("/etc/netplan/99_config.yaml", "w") as f:
f.write(netplan)
hosts = f"""
127.0.0.1 localhost {hostname}
127.0.1.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet {hostname}
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
"""
with open("/etc/hosts", "w") as f:
f.write(hosts)
|