目录摘要网络连接拓扑图虚拟机虚拟网络编辑1PC主机配置允许网络转发2配置开发板的相关网络3PC主机添加对应路由4虚拟机添加对应路由摘要主要介绍开发板、PC主机、虚拟机 的网络连接拓扑图关系以及解决开发板和PC主机及虚拟机之间ping不通的解决办法。网络连接拓扑图开发板PC主机虚拟机 拓扑图如上组成拓扑结构要求开发板能和主机及虚拟机相互ping通以便于虚拟机开启NFS服务开发板挂在nfs用与开发板和虚拟机之间共享文件以便使用PC主机ssh方式访问开发板调试和使用cp指令快捷进行开发板和虚拟机的文件传输等。问题描述pc主机的两个网口按照如上网络拓扑连接网口1直连路由器IP192.168.2.132用于访问互联网网口2直连开发板网口2配置IP:192.168.2.238开发板配置ip192.168.2.223开发板和主机的两个网口子码掩码都是255.255.255.0并且关闭pc主机的防火墙结果开发板都ping不通主机的两个网口如果开发板不直连PC机而是和PC一起连接到共同的路由器上则能ping通PC机但是如果将开发板改成192.168.10.223直连的pc网口2改成192.168.10.238那么开发板和这个网口就能ping通但ping不通主机网口1的IP192.168.2.132。1其实主机网口和开发板IP配成同网段的时候虽然ping不通主机但是主机 arp -a 查看arp表可以看到开发板的IP的静态表的说明其实还是有ping的数据包过来了。2虽然开发板直连路由器可以直接解决问题但是当路由器没有多余网口时就需要解决此问题一般不建议配置和网口1在同一网段容易IP冲突如公司内共用路由容易配成和别人电脑IP冲突按照【虚拟机虚拟网络编】章节方式配置此章节选择仅主机连接方式非桥接方式桥接方式也是可以的虚拟机虚拟网络编辑举例修改虚拟网络编辑在PC上如下可以看到一共有两个虚拟网络如果需要修改按如下步骤修改即可举例VMnet1可以修改连接方式和子网IP如选择仅主机模式如果PC接了WIFI模块桥接模式可以选择桥接到此wifi模块如下具体虚拟机配置网络适配器配置完成后在虚拟机中生成的IP如下可以发现有两个网段即是配置虚拟网络时配置的两个子网的网段其中192.168.37.129即可使得虚拟机能够访问外网。192.168.150.128即可使得虚拟机和主机PC连接当PC上网口和单板直连时可使用此虚拟机IP和单板IP通信。如果单板和虚拟机相互ping不通或只能单方面ping通参考后续章节配置即可主要关键点1PC主机配置允许网络转发启用PC的IP转发功能让PC充当路由器转发开发板到路由器的流量。Windows系统以管理员身份运行cmd命令1启用IP转发 reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /t REG_DWORD /d 1 /f 2重启网络服务或重启PC 3使能forwarding netsh interface ipv4 set interface 网口2名称 forwardingenabled netsh interface ipv4 set interface 网口1名称 forwardingenabled如果主机是linux系统root权限# 启用IP转发 sysctl -w net.ipv4.ip_forward1 # 持久化设置可选 echo net.ipv4.ip_forward1 /etc/sysctl.conf # 应用更改 sysctl -p2配置开发板的相关网络开发板网线直连PC网口场景在开发板上设置默认网关与开发板直连的PC主机的网口配置成静态IP如192.168.10.238。配置开发板IP开发板如果没有IP可配置IP:Ifconfig eth0 192.168.10.223 netmask 255.255.255.0route -ne 指令查看开发板路由可以看到默认网关也是192.168.10.1如果发现后续步骤都操作完后开发板和虚拟机还是ping不通则在开发板中按如下配置进行配置直接将默认网关替换成直连网口的IP。# 开发板的网关应指向PC网口2的IP192.168.10.238。 # 如果开发板是Linux系统使用命令 ip route add default via 192.168.10.238 # 如果提示已经存在则使用change替换 ip route change default via 192.168.10.238开发板通过wifi连接PCwifi的场景开发板通过wifi连接PC后在PC的wifi列表中找打连接的开发板wifi点击【属性】滚动到下面即可看到IP信息或者进入cmd命令界面ipconfig也可以到开发板中修改网关直接配置成wifi连接的IPip route add default via 192.168.10.2183PC主机添加对应路由# PC 主机 # 添加永久路由-p添加永久路由不带 -p 则是临时路由关机后路由删除 route add -p 192.168.150.0 mask 255.255.255.0 192.168.10.238 metric 1 route add -p 192.168.150.128 mask 255.255.255.0 192.168.10.238 metric 1 route PRINT可以看到PC主机已经将 永久路由: 网络地址 网络掩码 网关地址 跃点数 192.168.2.69 255.255.255.0 192.168.2.1 1 192.168.150.0 255.255.255.0 192.168.10.238 1 192.168.150.128 255.255.255.255 192.168.10.238 1 4虚拟机添加对应路由需要在虚拟机添加对应路由的原因是开发板和虚拟机不在同一网段如果在同一网段则无需再在虚拟机去添加路由如步骤2配置开发板的IP为192.168.150.223则开发板和虚拟机在同一网段下面举例开发板和虚拟机不在同一网段添加路由的方法。临时添加路由重启虚拟机路由消失# 虚拟机临时 sudo ip route add 192.168.10.0/24 via 192.168.150.1 ip route show添加永久路由nmcli connection show查看结果如下NAME UUID TYPE DEVICE ens33 5f2e... ethernet ens33 Wired connection 1 9a3c... ethernet ens37记下ens37对应的NAME例如Wired connection 1。使用nmcli修改该连接的 IPv4 路由配置将连接名替换为实际的名称sudo nmcli connection modify 连接名 ipv4.routes 192.168.10.0/24 192.168.150.1 # 例如若连接名为 Wired connection 1 sudo nmcli connection modify Wired connection 1 ipv4.routes 192.168.10.0/24 192.168.150.1重新激活连接使配置生效sudo nmcli connection up 连接名 # 如 sudo nmcli connection up Wired connection 1验证路由是否已添加ip route show # 看到如下内容 192.168.10.0/24 via 192.168.150.1 dev ens37 proto static metric 100至此开发板、PC主机、虚拟机 之间都应该能够相关ping通PC主机关闭防护墙
开发板与PC、虚拟机网络拓扑及ping不通常见解决方案
目录摘要网络连接拓扑图虚拟机虚拟网络编辑1PC主机配置允许网络转发2配置开发板的相关网络3PC主机添加对应路由4虚拟机添加对应路由摘要主要介绍开发板、PC主机、虚拟机 的网络连接拓扑图关系以及解决开发板和PC主机及虚拟机之间ping不通的解决办法。网络连接拓扑图开发板PC主机虚拟机 拓扑图如上组成拓扑结构要求开发板能和主机及虚拟机相互ping通以便于虚拟机开启NFS服务开发板挂在nfs用与开发板和虚拟机之间共享文件以便使用PC主机ssh方式访问开发板调试和使用cp指令快捷进行开发板和虚拟机的文件传输等。问题描述pc主机的两个网口按照如上网络拓扑连接网口1直连路由器IP192.168.2.132用于访问互联网网口2直连开发板网口2配置IP:192.168.2.238开发板配置ip192.168.2.223开发板和主机的两个网口子码掩码都是255.255.255.0并且关闭pc主机的防火墙结果开发板都ping不通主机的两个网口如果开发板不直连PC机而是和PC一起连接到共同的路由器上则能ping通PC机但是如果将开发板改成192.168.10.223直连的pc网口2改成192.168.10.238那么开发板和这个网口就能ping通但ping不通主机网口1的IP192.168.2.132。1其实主机网口和开发板IP配成同网段的时候虽然ping不通主机但是主机 arp -a 查看arp表可以看到开发板的IP的静态表的说明其实还是有ping的数据包过来了。2虽然开发板直连路由器可以直接解决问题但是当路由器没有多余网口时就需要解决此问题一般不建议配置和网口1在同一网段容易IP冲突如公司内共用路由容易配成和别人电脑IP冲突按照【虚拟机虚拟网络编】章节方式配置此章节选择仅主机连接方式非桥接方式桥接方式也是可以的虚拟机虚拟网络编辑举例修改虚拟网络编辑在PC上如下可以看到一共有两个虚拟网络如果需要修改按如下步骤修改即可举例VMnet1可以修改连接方式和子网IP如选择仅主机模式如果PC接了WIFI模块桥接模式可以选择桥接到此wifi模块如下具体虚拟机配置网络适配器配置完成后在虚拟机中生成的IP如下可以发现有两个网段即是配置虚拟网络时配置的两个子网的网段其中192.168.37.129即可使得虚拟机能够访问外网。192.168.150.128即可使得虚拟机和主机PC连接当PC上网口和单板直连时可使用此虚拟机IP和单板IP通信。如果单板和虚拟机相互ping不通或只能单方面ping通参考后续章节配置即可主要关键点1PC主机配置允许网络转发启用PC的IP转发功能让PC充当路由器转发开发板到路由器的流量。Windows系统以管理员身份运行cmd命令1启用IP转发 reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /t REG_DWORD /d 1 /f 2重启网络服务或重启PC 3使能forwarding netsh interface ipv4 set interface 网口2名称 forwardingenabled netsh interface ipv4 set interface 网口1名称 forwardingenabled如果主机是linux系统root权限# 启用IP转发 sysctl -w net.ipv4.ip_forward1 # 持久化设置可选 echo net.ipv4.ip_forward1 /etc/sysctl.conf # 应用更改 sysctl -p2配置开发板的相关网络开发板网线直连PC网口场景在开发板上设置默认网关与开发板直连的PC主机的网口配置成静态IP如192.168.10.238。配置开发板IP开发板如果没有IP可配置IP:Ifconfig eth0 192.168.10.223 netmask 255.255.255.0route -ne 指令查看开发板路由可以看到默认网关也是192.168.10.1如果发现后续步骤都操作完后开发板和虚拟机还是ping不通则在开发板中按如下配置进行配置直接将默认网关替换成直连网口的IP。# 开发板的网关应指向PC网口2的IP192.168.10.238。 # 如果开发板是Linux系统使用命令 ip route add default via 192.168.10.238 # 如果提示已经存在则使用change替换 ip route change default via 192.168.10.238开发板通过wifi连接PCwifi的场景开发板通过wifi连接PC后在PC的wifi列表中找打连接的开发板wifi点击【属性】滚动到下面即可看到IP信息或者进入cmd命令界面ipconfig也可以到开发板中修改网关直接配置成wifi连接的IPip route add default via 192.168.10.2183PC主机添加对应路由# PC 主机 # 添加永久路由-p添加永久路由不带 -p 则是临时路由关机后路由删除 route add -p 192.168.150.0 mask 255.255.255.0 192.168.10.238 metric 1 route add -p 192.168.150.128 mask 255.255.255.0 192.168.10.238 metric 1 route PRINT可以看到PC主机已经将 永久路由: 网络地址 网络掩码 网关地址 跃点数 192.168.2.69 255.255.255.0 192.168.2.1 1 192.168.150.0 255.255.255.0 192.168.10.238 1 192.168.150.128 255.255.255.255 192.168.10.238 1 4虚拟机添加对应路由需要在虚拟机添加对应路由的原因是开发板和虚拟机不在同一网段如果在同一网段则无需再在虚拟机去添加路由如步骤2配置开发板的IP为192.168.150.223则开发板和虚拟机在同一网段下面举例开发板和虚拟机不在同一网段添加路由的方法。临时添加路由重启虚拟机路由消失# 虚拟机临时 sudo ip route add 192.168.10.0/24 via 192.168.150.1 ip route show添加永久路由nmcli connection show查看结果如下NAME UUID TYPE DEVICE ens33 5f2e... ethernet ens33 Wired connection 1 9a3c... ethernet ens37记下ens37对应的NAME例如Wired connection 1。使用nmcli修改该连接的 IPv4 路由配置将连接名替换为实际的名称sudo nmcli connection modify 连接名 ipv4.routes 192.168.10.0/24 192.168.150.1 # 例如若连接名为 Wired connection 1 sudo nmcli connection modify Wired connection 1 ipv4.routes 192.168.10.0/24 192.168.150.1重新激活连接使配置生效sudo nmcli connection up 连接名 # 如 sudo nmcli connection up Wired connection 1验证路由是否已添加ip route show # 看到如下内容 192.168.10.0/24 via 192.168.150.1 dev ens37 proto static metric 100至此开发板、PC主机、虚拟机 之间都应该能够相关ping通PC主机关闭防护墙