wsl 利用 powershell 实现主机IP端口转发

我的wsl2 安装的ubuntu 20.04 , 脚本如下, 具体看注释.

#!/bin/bash
#把wsl的IP导出为全局变量,方便传参(亦可直接给值).
export hostIP=`ifconfig | grep 'broadcast' | awk '{print $2}'`
#调用windows的powershell 新建线程执行.
powershell.exe Start-Process powershell -Verb RunAs \
-ArgumentList "powershell","C:\Users\yangz\developer\uu.ps1","$hostIP"

wsl里的脚本需要调用一个powershell脚本. 要不然执行起来会有问题.(大家可以自行研究下,有更方便的还请留言) .

# Set-ExecutionPolicy -ExecutionPolicy Unrestricted
# 需要执行上面这句,要不然不能执行ps1脚本. 下面这条是默认值.
# Set-ExecutionPolicy -ExecutionPolicy Restricted
# 在 wsl里 执行 export hostIP=`ifconfig | grep 'inet 172' | awk '{print $2}'
# 在wsl 里运行这句话 powershell.exe Start-Process powershell -Verb RunAs -ArgumentList "powershell","C:\Users\yangz\developer\uu.ps1","$hostIP"
# 希望可以修改hosts , 
# 转发主机IP+端口到wsl ,实现局域网访问
(Get-Content C:\Windows\System32\drivers\etc\hosts) | Where-Object {$_ -notmatch 'ubuntu.wsl'} | Set-Content C:\Windows\System32\drivers\etc\hosts
#注意编码,要不然乱码 nul...nul...
"$args ubuntu.wsl" | Out-File -Encoding utf8 -Append C:\Windows\System32\drivers\etc\hosts
# 再配合 netsh interface portproxy add v4tov4 listenport= 9527 listenaddress=0.0.0.0 connectport=9527 connectaddress= ubuntu.wsl
# 重启后不生效的话. 就删除了在重新加 netsh interface portproxy delete v4tov4 listenport= 9527 listenaddress=0.0.0.0
netsh interface portproxy delete v4tov4 listenport= 9527 listenaddress=0.0.0.0
netsh interface portproxy add v4tov4 listenport= 9527 listenaddress=0.0.0.0 connectport=9527 connectaddress= ubuntu.wsl

本人小白,此文抛砖引玉, 希望江湖大侠 走过路过 不吝赐教. /bq

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值