事の経緯
WindowsでTimeMachine(Macのバックアップ)を使いたくてWSL経由でSamba使うか~と思い、インストールして一旦 sudo apt update
かけとくかーと実行したところ...
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease
Temporary failure resolving 'archive.ubuntu.com'
は?
なぜ...。LANはつながってるのに...。
とりあえずいろんなところを調べて、/etc/resolv.conf
をいじれば解決できるとほとんどの記事で書かれてました。
いわれた通りに設定してとりあえずはつながった!
でも再起動すると...
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease
Temporary failure resolving 'archive.ubuntu.com'
nameserver 127.0.0.53
options edns0 trust-ad
search .
いや戻ってんじゃねぇよ!!!!!
となってしまったのでさらに調べていたところ、どうやら起動するたびにresolv.confを書き換えてるとのこと。これはgenerateResolvConf = false
をwsl.confで設定していても書き換えされるらしいです。意味ねぇのかよ...。
ということで、別のアプローチで解決していこうと思います。
環境
- PC:HP ProDesk 600 G2 SFF
- CPU:Intel Core i5-6500
- WSLバージョン:2.5.9.0
- カーネル バージョン: 6.6.87.2-1
- OS:Ubuntu 24.04 LTS
- ホストOS:Windows 11 Pro (Tiny11builder)
やり方解説
わりかし簡単です。
1. wslconfigの設定
%USERPROFILE%\.wslconfig
に以下を追記します。
[wsl2]
dnsTunneling=false
2. DNSサーバーを確認する
以下のコマンドを使ってDNSサーバーを確認します。
PS ipconfig /all
イーサネット アダプター vEthernet (WSL_Samba):
接続固有の DNS サフィックス . . . . .: flets-east.jp
説明. . . . . . . . . . . . . . . . .: Hyper-V Virtual Ethernet Adapter #3
物理アドレス. . . . . . . . . . . . .: 48-0F-CF-35-3C-CF
DHCP 有効 . . . . . . . . . . . . . .: いいえ
自動構成有効. . . . . . . . . . . . .: はい
IPv6 アドレス . . . . . . . . . . . .: ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■(優先)
一時 IPv6 アドレス. . . . . . . . . .: ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■(優先)
リンクローカル IPv6 アドレス. . . . .: fe80::857c:7ab3:b0fd:5420%17(優先)
IPv4 アドレス . . . . . . . . . . . .: 172.31.123.29(優先)
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: fe80::2eff:65ff:fed4:5c9e%17
172.31.123.254
DHCPv6 IAID . . . . . . . . . . . . .: 524816335
DHCPv6 クライアント DUID. . . . . . .: 00-01-00-01-30-1E-D3-B4-48-0F-CF-35-3C-CF
DNS サーバー. . . . . . . . . . . . .: 2400:4050:dc63:e800:2eff:65ff:fed4:5c9e
NetBIOS over TCP/IP . . . . . . . . .: 有効
接続固有の DNS サフィックス検索の一覧:
flets-east.jp
iptvf.jp
ブリッジモードで接続するためにHyper-Vでアダプターを作成したためvEthernetになってますが、通常はIntel(R) Ethernet Connection(2) I219-LM
などの製品名が出ると思います。
ここでのDNSサーバーは2400:4050:dc63:e800:2eff:65ff:fed4:5c9e
になります(なんでipv6なんだろ...。)
3. /etc/wsl.confの設定
WSLのシェルに移動してwsl.conf
に設定を追加していきます。
sudo nano /etc/wsl.conf
#Enterを押して
[network]
generateResolvConf=false
4. DNSサーバーの固定化
4.1 ディレクトリ作成
sudo mkdir /etc/systemd/resolved.conf.d
4.2 dns_server.confの作成
cd /etc/systemed/resolved.conf.d
vim ./dns_server.conf
[Resolve]
DNS=2400:4050:dc63:e800:2eff:65ff:fed4:5c9e #1で探したDNSサーバー値に置き換え
加えたら:wq
で閉じる
これで再起動してもDNS値が固定されたままになります。
なおresolv.conf内のDNSは172.0.0.53とかのフォールバックIPのデフォ値のままになるそうです。ここ関係なかったんかい。