@@ -10,7 +10,8 @@ TAP_MAC_ADDR=${TAP_MAC_ADDR:-5a:94:ef:e4:0c:ee}
1010
1111# overrideable with env
1212VMEXEC_PATH=${VMEXEC_PATH:-/ app/ wsl-vm}
13- GVPROXY_PATH=${GVPROXY_PATH:-/ app/ wsl-gvproxy.exe}
13+ GVPROXY_PATH=${GVPROXY_PATH:-/ mnt/ c/ Users/ Public/ wsl-gvproxy.exe}
14+ GVPROXY_STORE=${GVPROXY_STORE:-/ app/ wsl-gvproxy.exe}
1415TAP_NAME=${TAP_NAME:- wsltap}
1516CHECK_HOST=${CHECK_HOST:- example.com}
1617CHECK_DNS=${CHECK_DNS:- 1.1.1.1}
@@ -20,13 +21,8 @@ set +x
2021
2122# WSL2 default values
2223WSL2_TAP_NAME=${WSL2_TAP_NAME:- eth0}
23- WSL2_RESOLVCONF_DEFAULT=" /mnt/wsl/resolv.conf"
24- if [ ! -f " $WSL2_RESOLVCONF_DEFAULT " ]; then
25- WSL2_RESOLVCONF_DEFAULT=" /etc/resolv.conf"
26- fi
27- WSL2_RESOLVCONF=${WSL2_RESOLVCONF:- $WSL2_RESOLVCONF_DEFAULT }
28- WSL2_GATEWAY_IP_FROM_RESOLVCONF=" $( cat $WSL2_RESOLVCONF | awk ' /^nameserver/ {print $2}' ) "
29- WSL2_GATEWAY_IP=${WSL2_GATEWAY_IP:- $WSL2_GATEWAY_IP_FROM_RESOLVCONF }
24+ WSL2_GATEWAY_IP_FROM_IP_ROUTE=" $( ip route | awk ' /^default/ { print $3 }' ) "
25+ WSL2_GATEWAY_IP=${WSL2_GATEWAY_IP:- $WSL2_GATEWAY_IP_FROM_IP_ROUTE }
3026
3127set -x
3228
4137# replace calls to iptables if iptables-legacy exists
4238command -v iptables-legacy > /dev/null && alias iptables=iptables-legacy
4339
40+ install_file () {
41+ if [ -f $2 ]; then
42+ if [ ! -f " $3 " ]; then
43+ mkdir -p " $( dirname $3 ) "
44+ cp $2 " $3 "
45+ echo " copied $1 to $3 "
46+ else
47+ echo " $1 exists at $3 "
48+ if [ ` hash $2 ` != ` hash " $3 " ` ]; then
49+ cp -f $2 " $3 "
50+ echo " updated $1 at $3 "
51+ fi
52+ fi
53+ if [ ! -f " $2 -ln" ]; then
54+ ln -s " $3 " " $2 -ln"
55+ echo " created symbolic link at $2 -ln"
56+ fi
57+ fi
58+ }
59+
60+ install () {
61+ install_file wsl-gvproxy.exe " $GVPROXY_STORE " " $GVPROXY_PATH "
62+ }
63+
4464run () {
4565 echo " starting vm and gvproxy..."
4666 $VMEXEC_PATH \
@@ -54,24 +74,21 @@ run () {
5474}
5575
5676wsl2tap_down () {
57- # remove WSL2 default route
58- ip route del default
59-
6077 # setup wsl-vpnkit tap
6178 ip tuntap add $TAP_NAME mode tap
6279 ip link set dev $TAP_NAME address $TAP_MAC_ADDR
6380 ip link set dev $TAP_NAME up
6481 ip addr add $VPNKIT_LOCAL_IP /255.255.255.0 dev $TAP_NAME
65- ip route add default via $VPNKIT_GATEWAY_IP dev $TAP_NAME
82+ ip route add default via $VPNKIT_GATEWAY_IP dev $TAP_NAME metric 1 # Set the low priority
6683}
6784
6885wsl2tap_up () {
6986 # take down wsl-vpnkit tap
7087 ip link set dev $TAP_NAME down 2> /dev/null
7188 ip tuntap del $TAP_NAME mode tap
7289
73- # add WSL2 default route
74- ip route add default via $WSL2_GATEWAY_IP dev $WSL2_TAP_NAME 2> /dev/null
90+ # del added default route
91+ ip route del default dev $TAP_NAME 2> /dev/null
7592}
7693
7794iptables_set () {
@@ -144,10 +161,8 @@ if [ ! -f "$GVPROXY_PATH" ]; then
144161 echo " GVPROXY_PATH [$GVPROXY_PATH ] does not exist"
145162 exit 1
146163fi
147- cat $WSL2_RESOLVCONF | grep " automatically generated by WSL" > /dev/null
148- if [ $? -eq 1 ]; then
149- echo " resolv.conf has been modified without setting generateResolvConf"
150- fi
164+
165+ install
151166$GVPROXY_PATH -help 2> /dev/null
152167if [ $? -eq 1 ]; then
153168 echo " $GVPROXY_PATH is not executable due to WSL interop settings or Windows permissions"
0 commit comments