microsoft / WSL

Issues found on WSL
https://docs.microsoft.com/windows/wsl
MIT License
17.31k stars 814 forks source link

no network/internet access #11675

Open fawaf opened 3 months ago

fawaf commented 3 months ago

Windows Version

Microsoft Windows [Version 10.0.22635.3720]

WSL Version

WSL version: 2.2.4.0 Kernel version: 5.15.153.1-2 WSLg version: 1.0.61 MSRDC version: 1.2.5326 Direct3D version: 1.611.1-81528511 DXCore version: 10.0.26091.1-240325-1447.ge-release Windows version: 10.0.22635.3720

Are you using WSL 1 or WSL 2?

Kernel Version

5.15.153.1-microsoft-standard-WSL2

Distro Version

Fedora

Other Software

No response

Repro Steps

try to use any networking/internet command

Expected Behavior

internet to be connected

Actual Behavior

no internet/networking access

Diagnostic Logs

WslNetworkingLogs-2024-06-09_19-29-43.zip

fawaf commented 3 months ago

probably similar to https://github.com/microsoft/WSL/issues/11061

fawaf commented 3 months ago

also tried disabling all network interface as the issue linked about said, and that did not work also.

networking used to work for a while and then it stopped working a couple weeks ago.

github-actions[bot] commented 3 months ago

View similar issues

Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one and thumbs upping the other issue to help us prioritize it!

Open similar issues:

Closed similar issues:

Note: You can give me feedback by thumbs upping or thumbs downing this comment.

Diagnostic information
.wslconfig found
Detected appx version: 2.2.4.0
optional-components.txt not found

dcasota commented 3 months ago

WSL 2.2.4 has an issue, at least with an existing .wslconfig like the following:

# configure .wslconfig . If needed, change debugConsole=true
echo "[wsl2]">"$env:userprofile\.wslconfig"
echo "# Enable nested virtualization">>"$env:userprofile\.wslconfig"
echo "nestedVirtualization=true">>"$env:userprofile\.wslconfig"
echo "# networking mode">>"$env:userprofile\.wslconfig"
echo "networkingMode=NAT">>"$env:userprofile\.wslconfig"
echo "# Turn on default connection to bind WSL 2 localhost to Windows localhost">>"$env:userprofile\.wslconfig"
echo "localhostforwarding=true">>"$env:userprofile\.wslconfig"
echo "# turn off idle timeout">>"$env:userprofile\.wslconfig"
echo "vmIdleTimeout = -1">>"$env:userprofile\.wslconfig"
echo "# needed to start properly user-runtime-dir@0.service">>"$env:userprofile\.wslconfig"
echo "guiApplications = true">>"$env:userprofile\.wslconfig"
echo "# debug console" >>"$env:userprofile\.wslconfig"
echo "debugConsole=false">>"$env:userprofile\.wslconfig"

Downgrade to WSL 2.1.5 (https://github.com/microsoft/WSL/releases/download/2.1.5/wsl.2.1.5.0.x64.msi) resolves the issue.

Unfortunately I couldn't take the time to find out how to make run WSL 2.2.4 with the configuration mentioned.

OneBlue commented 3 months ago

@keith-horton: This user is using mirrored networking:

networkingMode=mirrored
fawaf commented 3 months ago

yep, downgrading also did not work.

fawaf commented 3 months ago

also, i do not use any vpn on this particular box.

cyberjj999 commented 3 months ago

WSL 2.2.4 has an issue, at least with an existing .wslconfig like the following:

# configure .wslconfig . If needed, change debugConsole=true
echo "[wsl2]">"$env:userprofile\.wslconfig"
echo "# Enable nested virtualization">>"$env:userprofile\.wslconfig"
echo "nestedVirtualization=true">>"$env:userprofile\.wslconfig"
echo "# networking mode">>"$env:userprofile\.wslconfig"
echo "networkingMode=NAT">>"$env:userprofile\.wslconfig"
echo "# Turn on default connection to bind WSL 2 localhost to Windows localhost">>"$env:userprofile\.wslconfig"
echo "localhostforwarding=true">>"$env:userprofile\.wslconfig"
echo "# turn off idle timeout">>"$env:userprofile\.wslconfig"
echo "vmIdleTimeout = -1">>"$env:userprofile\.wslconfig"
echo "# needed to start properly user-runtime-dir@0.service">>"$env:userprofile\.wslconfig"
echo "guiApplications = true">>"$env:userprofile\.wslconfig"
echo "# debug console" >>"$env:userprofile\.wslconfig"
echo "debugConsole=false">>"$env:userprofile\.wslconfig"

Downgrade to WSL 2.1.5 (https://github.com/microsoft/WSL/releases/download/2.1.5/wsl.2.1.5.0.x64.msi) resolves the issue.

Unfortunately I couldn't take the time to find out how to make run WSL 2.2.4 with the configuration mentioned.

Hi. I am facing the same network issue and couldn't resolve it for a while now.

Could you share how we can downgrade WSL from 2.2.4.0 to 2.1.5?

Do we just run the executable you link?

dcasota commented 3 months ago

Hi, Case distinction:

cyberjj999 commented 3 months ago

Hi @dcasota . Thank you for your prompt response.

I ran the .msi installer and managed to downgrade my WSL - however, it seems like my network issues still persists.

For context, I do not have an existing .wslconfig in my %USERProfile% directory, and I believe the default WSL behavior is to use NAT

https://learn.microsoft.com/en-us/windows/wsl/networking

Default networking mode: NAT By default, WSL uses a NAT (Network Address Translation) based architecture for networking. Keep the following considerations in mind when working with a NAT-based networking architecture:

Do you have some ideas of what other issues this network connectivity problem might be caused by?

Thanks so much.

dcasota commented 3 months ago

I tried to populate a curated answer. Hope this helps.

Constellations

1a) enterprise workstation/laptop: Data Loss prevention policy

'Device control in Microsoft Defender for Endpoint' with an activated policy for W11 devices might detect WSL instances and prevent access to storage and networks. In any case, prevent data loss. Ask company's IT compliance manager for help. Work together.

1b) Support good standing of IT security. Backup your system.

2) WSL Reinstallation

Typically, a WSL reinstallation fixes misconfiguration issues quite well.

However, create first a backup of your WSL distribution as mentioned in Step 1. A reinstallation deletes any registered WSL distribution.

Here a sample of a reinstallation recipe.

# see https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-1---enable-the-windows-subsystem-for-linux

# Open a Powershell Terminal (Administrator) 
dism /online /disable-feature /FeatureName:Microsoft-Windows-Subsystem-Linux
dism /online /disable-feature /featurename:VirtualMachinePlatform
dism /online /disable-feature /FeatureName:Microsoft-Hyper-V
rm "$env:userprofile\.wslconfig"

# reboot

# Open a Powershell Terminal (Administrator) 
dism /online /enable-Feature /All /FeatureName:Microsoft-Windows-Subsystem-Linux /norestart
dism /online /enable-feature /All /Featurename:VirtualMachinePlatform /norestart
dism /online /enable-Feature /All /FeatureName:Microsoft-Hyper-V /norestart
bcdedit /set hypervisorlaunchtype auto

# reboot

# Open a Powershell Terminal (Administrator) 
wsl --install

3) Network Connectivity

Network connectivity results as a sort of pipeline e.g. physical network adapter ! virtual network adapter ! bridged ! vnic ! vswitch ! portgroup .

If a vnic inside a WSL distribution does not get a network link, the pipeline is broken. Investigate if network connectivity works in another WSL distribution. If it works, it's rather not a WSL issue.

There are different types of network adapters e.g. built-in wired or wi-fi, usb(-c)-to-ethernet, etc. Not all vendor types are enabled by default in the Distros' Linux Kernel.

In case of a Windows 11 network configuration issue, check your configuration. The WSL Networking Logs provided by @fawaf clearly testifies to the method required.

CatalinFetoiu commented 3 months ago

@fawaf thanks for reporting the issue

can you please collect a new set of networking logs using instructions below? - we need to the capture the process of WSL startup in the logs

run .\collect-networking-logs.ps1 run wsl --shutdown start WSL and repro stop .\collect-networking-logs.ps1

fawaf commented 3 months ago

oddly, i ran it, but it doesn't continue to collect logs. it just runs to completion and exits.

fawaf commented 3 months ago

a reinstall of wsl seems to have fixed this issue as mentioned above. i'll report back if it occurs again.

cyberjj999 commented 3 months ago

a reinstall of wsl seems to have fixed this issue as mentioned above. i'll report back if it occurs again.

Hey @fawaf - did you follow @dcasota's instruction above for reinstallation?

After reinstallation, how did you reimport your project files etc. back to your newly installed WSL2?

(I presume his Step 2 instructions above will delete your original WSL's Ubuntu content?)

fawaf commented 3 months ago

yep, that is correct. step 1 will back up the distro into a tar file.

i used the import command provided by wsl

wsl --import <Distro> <InstallLocation> <FileName>
cyberjj999 commented 3 months ago

@fawaf Thank you for the swift replies!

Could I clarify that everything works well for you after re-importing?

i.e. your personal bash commands, project files, VSCode configuration, etc. etc. are all working ok?

^ just needed some re-assurance before I run the commands, lol!

fawaf commented 3 months ago

yep, everything works from what i can tell.

dcasota commented 3 months ago

@fawaf @cyberjj999 a question: can you check with wmic qfe list if you have a Windows Security Update KB5039212 installed?

There seems to be a build-in wsl update in KB5039212, because even after having uninstalled wsl + dism packages, wsl -v shows up as 2.2.4.

KB5039212 contains newer wsl bits:

wsl.exe,"10.0.22621.3672","07-Jun-2024","07:29","195,072"
wslconfig.exe,"10.0.22621.3672","07-Jun-2024","07:29","120,320"
wslg.exe,"10.0.22621.3672","07-Jun-2024","07:29","120,320"

Those wsl files are in c:\windows\system32.

I uninstalled the KB with wusa /uninstall /kb:5039212. The files weren't deleted, but wsl -v is back to 2.1.5.

in addition wsl show the well-known Error code Wsl/Service/CreateInstance/GetDefaultDistro/WSL_E_DEFAULT_DISTRO_NOT_FOUND.

On this install base, a reinstallation succeeds.

KB5039212 seems to update the installbase to 2.2.4 despite issue(s) 'no network issue/internet access'. Placed an info at https://answers.microsoft.com/en-us/windows/forum/all/cumulative-updates-for-windows-june-2024/7e7ebdf9-4c8a-420e-aa6c-9ce470649cb3.

fawaf commented 3 months ago

i do not have KB5039212 installed.

cyberjj999 commented 3 months ago

@fawaf @cyberjj999 a question: can you check with wmic qfe list if you have a Windows Security Update KB5039212 installed?

There seems to be a build-in wsl update in KB5039212, because even after having uninstalled wsl + dism packages, wsl -v shows up as 2.2.4.

KB5039212 contains newer wsl bits:

wsl.exe,"10.0.22621.3672","07-Jun-2024","07:29","195,072"
wslconfig.exe,"10.0.22621.3672","07-Jun-2024","07:29","120,320"
wslg.exe,"10.0.22621.3672","07-Jun-2024","07:29","120,320"

Those wsl files are in c:\windows\system32.

I uninstalled the KB with wusa /uninstall /kb:5039212. The files weren't deleted, but wsl -v is back to 2.1.5.

in addition wsl show the well-known Error code Wsl/Service/CreateInstance/GetDefaultDistro/WSL_E_DEFAULT_DISTRO_NOT_FOUND.

On this install base, a reinstallation succeeds.

KB5039212 seems to update the installbase to 2.2.4 despite issue(s) 'no network issue/internet access'. Placed an info at https://answers.microsoft.com/en-us/windows/forum/all/cumulative-updates-for-windows-june-2024/7e7ebdf9-4c8a-420e-aa6c-9ce470649cb3.

Yes. I do have KB5039212 installed in my latest update - incidentally, it seems like the installation date is pretty near or maybe even coincide with the day I started facing the network issue...

is the fix to remove this update then?

himpich commented 3 months ago

I can confirm that uninstalling KB5039212 (and reboot afterwards) help me with my problem (dns working, nat not)

dcasota commented 3 months ago

@cyberjj999 In my x86_64 lab, removing kb5039212 helped to afterwards reinstall wsl to 2.1.5 successfully and not have issues with networkingMode. Also, in Start > Settings > Windows Updates > choose pause updates e.g. for 7 days.