我的系统网路信息:
wsl的linux系统:172.27.10.2 netmask 255.255.240.0 broadcast 172.27.15.255
windows系统的wsl网卡的IP地址:172.27.0.1子网掩码:255.255.255.0
还有块有线网卡ip地址:192.168.0.233 子网掩码:255.255.255.0
有线网卡上面连接一块开发板:192.168.0.100子网掩码:255.255.255.0
现在在Windows系统里面ping 192.168.0.100可以连通,ping172.27.10.2也可以ping通,但是在linux子系统172.27.10.2系统中无法ping通192.168.0.100这块开发板,Windows系统中如何做路由设置,才能实现linux子系统与开发板实现互联互通?
1.开发板
开发板上面运行:route add -net 172.27.0.0/16 gw 192.168.0.233
开机自动添加路由:
在终端中打开“/etc/rc.d/init.d/start_userapp”。把上面的语句添加到文件里面,实现开发板上电后自动添加路由。
2.wsl linux子系统
wsl linux运行:sudo ip route add 192.168.0.0/24 via 172.27.0.1
添加/etc/systemd/system/add-route.service文件:
[Unit]
Description=Add static route to network
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c 'ip route add 192.168.0.0/24 via 172.27.0.1'
[Install]
WantedBy=multi-user.target
重新加载 Systemd 配置: 保存并关闭文件后,运行以下命令来重新加载 Systemd 配置:
sudo systemctl daemon-reload
启用服务: 使用以下命令启用服务,以便在启动时运行:
sudo systemctl enable add-route.service
我已经制作一键添加路由脚本:
updateroute.sh · MrDeng/imx280astudy - Gitee.com
添加到自动启动:
按 Windows 徽标键+ R,键入“shell:startup”,然后选择“确定”。 这将打开“启动”文件夹。
将该应用的快捷方式从文件位置复制并粘贴到“启动”文件夹中。
3.Windows系统
windows系统有线网卡:192.168.0.233 255.255.255.0 不要设置网关
显示windows系统中的网卡:
netsh interface ipv4 show interfaces
powershelll启用有线网卡转发:
netsh interface ipv4 set int "以太网-RealTek" forwarding=enabled
powershell启用wsl连接的虚拟网卡转发:
netsh interface ipv4 set int "vEthernet (WSL)" forwarding=enabled
注册表中启用转发:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v IPEnableRouter /t REG_DWORD /d 1 /f
net start sharedaccess
net stop sharedaccess
一键启用转发:
启用有线网卡及wsl网卡的转发功能.bat · MrDeng/imx280astudy - Gitee.com
4.测试连接
wsl linux连接开发板dropbear服务端
sudo nano ~/.ssh/config写入:
Host 192.168.0.100 HostKeyAlgorithms ssh-dss,ssh-rsa
通过ssh连接开发板
ssh root@192.168.0.100