wsl ubuntu static ip & service init

参考文章

开机启动 docker

https://blog.csdn.net/l229568441/article/details/106968306/

1
2
vim /etc/init_myservice.sh
chmod u+x /etc/init_myservice.sh
  • /etc/init_myservice.sh
1
2
ip addr add 192.168.50.28/24 broadcast 192.168.50.255 dev eth0 label eth0:1
service docker start
  • wsl_ip.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@echo off

:: 获取管理员权限

setlocal

set uac=~uac_permission_tmp_%random%

md "%SystemRoot%\system32\%uac%" 2>nul

if %errorlevel%==0 ( rd "%SystemRoot%\system32\%uac%" >nul 2>nul ) else (

echo set uac = CreateObject^("Shell.Application"^)>"%temp%\%uac%.vbs"

echo uac.ShellExecute "%~s0","","","runas",1 >>"%temp%\%uac%.vbs"

echo WScript.Quit >>"%temp%\%uac%.vbs"

"%temp%\%uac%.vbs" /f

del /f /q "%temp%\%uac%.vbs" & exit )

endlocal


:: 给WSL Ubuntu和Win10添加固定ip

wsl -d Ubuntu-18.04 -u root /etc/init_myservice.sh
netsh interface ip add address "vEthernet (WSL)" 192.168.50.93 255.255.255.0

因为netsh interface ip add address "vEthernet (WSL)" 192.168.50.88 255.255.255.0这条命令必须以管理员身份运行,
所以此脚本的上边一段代码是首先获取管理员运行权限,然后才开始执行设置ip相关的命令;

因为此脚本放在启动目录下,所以Win10启动的时候会自动运行此脚本设置ip,就可以用Xshell通过192.168.50.28访问WSL Ubuntu了;

通过BatToExeConverter.exe把上述脚本转换成wsl_ip.exe,然后放入启动目录下,开机之后就不会弹出黑窗了,比较完美。

评论