开发板通过vm虚拟机(NAT转发)实现上网

环境

  1. 开发板 eth0 / 192.168.1.3 (连接虚拟机的USB网卡)
  2. vm虚拟机Ubuntu:
    ens38 / 192.168.1.2 USB网卡连接开发板
    ens33 / 192.168.150.11 虚拟机本地网卡,可上外网
  3. 网络路径:
    【开发板】-> 【ubuntu虚拟机USB网卡】 -> (通过NAT转发) -> 【 ubuntu虚拟机本地网卡】 ->【外网】

配置步骤

1. Ubuntu虚拟机的配置

1.1 打开NAT转发

 echo "1" > /proc/sys/net/ipv4/ip_forward

1.2 配置iptables转发规则

# 例如虚拟机连接开发板的USB网卡IP网段为 192.168.1.0,虚拟机能够上网的网卡是 ens33 (192.168.150.11),则配置如下:
sudo iptables -t nat -A POSTROUTING -o ens33 -s 192.168.1.0/24 -j MASQUERADE

1.3 查看nat转换表

sudo iptables -t nat -nL
$ sudo iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination     
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
target     prot opt source               destination     

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination     
DOCKER     all  --  0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination     
MASQUERADE  all  --  172.17.0.0/16        0.0.0.0/0       
MASQUERADE  all  --  192.168.1.0/24     0.0.0.0/0       

Chain DOCKER (2 references)
target     prot opt source               destination     
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

2. 开发板配置

配置开发板网络路由走虚拟机的USB网卡:

# 检查当前路由
route -n

# 如果有不正确的默认路由,先删除,例如
sudo route del default gw 192.168.1.1

# 配置正确的路由 (192.168.1.2是虚拟机的USB网卡IP)
sudo route add default gw 192.168.1.2

ping外网IP测试:

ping 8.8.8.8

设置DNS服务器和外网URL测试
编辑/etc/resolv.conf

# cat /etc/resolv.conf
...
nameserver 192.168.1.2
...

ping域名测试 ping www.baidu.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值