当前位置: 首页 > news >正文

导航类网站怎么做排名小说网站排名前十

导航类网站怎么做排名,小说网站排名前十,网站建设公司软文,遂宁网站建设略奥网络目录:前言:实现原理:实现步骤1、开启hyper-v2、编写桥接网络powershell脚本3、编写网络配置脚本实现结果取消桥接最后前言: 在我们经常和机器人打交道的这群人中有一个需求,那就是希望我们的电脑主机能够和外部的机器人…

目录:

    • 前言:
    • 实现原理:
    • 实现步骤
      • 1、开启hyper-v
      • 2、编写桥接网络powershell脚本
      • 3、编写网络配置脚本
    • 实现结果
    • 取消桥接
    • 最后

前言:

在我们经常和机器人打交道的这群人中有一个需求,那就是希望我们的电脑主机能够和外部的机器人系统进行组网,比如:通过ROS组网通信,调试机器人等。但是,WSL2是在windows主机内部建立的虚拟局域网,其ip从外部无法访问。网上实现外网Ping通WSL的很多文章提到端口转发,但是ROS的文档里面要求用到所有的端口,所以采用端口转发不太实际。所以要想办法让WSL2的ip暴露出来,使得外部的主机能够访问到。

实现原理:

将wsl2自建的虚拟NAT网络桥接到windows主机网卡上

实现步骤

1、开启hyper-v

桥接功能需要windows的hyper-v组件支持。首先,进入控制面板—程序—启用或关闭windows功能,勾选hyper-v,确认后重启电脑。

image-20220915090649801

2、编写桥接网络powershell脚本

在windows中新建一个ps1文件,例如network-on.ps1

# 检查并以管理员身份运行PS并带上参数
$currentWi = [Security.Principal.WindowsIdentity]::GetCurrent()
$currentWp = [Security.Principal.WindowsPrincipal]$currentWi
if( -not $currentWp.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{$boundPara = ($MyInvocation.BoundParameters.Keys | foreach{'-{0} {1}' -f  $_ ,$MyInvocation.BoundParameters[$_]} ) -join ' '$currentFile = $MyInvocation.MyCommand.Definition$fullPara = $boundPara + ' ' + $args -join ' 'Start-Process "$psHome\pwsh.exe"   -ArgumentList "$currentFile $fullPara"   -verb runasreturn
}
#首先随意执行一条wsl指令,确保wsl启动,这样后续步骤才会出现WSL网络
echo "check the wsl whether it is running..."
wsl --cd ~ -e ls
echo "get network card infomation..."
Get-NetAdapter  # 获取网卡信息
echo "Bridging WSL network to Ethernet..."
# 注意这里,这里是把wsl的虚拟网卡 [WSL] 桥接到我们主机网卡 [以太网],如果你想桥接到wifi网卡那应该做相应的调整
Set-VMSwitch WSL -NetAdapterName 以太网 
echo "`n Modifying WSL network configuration..."
# 这里会去运行我们wsl中的一个网络配置脚本
wsl --cd ~ -e sh -c ./Programs/network.sh
echo "`ndone!!!"
pause

编写好powershell脚本之后,我们需要修改这个脚本的启动方式,以及赋予管理员权限启动这个脚本。在打开方式中选择其它应用,找到powershell安装路径下的可执行文件pwsh.exe,勾选始终使用此应用打开.ps1文件,这样就可以直接双击运行了。我这里的路径是在这个地方:

image-20220915093039492

注意:默认情况下windows powershell不允许执行自定义脚本,所以需要修改设置打开执行权限。管理员方式打开powershell,执行Set-ExecutionPolicy UnrestrictedSet-ExecutionPolicy RemoteSigned ,按y确认即可

image-20220915095003731

3、编写网络配置脚本

在实现网卡桥接之后,我们要进入wsl配置我们的网络(IP、子网掩码、网关等)。我这里是通过写入一个脚本来实现,进入wsl,在你的文件夹下面编写如下脚本

#!/bin/bash
new_ip=192.168.1.233
brd=192.168.1.255
gateway=192.168.1.1
nameserver=192.168.1.1
net_dev=eth0
# 注意,下面这里需要用到wsl的sud执行命令,所以需要填写你wsl的密码
echo "[your password]" | sudo -S ip addr del $(ip addr show $net_dev | grep 'inet\b' | awk '{print $2}' | head -n 1) dev $net_dev
sudo ip addr add $new_ip/24 broadcast $brd dev $net_dev
sudo ip route add 0.0.0.0/0 via $gateway dev $net_dev
sudo sed -i "\$c nameserver $nameserver" /etc/resolv.conf

注意:我这里的网关是 192.168.1.1,我把wsl的ip配置为 192.168.1.233 ,如果你的环境不同需要做相应的调整

实现结果

我们双击我们写的network-on.ps1运行脚本即可实现网络的桥接,下面是运行结果

image-20220915093432005

此时我们再到wsl中查看一下wsl的IP地址

image-20220915093611472

可以看到wsl的IP已经和我们Windows主机的ip在同一个网段上了,我这里window的ip是

image-20220915093908840

我们在我们局域网里面的其他电脑ping一下我们的wsl看看是否可以ping通

image-20220915094100120

可以看到我们已经实现了把wsl的ip暴露出来,并且可以在局域网中的其他主机进行访问,这样我们后面就可以配置ROS组网进行机器人的调试了。

取消桥接

注意:上面说的这种桥接方式在电脑重启之后这个配置会清除。另外,我们也可以通过写一个脚本实现桥接网络配置的一键清除,同样地编写一个ps1脚本,并且设置默认打开方式

# 检查并以管理员身份运行PS并带上参数
$currentWi = [Security.Principal.WindowsIdentity]::GetCurrent()
$currentWp = [Security.Principal.WindowsPrincipal]$currentWi
if( -not $currentWp.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{$boundPara = ($MyInvocation.BoundParameters.Keys | foreach{'-{0} {1}' -f  $_ ,$MyInvocation.BoundParameters[$_]} ) -join ' '$currentFile = $MyInvocation.MyCommand.Definition$fullPara = $boundPara + ' ' + $args -join ' 'Start-Process "$psHome\pwsh.exe"   -ArgumentList "$currentFile $fullPara"   -verb runasreturn
}
echo "Unbridge Network..."
Set-VMSwitch WSL  -SwitchType Internal
echo "reboot wsl..."
wsl --shutdown
wsl --cd ~ -e ls
echo "`ndone"
pause

最后

通过这两个脚本,每次我们可以很轻松实现wsl虚拟网卡和window网卡桥接的建立和取消

image-20220915094724660

下一篇我们通过wsl和局域网中的小电脑进行ROS组网,实现一下远程调试!

http://www.lbrq.cn/news/2779993.html

相关文章:

  • 做电影网站用什么软件叫什么名字吗百度建站平台官网
  • 什么网站有做qq群排名的有哪些网站可以免费推广
  • 北京公司网站建站友情链接怎么购买
  • 外贸销售管理制度优化教程
  • 阿里云手机做网站百度移动开放平台
  • 贵阳网站制作免费品牌维护
  • 餐饮网站网页设计代码微信推广平台哪里找
  • 南通网站制作计划舆情监测系统
  • 网站制作 知乎seo挖关键词
  • 兰州论坛网站建设建立网站的基本步骤
  • 家居网站建设定位分析论文网店怎么推广和宣传
  • 外贸商城源码青岛官网seo公司
  • 网站备案 广东品牌推广和品牌营销
  • webapi做网站seo01网站
  • 做韩国护的网站市场营销策略
  • wordpress目录分类什么是搜索引擎优化推广
  • 商城网站制作的教程山东建站
  • 做网站付多少定金2022智慧树互联网与营销创新
  • dede网站经常被挂马 怎么办百度联盟app
  • 阿里巴巴国际站首页兰州seo外包公司
  • 西安网站制作公司排日本免费服务器ip地址
  • 网站怎么做要多少钱上海市人大常委会
  • 怎样上传网站程序兰州seo实战优化
  • 如何做高并发网站的架构设计杭州百度快速排名提升
  • 沈阳做网站一诚金网络专业360广告联盟平台
  • 学做网站要学什么软件百度网盘电脑版下载
  • 家具行业做那个国际网站比较好搜索引擎营销的特点是
  • 小说网站开发猪八戒软文素材
  • 注册完域名 如何做网站张家口网站seo
  • 福田欧曼故障灯图解大全东莞网站优化关键词排名
  • Spring事务源码
  • [激光原理与应用-305]:光学设计 - 单个光学元件(纯粹的光学元件)的设计图纸的主要内容、格式与示例
  • flink+clinkhouse安装部署
  • Leetcode 343. 整数拆分 动态规划
  • Day8--滑动窗口与双指针--1004. 最大连续1的个数 III,1658. 将 x 减到 0 的最小操作数,3641. 最长半重复子数组
  • 【速通】深度学习模型调试系统化方法论:从问题定位到性能优化