「netsh」コマンドでTCP/IPのパラメータを設定する【Windows OS】Tech TIPS

Windows OSでTCP/IPなどのネットワーク関係のパラメータの設定をコマンドプロンプトから行うには「netsh」コマンドが利用できる。IPv4アドレスを設定するには「netsh int ip set addr 〜」、DNSサーバなら「netsh int ip set/add dns 〜」と実行すればよい。netshコマンドを活用すれば、ネットワーク関連の設定をバッチファイルなどで自動実行できる。

» 2023年01月18日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

netshでIPアドレスを設定

対象OS:Windows 10/11、Windows Server 2012/2012 R2/2016/2019/2022


Windows OSでIPアドレスをいちいち手動で設定したくない!

 例えばWindows PCを何台もセットアップする際、いちいち「設定」アプリや「コントロールパネル」などのGUIでIPアドレスを設定するのは面倒だ。誤ったIPアドレスを入力する可能性だってある。

 このような場合、コマンドラインでIPアドレスを設定できれば、それをバッチファイルなどに記述して自動実行しやすい。その方がGUIよりずっと効率的だ。

 Windows OSでは「netsh」という標準装備のコマンドラインコマンドで、TCP/IPパラメータの設定や確認が可能だ。本Tech TIPSでは、このnetshコマンドの基本的な使い方とIPv4アドレスなどの具体的な設定方法、注意点を説明する。

netshコマンドの基本的な使い方

 netshコマンドは、ネットワーク全般の制御用のコマンドである。そのため、多くのサブコマンドが用意されている。TCP/IP関連のパラメータは、「interface」コンテキストの中にある、「ipv4」「ipv6」サブコンテキストで設定する。

netshコマンドによるIPアドレス設定は「interface」「ipv4」「ipv6」コンテキストで実行する netshコマンドによるIPアドレス設定は「interface」「ipv4」「ipv6」コンテキストで実行する

 この例では対話的にnetshコマンドを利用している。その一方で、「netsh interface ipv4 ?」のように、netshコマンドにコンテキストやパラメータを付けて、コマンドプロンプト上から直接実行することも可能だ。この方法は、コマンドをバッチファイル化しておいて、簡単に実行させたい場合に便利である。

対話的に操作することなくnetshコマンドを実行する例 対話的に操作することなくnetshコマンドを実行する例

 またnetshのサブコマンドでは省略形が使える。例えば「interface」は「int」、「address」は「addr」、「config」は「conf」、「ipv4」は「ip」といった具合だ。以下では入力が簡単な省略形でコマンドラインを紹介する。

netshで現在のIPv4アドレス設定を確認するには

 現在のネットワークインタフェースの状態を確認するには「netsh int ip show 〜」コマンドが利用できる。IPv4アドレスを確認するには、以下のようにshow confサブコマンドを実行するとよいだろう。

netsh int ip show conf

netshコマンドでネットワークインタフェースのIPv4アドレス設定を確認する

netshコマンドによる現在のIPv4アドレス設定の確認 netshコマンドによる現在のIPv4アドレス設定の確認

netshで固定IPv4アドレスを割り当てるには

 上記のshow confサブコマンドの出力で、「インターフェイスの構成」にある「DHCP 有効:」が「はい」になっている場合は、DHCPによるIPv4アドレスの自動割り当てが有効になっている。これを変更して固定IPv4アドレスを割り当てるには、管理者権限で起動したコマンドプロンプトで、以下のコマンドラインを実行する。

netsh int ip set addr "<インタフェース名>" static <IPv4アドレス> <ネットマスク> <ゲートウェイ> <メトリック>

netshで固定IPv4アドレスを割り当てる例
メトリックは省略可能。

 <インタフェース名>は上の例なら「イーサネット」となる。これは「netsh int ip show int」でも確認できる。

 <メトリック>とは、インタフェースの優先度を表す数値で、同じネットワークに属するインタフェースが複数ある場合、数値の小さい方が優先される。<メトリック>を省略すると、インタフェースのタイプ(速度)に応じて適宜割り当てられる。

netshで固定IPv4アドレスを割り当てる例 netshで固定IPv4アドレスを割り当てる例

 set addrサブコマンドでIPv4アドレスを静的に設定した場合、DNSサーバも自動的に静的設定に切り替わり、結果として未設定の状態に変わってしまうことがある。そのため、必ずDNSサーバも静的かつ明示的に設定する必要がある。その方法はすぐ後で説明する。

 IPv4アドレスをDHCP割り当てに戻すには次のようにする。

netsh int ip set addr "<インタフェース名>" dhcp

netshでIPv4アドレスなどをDHCP割り当てに戻す

netshでDNSサーバの設定を変更するには

 以上の操作でIPv4アドレスは変更されたものの、DNSサーバについては未設定になってしまうので、改めて設定し直す(これも管理者権限でコマンドプロンプトを起動する必要があるので要注意)。

 冗長性を確保するため、一般的にDNSサーバは複数台用意されていることが多い。このような場合、最初の1台は「netsh int ip set dns 〜」コマンドで割り当て、追加の分は「netsh int ip add dns 〜」コマンドで割り当てる。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。