Hyper-Vの既定のスイッチアダプターに静的IPアドレスを設定することはできますか? PCを再起動するたびにアドレスが変更されます。
コントロールパネル>ネットワーク接続>アダプター設定の変更でvEthernetスイッチを右クリックして静的アドレスを設定できますが、Windowsはそれをランダムにリセットします再起動後のアドレス、およびそのアクションを無効にすることはできません。
解決策は、 netshコマンド またはその代替PowerShellを使用して、常に同じ値にリセットすることです。 Netshは管理者として実行する必要があります。
コマンド構文は次のとおりです。
netsh interface ip set address [name=]InterfaceName [source=]{dhcp | static [addr=]IPAddress[mask=]SubnetMask [gateway=]{none | DefaultGateway [[gwmetric=]GatewayMetric]}}
スイッチを192.168.100.1
の静的IP、マスク255.255.255.0
、ゲートウェイなしに設定するコマンドの例は次のとおりです。
netsh interface ip set address name="vEthernet (Default Switch)" static 192.168.100.1 255.255.255.0 none
必要に応じて、Windowsの起動時またはユーザーログオン時に実行するコマンドを含むスクリプトを設定できます。
別の解決策は、デフォルトスイッチとは異なり、IPアドレスが保持される新しいスイッチを作成することです。
少し外れているかもしれませんが、SSH経由でHyper-Vインスタンスに接続するためにこのIPを設定しているので、静的MACアドレスを割り当てて"self-discovery"
スクリプトなので、毎回assign ip to vEthernet
を使用する必要はありません。
静的MACを割り当てます。
Hyper-Vインスタンスを右クリック->設定>ネットワークカード>拡張機能->静的MACを選択してMACを埋める
私の場合、それはその静的MACに基づいてarp検出からIPを抽出し、次にSSH経由でそれに接続するPowershellスクリプトです
$str = ((arp -a | findstr /i 00-15-5D-01-83-0B)[0]);
$ip = $str.Split(" ")[2].Trim()
ssh root@$ip
説明:
arp
Displays and modifies the IP-to-Physical address translation tables used by
address resolution protocol (ARP).
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]
-a Displays current ARP entries by interrogating the current
protocol data. If inet_addr is specified, the IP and Physical
addresses for only the specified computer are displayed. If
more than one network
arp -a | findstr/i 00-15-5D-01-83-0B
/i
=大文字と小文字を区別しない
戻り値:
192.168.1.31 00-15-5d-01-83-0b dynamic
192.168.43.170 00-15-5d-01-83-0b static
[0]インデックス
ピック:
192.168.1.31 00-15-5d-01-83-0b dynamic
$ str.Split( "")[2] .Trim()
戻り値:
192.168.1.33
次に、sshがそれに接続します