其他分享
首页 > 其他分享> > WSL设置添加固定IP

WSL设置添加固定IP

作者:互联网

WSL设置添加固定IP

任务目标

在win端创建批处理文件

创建一个批处理文件, 例如: D:\wsl_work\Ubuntu_1604_static_ip.bat, 内容如下:

该脚本作用是

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
netsh interface ip add address "vEthernet (WSL)" 192.168.50.99 255.255.255.0
wsl -d Ubuntu-16.04 -u root ip addr add 192.168.50.16/24 broadcast 192.168.50.255 dev eth0 label eth0:1
exit

在WSL实例里编辑~/.bashrc, 添加如下内容:

# 下面是用于判断是否执行Win端的脚本来设置添加一个固定IP
HOST_IP_STR=`hostname -I`
echo $HOST_IP_STR
AIM_IP_STR='192.168.50.16'
echo $AIM_IP_STR
if [[ $HOST_IP_STR == *$AIM_IP_STR* ]]; then
  echo "IP has set."
else
  echo "Reset IP." 
  cmd.exe /c "D:\wsl_work\Ubuntu_1604_static_ip.bat" 1>nul
fi
# 下面是用于X-server界面通讯的设置
export DISPLAY=192.168.50.99:0.0
export XDG_RUNTIME_DIR=/home/edu/.runtime-edu

这样就可以在启动WSL时, 自动为WSL添加一个固定IP地址为192.168.50.16了, 而又不会影响WSL本身的自动IP分配. (注意Win端脚本运行时, 会弹出是否以管理员身份运行, 应选择"是").

常见错误

'\\wsl$\Ubuntu-16.04\home\edu'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.

解决方法:
在注册表中,添加一个值即可.路径如下:
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
添加值 DisableUNCCheck, 类型为 REG_DWORD并将该值设置为1 (十六进制)。

批处理文件如下:

reg add "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v "DisableUNCCheck" /t "REG_DWORD" /d "1" /f

标签:IP,WSL,192.168,wsl,添加,STR
来源: https://www.cnblogs.com/linkyip/p/16418727.html