WSL中的Ubuntu自启动命令和端口映射,启动【宝塔】lnmp环境(写sh脚本思路)

在wsl中自启动一些命令,特别是还要在主机中映射,这些设置特别麻烦

这里换个思路,自启动可能各个版本或系统都不一样,那么我可以根据系统来写个脚本不就可以了

环境:win11+wsl-ubuntu22.04
需要:搭建ubuntu中启动lnmp环境
前提:已经安装好了宝塔和lnmp
win中批处理脚本为bat,映射命令为netsh,如果没有需要自行安装
ubuntu中脚本为sh,需要先查出这里的IP映射到win主机中
如下所示(生成脚本:start.sh,这个脚本生成startUbuntu.bat文件并执行):
当然这里也可以直接在.sh中执行命令不需要生成.bat文件.

#/bin/bash
echo "开启宝塔面板及其相关启动项:bt、nginx、mysqld、redis、php"
echo "bt启动:"
/etc/init.d/bt start
echo "nginx启动:"
/etc/init.d/nginx start
echo "mysqld启动:"
/etc/init.d/mysqld start
echo "redist启动:"
/etc/init.d/redis start
echo "php启动:"
/etc/init.d/php-fpm-73 start
/etc/init.d/php-fpm-74 start
echo ""
#当前主机映射设置
echo "当前宿主机映射设置如下: "
netsh.exe interface portproxy show all

#获取WSL中Ubuntu的内网IP
IP="$(hostname -I | awk '{print $1}')"
echo "本次虚拟IP为: $IP"
#.bat根目录地址,位置我这里取的是cmd启动时默认路径,也可以自己随便指定
path='/mnt/c/Users/AreoW/startUbuntu.bat'
echo "设定的目录文件为: $path"
#判断文件夹是否存在 -d

if [[ ! -f "$path" ]]; then
    echo "文件不存在"
else
    echo "文件存在,删除文件"
    sudo rm -rf $path
fi

echo "创建文件$path"
#创建文件
sudo touch $path

if [[ -f "$path" ]]; then 
    #给文件权限
    echo "创建文件成功,赋予权限"
    sudo chmod 777 $path
else
    echo "创建文件失败,退出"
    exit
fi

#写入内容
arrport=(80 22 443 3306 6379 8888 9000 9501)
#循环生成内容并写入到文件
for var in ${arrport[@]};
do
    #删除原本的端口映射设置
    d="netsh.exe interface portproxy delete v4tov4 listenport=$var listenaddress=0.0.0.0"
    #新建端口映射这是,这里默认ubuntu和主机的端口都是一样的
    c="netsh.exe interface portproxy add v4tov4 listenport=$var listenaddress=0.0.0.0 connectport=$var connectaddress=$IP"
    echo $d >>$path
    echo $c >>$path
done
$path
echo "文件写入内容成功,执行结果如下: "
#执行bat文件

netsh.exe interface portproxy show all

#以下是相关命令
#如果在win的cmd或Powershell中手动映射端口,则执行命令如下格式:
##删除原本映射端口配置,netsh不行试试netsh.exe ,或者是没安装就“百度一下”
# netsh interface portproxy delete v4tov4 listenport=9000 listenaddress=0.0.0.0
##新增端口映射配置
# netsh interface portproxy add v4tov4 listenport=9000 listenaddress=0.0.0.0 connectport=9000 connectaddress=172.21.225.15
##查看端口映射情况
# netsh interface portproxy show all

参考:我的私人博客=>大燕峰博客tper.pdy

执行效果类似:WSL中的Ubuntu自启动命令和端口映射,启动【宝塔】lnmp环境(写sh脚本思路)_第1张图片

你可能感兴趣的:(shell,ubuntu,服务器,windows,wsl)