WSL 2 on VPN (AnyConnect 4.10) and wi-fi:
Connect VPN
In admin powershell:
2.1Get-NetAdapter | Where-Object {$.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 1000
2.2Get-NetIPInterface | where {$.InterfaceAlias -eq 'Wi-Fi' -or $.InterfaceAlias -eq 'Ethernet 2' -or $.InterfaceAlias -eq 'vEthernet (WSL)'} | Set-NetIPInterface -Forwarding Enabled -Verbose
2.3 Verify by runningGet-NetIPInterface | select ifIndex,InterfaceAlias,AddressFamily,ConnectionState,Forwarding,InterfaceMetric | Sort-Object -Property IfIndex | Format-Table
check that forwarding is enabeled on wsl/wifi/anyconnect (Ethernet 2)In Linux shell:
3.1sudo bash -c "printf '[network]\ngenerateResolvConf = false' " > /etc/wsl.conf
3.2sudo rm /etc/resolv.conf
3.3 Add in ~/.bashrc:alias vpn_off="sudo bash -c "printf 'nameserver 8.8.8.8' > /etc/resolv.conf""
alias vpn_on="sudo bash -c "printf 'nameserver 172.16.254.82\nnameserver 172.16.254.247' > /etc/resolv.conf""
3.4source ~/.bashrc
3.5 Run "vpn_on" when connected to vpn and "vpn_off" when disconnected from vpn
NOTE:
Punkter som måste köras varje gång man gör connect mot VPN:
2.1, 3.5 (osäker om 2.2 är beständigt efter omstart av dator)
Punkter som måste köras varje gång man gör disconnect mot VPN:
3.5
Övriga punkter är engångs grejer.
Förbättring vore att göra kort-kommande även för 2.1/2.2
vpn_on adresserna är tagna från de dns:er som används när man är uppkopplad mot vpn.
Dessa kan verifieras i powershell genom att köra ipconfig /all
InterfaceMetric (punk 2.1) är testad och 1000 verkar funka bra för mig då dns uppslag blir snabba i båda windows/linux.
Dessa inställningar är lite klipp och klister från olika forum samt trial and error. Det kanske finns något smidigare sätt att få det att fungera?