-
-
Save ThYpHo0n/349f1f6473e207b866f65aca4728da3e to your computer and use it in GitHub Desktop.
# WSL? | |
if [[ "$(< /proc/sys/kernel/osrelease)" == *microsoft* ]]; then | |
export $(dbus-launch) | |
export LIBGL_ALWAYS_INDIRECT=1 | |
export WSL_VERSION=$(wsl.exe -l -v | grep -a '[*]' | sed 's/[^0-9]*//g') | |
export WSL_HOST=$(tail -1 /etc/resolv.conf | cut -d' ' -f2) | |
export DISPLAY=$WSL_HOST:0 | |
# pip path if using --user | |
export PATH=$PATH:$HOME/.local/bin | |
# SSH | |
eval $(/mnt/c/weasel-pageant/weasel-pageant -r) | |
fi |
if /etc/resolve.conf
can't get what you want, iproute2 util is another proper way to get the gateway address:
ip -o route get 1.1.1.1 | cut -d' ' -f 3
the 1.1.1.1
can be any address of foreign network, it just show how kernel visit that address.
export DISPLAY=$(ipconfig.exe | grep IPv4 | head -1 | rev | awk '{print $1}' | rev | tr -d '\r'):0.0
I used this approach but added a grep to extract just the Wi-Fi adapter because the IPv4 part was just fetching the first match so:
export DISPLAY=$(ipconfig.exe | grep -A 6 'Wireless LAN adapter Wi-Fi' | grep IPv4 | head -1 | rev | awk '{print $1}' | rev | tr -d '\r'):0.0
I came up with this: HOST_IP=$(route.exe print | grep "0.0.0.0 0.0.0.0" | awk '{print $4}')
I changed the routing inside my wsl as a workaround for my VPN software. So there is no way to get the Windows external IP on the linux side.
@jamesharris-
It may depend on how you installed WSL/WSL2 and perhaps your network layout. This works for me, because my Windows computer and my WSL2 VM both use an external DNS server:
export DISPLAY=$(ipconfig.exe | grep IPv4 | head -1 | rev | awk '{print $1}' | rev | tr -d '\r'):0.0
Use
set -x
for debugging purposes. This way I found thatipconfig.exe
prints an carriage return, which needs to be removed withtr -d '\r'
Disable debug
set +x
Edit: if the above fails, use