南宁网站定制,h5制作素材,建站之星破解版,网站开发仿站window下的wsl2 开发中使用到 域名映射#xff0c;但是WSL2 每次启动都会被分配一个虚拟的 ip 地址#xff0c;每次启动虚拟ip 都不一样#xff0c;导致要频繁 更改 window 的 hosts 文件#xff0c;太麻烦了#xff0c;所以写一个自动执行的 .sh 脚本#xff0c;每次启动…window下的wsl2 开发中使用到 域名映射但是WSL2 每次启动都会被分配一个虚拟的 ip 地址每次启动虚拟ip 都不一样导致要频繁 更改 window 的 hosts 文件太麻烦了所以写一个自动执行的 .sh 脚本每次启动之后 自动获取虚拟ip并写入到 window 的 hosts 文件中。
1、在 当前用户目录下 新建 script/get_wsl_ip.sh 文件脚本我的路径 \\wsl$\Ubuntu\home\user1\scripts
#!/usr/bin/bash# 为 win 设置 wsl host# win hosts 文件路径
win_hosts_path/mnt/c/Windows/System32/drivers/etc/hosts# 为 wsl2 设置的域名
wsl_domaindev.domain.com# 获取 wsl2 的 ip
wsl_ip$(ip -4 addr show eth0 | grep -oP (?inet\s)\d(\.\d){3})if [ -z $wsl_ip ]; thenecho 无法获取 WSL2 的 IP 地址请检查网络配置。exit 1
fi# 判断是否已存在 wsl2 的域名如果存在则修改否则追加
if grep -wq $wsl_domain $win_hosts_path; then# 备份原始 hosts 文件cp $win_hosts_path $win_hosts_path.bak# 使用临时文件避免权限问题temp_file$(mktemp)sed s/.* $wsl_domain/$wsl_ip $wsl_domain/ $win_hosts_path $temp_filesudo mv $temp_file $win_hosts_path
else# 追加记录到 hosts 文件echo $wsl_ip $wsl_domain | sudo tee -a $win_hosts_path /dev/null
fi# 为 wsl 设置 win host
wsl_hosts_path/etc/hosts
win_domainwin
win_ip$(grep nameserver /etc/resolv.conf | awk {print $2})if [ -z $win_ip ]; thenecho 无法获取 Windows 主机的 IP 地址请检查网络配置。exit 1
fiif grep -wq $win_domain $wsl_hosts_path; then# 使用临时文件避免权限问题temp_file$(mktemp)sed s/.* $win_domain/$win_ip $win_domain/ $wsl_hosts_path $temp_filesudo mv $temp_file $wsl_hosts_path
else# 追加记录到 hosts 文件echo $win_ip $win_domain | sudo tee -a $wsl_hosts_path /dev/null
fiecho 设置完成。
2、修改当前用户目录下 \\wsl$\Ubuntu\home\user1\.bashrc在末尾加
# Call custom script to get WSL IP and save it for host update
/home/user1/scripts/get_wsl_ip.sh 3、重启 wsl 即可
wsl --shutdown 4、window 的 hosts 会自动添加下面的 ip 地址映射
# wsl 2 虚拟的IP
172.23.38.130 dev.domain.com