WSL设置添加固定IP

WSL设置添加固定IP

任务目标

  • 在Win端添加一个固定IP 192.168.50.99 用于X-Server界面显示.
  • 在WSL端添加一个固定IP 192.168.50.16 用于和Win端通讯.

在win端创建批处理文件

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

该脚本作用是

  • 向vEthernet (WSL)网卡添加一个IP 192.168.50.99

  • 向wsl子系统网卡添加一个IP 192.168.50.16

@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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值