Linux共通

LinuxのIPアドレスを設定する方法について解説!手を動かして覚えよう!

みなさんこんばんわ、mitsuです。今回はIPアドレスの設定方法について紹介していきたいと思います。

Linuxディストリビューションによって設定方法が変わったりするので是非覚えていきましょう!

本記事でわかること

本記事では下記のようなことがわかります。

・ubuntu20.04とcentos8.4のIPアドレス設定方法がわかります。

・コマンド、GUI、設定ファイルでの設定方法がわかります。

・実行例を交えて設定するので、 やるべきことが明確です。

そのため手軽に変更してみたいという方はぜひ最後まで見ていってください!

それでは以下紹介していきます。

IPアドレスとは

ネットワーク上機器同士の所在を明らかにするためのアドレスです。これをIPアドレスと呼ばれます。

設定方法

設定方法は多岐にわたりますが、今回の記事では「コマンド」「GUI操作」「設定ファイル」の3つをお送りします。

今回はubuntu20.04とcentos8.4での実行例を紹介していきます。

それではまずコマンドから紹介していきます。

ifconfig

ネットワーク環境の確認と設定を行うコマンドです。

今ではメインで使用が推奨されていないため、最新版のLinux等ではインストールされていません。

ifconfigインストールされていない場合

必要であればインストールする必要があります。OSによりパッケージ管理システムが違うためコマンドが変わります。

下記がコマンドになります。

ubuntu20

ubuntuの場合apt-getパッケージシステムを利用し、下記コマンドを入力します。

$apt-get install net-tools

centos8

centosではyumパッケージシステムを利用し下記コマンドを入力します。

$yum install net-tools

書式

書式は下記となります。

$ifconfig [オプション] [インタフェース] 操作オプション

オプション

操作オプション
オプション 説明
up インタフェースを起動します
down インタフェースを停止します
add インタフェースにIPアドレスを追加します
del インタフェースからIPアドレスを削除します
metric 値 インタフェースのメトリック値を設定します
mtu 値 インタフェースの最大転送単位(MTU)を設定します
netmask アドレス インタフェースのネットマスクを設定します
tunnel アドレス IPv6 over IPv4トンネルを作成します
hw ether アドレス MACアドレスを設定します
確認オプション
-a  停止(down)しているものを含め、全てのインタフェースを表示します
-s インタフェースの通信状況を簡潔に表示します

実行例

オプションが多数存在しますが、IPアドレス変更に関わる箇所を抜粋して紹介していきます。

表示結果の見方

項目 項目意味 説明
ens33 インターフェース名 インターフェースの名称です。
flags インターフェースの状態 インターフェースの状態フラグです。
4163 フラグの数値表示 括弧の中の状態フラグを数値化したものです。
UP インターフェースの起動状態 インターフェイスの起動状態です。
BROADCAST ブロードキャストの状態 インターフェースがブロードキャストを利用できるときに表示されます。
RUNNING 転送の状態 システムがパケットをインターフェース経由で転送しているかによって表示されます。
MULTICAST マルチキャストの状態 インタフェースがマルチキャスト転送を利用できるかによって表示されます。
mtu 1500 最大転送単位 送信最大値(Maximum Transmission Unit)です。
Metric メトリック値(送信先までの経路の距離を表す指標) メトリック値(送信先までの経路の距離を表す指標)です。
RX packets:
errors:
dropped:
overruns:
packets:受信パケット数です。
errors:エラーパケット数です。
dropped:破棄したパケット数です。
overruns:処理が遅延したパケット数です。
TX 送信パケット数 送信パケット数です。
 carrier キャリア数 キャリア数です。
collisions 衝突が発生した回数 衝突が発生した回数です。

ipアドレス設定

IPアドレスを「192.168.1.2」に変更します。

linux-command-ifconfig-ip

IPアドレス追加

「192.168.1.1」と「192.168.1.2」のアドレスを「ens」のインターフェイスに追加しています。

linux-command-ifconfig-add

IPアドレス削除

「192.168.1.1」と「192.168.1.2」のアドレスを「ens」から削除しています。

linx-commnad-ifconfig-del

このような入力で簡単に設定できます。

ip

ネットワークデバイスのネットワーク設定情報の確認とsystemdを操作するコマンドで、サービスの起動や停止、状態確認などを行うことが出来ます。

従来は、ifconfigコマンドやnetstatコマンド、routeコマンドなど、net-toolsパッケージに収録されているコマンド群を使用していました。現在は、いずれもipコマンドへの移行が進んでおります。

書式

書式は以下になります。

$ip [オプション] オブジェクト [サブコマンド]

オブジェクト

オブジェクト 別名 説明
link l ネットワークデバイス
addr a,address ネットワークデバイスのIPアドレス
addrlabel addrl アドレスラベル
route r ルーティングテーブルのエントリー
rule rul ルーティングポリシーデータベースに登録されているルール
neigh n,neighbour 近傍キャッシュエントリ
ntable nt,ntb 近傍キャッシュの管理テーブル
tunnel t IPトンネル
tuntap tu トンネルデバイス
maddr m,ma,mad マルチキャストアドレス
mroute mr マルチキャストルーティングのキャッシュエントリ
mrule mru マルチキャストルーティングポリシーデータベースに登録されているルール
monitor mon ネットリンクメッセージの監視
 xfrm x,xf IPsecポリシー
netns net ネットワーク名前空間
l2tp l2 l2TPv3(レイヤー2トンネリングプロトコル)
tcp_metrics tcp_m,top_metrics,tcpm TCPメトリック
token tok トークン

オプション

オプション 説明
-f プロトコル 使用するプロトコルファミリーをinet,inet6,bridge,ipx,dnet,linkから指定します。
-4 ipv4を使用
-6 ipv6を使用
-B ブリッジを使用
-D DECnetを使用
-I IPXを使用
-0 データリンクプロトコルを使用
-I 回数 「ip addr flush」の試行回数
 -b ファイル ファイルからコマンドを読み込む
-force  バッチモード、エラーで停止しない
 -s -stalts,-statistics 情報を詳しく表示します。
-o (-oneline) 出力を1行にする(改行が”¥”に置き換えられる)
-r(--resolve) アドレスの代わりにDNS名を表示する

サブコマンド

サブコマンド 説明
add 指定したIPアドレスを付加します
change 指定したIPアドレスの設定を変更します
replace 指定したIPアドレスの設定を書き換えます
del 指定したIPアドレスを削除します
list,show 設定されているIPアドレスを表示します(デフォルト)
save 設定を保存します(バイナリで出力されるのでリダイレクトで保存する)
flush デバイスに設定されているすべてのIPアドレスを消去します

実行例

IPアドレスの設定方法について抜粋して紹介します。

ネットワークデバイスにIPアドレスを追加したい場合は「add」を使い、「ip addr add IPアドレス dev デバイス名」とします。IPアドレスを削除するときは、「del」を使って同様に「ip addr del IPアドレス dev デバイス名」と指定します。

IPアドレスの追加

インターフェイスである「ens33」に対してipアドレス「192.168.1.1」と「192.168.1.2」を追加しています。

linux-command-ip-addr-add

IPアドレスの削除

インターフェイスである「ens33」に対してipアドレス「192.168.1.1」と「192.168.1.2」を削除しています。

linux-command-ip-add-del

nmcli

nmtuiと同様にNMと通信を行いネットワークの設定を行うツールです。nmcliは、NetworkManagerの機能にコマンドラインからアクセスできます。

書式

書式は以下になります。

$nmcli [オプション] オブジェクト

オプション

オプション 説明
-f 簡潔な形式で出力する
-p 読みやすい形式で出力する
-m 出力モードを変更する
-f 出力フィールドを指定する
-e コラムセバレーターをエスケープする
-n NetworkManager及びnmcliのバージョンチェックを行わない
-a パラメータが足りない場合問い合わせる
-w 動作完了までのタイムアウトを設定する

オブジェクト

オブジェクト 各オブジェクトの説明 説明
connection NetworkManagerの接続状況
show NetworkManagerの接続状況を表示する
up(down) 指定した回線を有効化(無効化)する
add 新しいネットワークデバイスを追加する
edit 既存のネットワークデバイスを編集する(インタラクティブ)
modify 既存のネットワークデバイスを編集する
delete 既存のネットワークデバイスを削除する
reload すべての接続をディスクから読み直す
load ファイルから接続設定を読み取る
device NetworkManagerで管理しているデバイス
 status ネットワークバイスの状態を表示する
show ネットワークデバイスの詳細情報を表示する
connect ネットワークデバイスを接続する
disconnect ネットワークデバイスの接続を解除する
wifi 有効なwifiアクセスポイントを一覧する
wimax WIMAXの接続事業者を一覧する
general NetworkManagerの全般的な状態と動作
 status NetworkManagerの設定項目をすべて表示する
 hostname ホスト名を表示する/設定する
permissions NetworkManagerの各種スイッチを表示する
logging ログを表示/取得範囲を設定する
networking ネットワーク制御に関する全般
 on(off) 指定した海鮮を有効化(無効化)する
connectivity 接続ステータスを表示する
radio NetworkManagerラジオスイッチ
 all radioオブジェクトの全スイッチの状況を表示する
wifi NetworkManagerが管理する無線LANの項目を表示する/設定する
wwan モバイルブロードバンド海鮮をオン/オフする
wimax WIMAX回線をオン/オフする

実行例

ネットワークデバイス情報の確認

「nmcli con」でネットワークデバイスである「ens33」の情報を表示してくれます。

NAME UUID TYPE DEVICE
ens33 d31c794a-3188-4574-9ec4-0d56fa904432 ethernet enp0s3
mitsu@mitsu:~$

※ネットワークデバイス名は環境により変わります。

IPアドレス変更

変更にあたり必要なコマンドを下記に記載します。IPアドレスを「192.168.1.5」に変更しています。

#IPアドレスを手動で設定するようにします。

nmcli con mod ens33 ipv4.method manual

#IPアドレスを「192.168.1.5」に設定します

nmcli con mod ens33 ipv4.addresses 192.168.1.5/24

#設定情報を設定ファイルにロードします。

nmcli con reload

#設定ファイルの情報をもとにネットワークデバイスを停止して、その後起動します。

nmcli con down ens33 && nmcli con up ens33

linux-command-nmcli con ipv4.addresses

nmcli con show

現状のネットワークデバイスである「ens33」の各種設定情報を詳細に表示してくれます。

linux-command-nmcli con show ens33

nmtui

Network Managerと通信を行い、GUIでネットワークを設定・管理するサービスです。今回はIPアドレスの設定を行います。

利用しやすいので、ぜひ覚えておきたいコマンドです。

DHCPによる自動割当の設定

それでは紹介していきます。

端末を起動し、nmtuiを入力します。

linux-comnad-mntui

接続の編集を選択して、Enterを押します。

linux-command-nmtui-2

環境によりそれぞれですが、「Ethernet 接続 1」というインターフェイス名を選択して、「編集」を選択してEnterを押します。

linux-command-nmtui-3

デフォルトのIPv4のIPアドレスは「自動」になっています。IPアドレスを固定化する必要がない場合はこのままで問題ないです。

linux-command-nmtui-4

他に設定する必要がない場合はOKを選択してnmtuiを終了します。その後再起動すると設定が反映されています。

linux-command-nmtui-5

IPアドレスの固定

以下の内容では、固定のIPアドレスを設定する手順を紹介します。

右端にある「<表示する>」を選択します。

linux-command-nmtui-4

すると、IPアドレスやDNSサーバなどのネットワークの接続に必要な入力欄が出てきます。今回はIPアドレスとして「192.168.0.1」をアドレスに記載しています。

linux-command-nmtui-6

そして、OKを選択してnmtuiを終了します。その後再起動すると設定が反映されています。

linux-command-nmtui-7

GUIでIPアドレスを変更

ここではコマンドではなく、マウスカーソルの操作でIPアドレスの変更をしていきます。

ubuntu

電源ボタンの右にある三角マークをクリックします。そうすると以下のような画面が出てきます。そこで、「Wired Connected」を選択します。

linux-gui

 

Wiredのプラスマークの下の歯車ボタンをクリックします。

linux-gui2

そうする設定画面が出てきます。IPv4をクリックしてせってしていきます。

 

linux-gui3

固定化の場合はManualを選択して、IPアドレスを入力します。DHCP(自動割当)を希望の場合はAutomatic(DHCP)を選択して右上のApplyをクリックします。設定画面を閉じて再起動をします。その後IPアドレスが変わっています。

linux-gui4

centos8

電源ボタンの右にある三角マークをクリックします。そうすると以下のような画面が出てきます。そこで、「Wired Setting」を選択します。

linux-centos8-2

Wiredのプラスマークの下の歯車ボタンをクリックします。

linux-centos8-3

Wired設定画面がでてきたら、Ipv4タブを選択します。

linux-centos8-4

固定化の場合はManualを選択して、IPアドレスを入力します。DHCP(自動割当)を希望の場合はAutomatic(DHCP)を選択して右上のApplyをクリックします。設定画面を閉じて再起動をします。その後IPアドレスが変わっています。

linux-centos8-5

設定ファイルでのIPアドレス固定の設定

ubuntuとcentos8の設定ファイル記述について紹介していきます。

今回は記述内容は簡潔に記載致します。

ubuntu

/etc/netplan/00-installer-config.yamlファイルにアクセスします。

「ens33」と「IPアドレス」以外の箇所は決まった形で記載します。

linux-command-netplan

IPアドレスを「192.168.1.3」に変更するために値を変更します。

linux-command-netplan-afterconfig

「netplan --debug generate」コマンドにより編集した設定ファイルにエラーがあるかチェックします。linux-command-netplan-debug

問題なければ設定反映コマンド「netplan apply」を実施します。

linux-command-netplan-ipchange

centos8

IPアドレス自動割当設定

デフォルトのBOOTPROTOは「dhcp」となっています。なのでこのまま再起動すればDHCPの設定により自動的にIPアドレスが割り振られます、

linux-command-centos8-1

IPアドレス固定化設定

「/etc/sysconfig/network-script/ifcfg-ens33」のファイルで「BOOTPROTO」を「static」に設定。「IPADDR」と「NETMASK」を追記します。

linux-command-centos8-2

再起動して、「ifconfig」コマンドを利用してipアドレスを確認すると上記で指定した「192.168.1.3」に変わっております。

linux-command-centos8-4

まとめ

以上となります。まとめは以下になります。

・IPアドレス設定方法は、コマンド、GUIでの操作、設定ファイルの変更が主な手段となります。

・ifconfig,ip,nmcli,nmtuiコマンドはオプションが豊富で、覚えるのが大変だが、目的を絞れば簡単に扱えます。

・設定ファイルでの変更もバージョンの違いによって変わってきます。

以上となります。

当ブログではLinuxに関する記事も執筆しておりますので、ぜひご参考にいただけますと幸いです。

 

  • この記事を書いた人
  • 最新記事

ミツ

サーバ初心者向け「server-beginner」を運営する「ミツ」と申します。 Linux系やwindows系などのサーバに関する部分をメインで執筆していきますので、興味ある方はぜひご覧いただけますと幸いです。 <経歴> 専門学校卒業後、ネットワーク、インフラ、プログラミングを一通り経験。 当メディアでは主にLinux分野に関する内容を発信していきます。

-Linux共通