LoginSignup
2
1

More than 1 year has passed since last update.

Windows11 WSL2で行うダウンロードが高頻度でタイムアウトするのを直す

Posted at

これは

  • Windows11
  • WSL2
  • Ubuntu20.04LTS

それは

  • ネットからのダウンロードが高頻度でタイムアウト
    • npmを使えば ETIMEDOUTみたいに言われ、brewを使えばDownloading (curlを使ってそうな表示)で延々と待たされてtimeoutし、Spacemacsがelpaからダウンロードする時も無言で固まっている
    • たまに成功する (意味がわからない)
    • たとえば brew upgradeで10パッケージ近くをダウンロードしてしまっている時、Ctrl+Cで遮断して再実行すると、1~3個ずつダウンロードが完了することがあるし、Spacemacsのパッケージダウンロードが (1/3)で固まった時もSpacemacs自体を再起動すると (2/3)へ進捗することがある
    • 低確率で成功するから「あっ待ち始めたな」と思ったら遮断・再実行……を10回くらい繰り返していればそのうち最後まで行ける
    • 不思議なことにcurlを直接使ってタイムアウトした経験はない
  • 色んなアプリが遭遇するのだからWSLのネットワークで何か起きてそうだけど途中の通信をどう引き抜けば良いのか全然わからない
  • WiresharkでvEthernet (WSL)をキャプチャすると TCP Port numbers refusedがドカドカ出てくるのでWindows側で何か弾いてるんじゃないかとは思うけど何もわからない
  • 443ポートがやたら嫌われている感じはした
  • 何も考えずファイアウォールを無効化するなどしてみたけど特に効果を感じなかった

あれは

WSLの resolv.conf自動生成機能を止めた上で、WSLのDNSサーバ指定を 8.8.8.8 (Googleに限らず外部のDNSサーバなら何でも良いのかもしれない)へ変える

/etc/wsl.conf
[network]
generateResolvConf = false
/etc/resolv.conf
nameserver 8.8.8.8

cf. https://github.com/microsoft/WSL/issues/7254#issuecomment-905767204


そんなんでええんか?

自動生成されるのがWindowsホスト機IPだったなら、知らんドメインをホストに聞きに行ってホストがデフォルトルートなり何なりでルータへ繋いでくれそうだから自然な流れだと思って手を付けていなかったけど

(自動生成されるのが何のIPかも覚えていないし いいや……)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1