19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2でpingは通るのにcurlやwget, aptが通らないときに `netsh winsock reset` で復旧した記録

Last updated at Posted at 2025-08-25

はじめに

あるときにWSLからのaptに失敗する事象が発生したため、復旧対応を行った際の記録となります。
本投稿は作業記録からchatGPT5で草案を生成し、投稿主が微修正をしたものとなります。

  • WSL2上で ping google.co.jp は成功する
  • しかし curl http://google.co.jpwgetapt update は応答せず固まる
  • Windows本体側からは問題なくHTTP/HTTPS通信できる
  • WSLの再起動では改善せず

調査内容

Firewallの影響確認

目的:TCP/HTTP通信がWindows Defenderやセキュリティソフトにブロックされていないか切り分ける。
結果:無効化しても変化なし。


MTU調整

目的:パケットサイズ不一致や断片化によるTCP不通を切り分ける。
実施:

sudo ip link set dev eth0 mtu 1400

結果:変化なし。


IPv6無効化

目的:IPv6優先で接続しようとして失敗していないか確認する。
実施:

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
curl -4 http://google.co.jp

結果:変化なし。


vEthernet (WSL) の無効化/再有効化

目的:WSL2の仮想NICが不安定になっている可能性を切り分けるため、強制リセットを実施。
実施(PowerShell):

Disable-NetAdapter -Name "vEthernet (WSL (Hyper-V firewall))" -Confirm:$false
Enable-NetAdapter -Name "vEthernet (WSL (Hyper-V firewall))"
wsl --shutdown

結果:一時的には復旧したが、しばらくすると再発。根本解決には至らず。


その他(未実施)

  • DNSをGoogle Public DNSへ変更
  • Proxy環境変数の確認
  • ルーティングテーブルやNICの状態確認

解決方法

最終的に以下のコマンドで完全に復旧。再発も解消した。

wsl --shutdown
netsh winsock reset

実行後、Windowsを再起動。
その後は curlwget が正常に動作し、apt update も問題なく実行可能となった。


まとめ

  • ping が通るのに curl/wget/apt が固まる場合、Windows側のネットワークスタック異常が原因のことがある
  • vEthernet (WSL) の無効化/有効化は一時的効果のみ
  • 根治には netsh winsock reset → 再起動 が有効

参考コマンド

# WSL側
ip link
ip route
ip -6 addr show
curl -v http://google.co.jp

# Windows側
Get-NetAdapter
Disable-NetAdapter -Name "vEthernet (WSL (Hyper-V firewall))" -Confirm:$false
Enable-NetAdapter -Name "vEthernet (WSL (Hyper-V firewall))"
netsh winsock reset

19
13
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
19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?