linux开发板连接virtualbox虚拟机ubuntu的usb网卡,访问外网方法。

  1. 环境介绍:

    1. linux开发板是mx6ull。virtualbox虚拟机是ubuntu18.04。网卡是usb网卡。虚拟机的网卡设置:a.NAT-enp0s3。b.桥接电脑的wifi网卡-enp0s8。c.桥接usb网卡-enp0s9。
    2. ubuntu网络设置:a. usb网卡手动分配ip地址:192.168.2.2,网关是192.168.2.2。b.桥接wifi网卡是路由器自动分配ip地址。c.NAT网卡不用管。
    3. 开发板网络设置:a.手动分配ip:192.168.2.3,网关是192.168.2.2,DNS:8.8.8.8。
  2. 打开虚拟机转发:

    1. 虚拟机开启ip转发: # 临时开启

      sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

      永久生效

      sudo sh -c "echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf"

      sudo sysctl -p

    2. 虚拟机配置NAT转发:

      规则sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE

      sudo iptables -A FORWARD -i enp0s9 -o enp0s3 -j ACCEPT

      sudo iptables -A FORWARD -i enp0s3 -o enp0s9 -j ACCEPT

    3. 开发板配置网关和DNS:

      配置IP

      ifconfig eth0 192.168.2.3 netmask 255.255.255.0

      配置默认网关(指向虚拟机)

      route add default gw 192.168.2.2

      配置DNS

      echo "nameserver 8.8.8.8" > /etc/resolv.conf

    4. 测试

      开发板上ping虚拟机

      ping 192.168.2.2

      开发板上ping外网

      ping 8.8.8.8

      开发板上ping域名

      ping www.baidu.com

  3. 调试方法:

    1. 确认虚拟机IP转发已开启:cat /proc/sys/net/ipv4/ip_forward。结果1是开启。0是没有。

    2. 确认iptables规则存在:

      sudo iptables -t nat -L -n。

      正确的显示:Chain POSTROUTING (policy ACCEPT 20 packets, 1391 bytes)

      pkts bytes target prot opt in out source destination

      8 597 MASQUERADE all -- * enp0s3 0.0.0.0/0 0.0.0.0/0

      sudo iptables -L FORWARD -n

      正确的显示:Chain FORWARD (policy ACCEPT 6 packets, 454 bytes)

      pkts bytes target prot opt in out source destination

      0 0 ACCEPT all -- enp0s9 enp0s3 0.0.0.0/0 0.0.0.0/0

      0 0 ACCEPT all -- enp0s3 enp0s9 0.0.0.0/0 0.0.0.0/0

    3. 在虚拟机上通过enp0s3网卡:ping -I enp0s3 8.8.8.8

    4. 虚拟机监听内网口:tcpdump -i enp0s9 icmp(在内网ping 8.8.8.8)

      正确的显示:tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

      listening on enp0s9, link-type EN10MB (Ethernet), capture size 262144 bytes

      21:29:55.849889 IP 192.168.2.3 > dns.google: ICMP echo request, id 21248, seq 0, length 64

      21:29:56.387531 IP dns.google > 192.168.2.3: ICMP echo reply, id 21248, seq 0, length 64

    5. 监听外网口:tcpdump -i enp0s3 icmp(在内网ping 8.8.8.8)

      正确的显示:tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

      listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes

      ^C21:36:53.569286 IP yang-ubuntu18 > dns.google: ICMP echo request, id 21760, seq 0, length 64

相关推荐
生活爱好者!2 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
groundhappy3 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
尽兴-3 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
通信小小昕3 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
壮哥_icon4 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
RD_daoyi4 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
电商API_180079052474 小时前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
张小姐的猫5 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
小稻穗5 小时前
市场调研样本选型坐标系:2026六家国内样本平台能力横向校验
大数据·运维·数据分析
栩栩云生5 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程