admin 管理员组

文章数量: 887825

本文环境

物理机OS: Windows10 专业版

虚拟机平台: VMware Workstation 16 Pro

虚拟机OS: Ubuntu 20.04

相信大家在使用 Ubuntu 中也有遇到不能上网,我也是尝试了很多的方法都不行,终于找到了三种种可行的方法。想快速解决网络问题的小伙伴直接跳到方法二。不过需要说明一下的是,方法一手动配置 IP 地址是长期的,而方法二自动配置 IP 地址是临时的,每次打开 Ubuntu 都是需要重新配置。方法三适合嵌入式开发的网络配置,不过忽略开发板和 PC 与 Ubuntu 之间的配置,也可以当作是解决 Ubuntu 不能上网的方法。

目录

方法一:手动配置 IP 地址

方法二:自动配置 IP 地址

方法三: PC、Ubuntu 和嵌入式开发板之间的 IP 配置 

远程连接 Ubuntu


方法一:手动配置 IP 地址

步骤一:

使用 ifconfig 命令查看网络设备。

使用 ifconfig -a查看所有网络设备。

 

 使用命令 sudo ifconfig ens33 up 就能开启指定网卡了,然后再查看网络设备,就有了 ens33 网卡的信息。但是发现网卡 ens33 少了 IPv4 的 IP 地址,既然是缺少 IPv4 的 IP 地址,那我们就开始配置 IP 地址。

步骤二:

首先查看物理主机 (Windows) 的适配器信息。

 右击网络图标,然后点击打开“网络和 Internet”设置。

这样就可以查看到详细的 IPv4 地址配置,其中 IP 地址和子网掩码是都会有的,没有默认网关或DNS服务器地址没有也别着急,我们可以自己配置。

默认网关就直接把 IP 地址最后 8 位改成 2 就好了。

DNS 服务器地址可以选择一个免费 DNS 服务器地址,我这里选择是阿里的。

阿里公共 DNS 服务器地址是:223.5.5.5和223.6.6.6

Google 公共 DNS 服务器地址是:8.8.8.8和8.8.4.4

114DNS 服务器地址是:114.114.114.114 和 114.114.115.115

如果服务在国外,推荐使用 Google DNS。

步骤三:

设置虚拟机网络适配器的网络连接为自定义 VMnet8(NAT 模式),VMNet8 是 VMware 虚拟出来的网卡。

 

 

 

 其中子网 IP 就设置为物理主机 (Windows)IPv4 把最后 8 位设置为 0,其它的设置保持和物理主机(Windows) 中的设置一样就可以了。

然后点击确定,最后记得先点击应用再点击确定。

步骤四:

配置静态 IP 地址,Ubuntu20.04 使用 netplan 作为默认的网络管理器。netplan 网络配置从 Ubuntu 18.04 开始首次引入,在新版的 Ubuntu 中,通过 /etc/netplan 目录下的 yaml 文件进行 IP和 DNS 配置。我们可以通过命令编辑 /etc/netplan 目录下的配置文件。

sudo gedit /etc/netplan/01-network-manager-all.yaml

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.137.128/24]
      gateway4: 192.168.137.2
      nameservers:
        addresses: [223.5.5.5,223.6.6.6]

可以直接复制、粘贴到yaml配置文件里,把IP地址、网关、DNS地址改成之前设置就可以了。

注意:这里的 IP 地址不可以和物理主机 IPv4 的地址一样,可以设置为除网关,广播和物理主机 IP 之外的 IP 地址,例如我的物理主机 IP 地址是192.168.137.130,虚拟机的 IP 地址就设置为192.168.137.128。记得保存后再关闭文本编辑器。

配置完成后,需要执行 sudo netplan apply 使配置生效,再次使用 ifconfig 检查网络配置。

现在就可以发现我们的 ens33 网卡有了 IPv4 的 IP 地址,再 pingwww.baidu 试试。 

 这样我们的 Ubuntu 就已经连上网络了。

方法二:自动配置 IP 地址

ifconfig 查看只有网卡 lo 的信息。

输入 ifconfig -a 命令,查看所有网络设备的信息。

 

使用命令 sudo ifconfig ens33 up 就能开启指定网卡了,然后再查看网络设备,就有了 ens33 网卡的信息。但是发现网卡 ens33 少了 IPv4 的 IP 地址。

输入命令 sudo dhclient ens33 ,在查看就有了 IPv4 的地址了。

 dhclient 命令的功能是用于动态获取 IP 地址,释放 IP 地址使用参数 -r 。这样就不用向上面方法一一样手动配置 IP 地址了,NAT,桥接模式都可以。现在就可以正常上网了,ping www.baidu试试。

方法三: PC、Ubuntu 和嵌入式开发板之间的 IP 配置 

在嵌入式开发中有需要将 PC、Ubuntu 和开发板之间用过网络连通用来传输文件,所以要实现笔记本电脑和虚拟机能够通过 WIFI 上网,并且开发板通过网线连接笔记本电脑和虚拟机在同一个网段内,最终实现 TFTP 或 NFS 来进行开发调试。

步骤一:配置主机 IP

首先使用网线连接好主机和开发板,右击以太网选择属性。 

进入属性界面,选择 Internet 协议版本 4,进入网络配置界面。 

由于现在是电脑的网口和开发板直连所以不能自动获取 IP,要修改为“使用下面的 IP 地址”,然后将本机 IP 设置为 192.168.1.2,子网掩码为 255.255.255.0,默认网关设置为192.168.1.1,设置好后选择确定退出。主机的有线网卡就配置好了。

步骤二:配置虚拟机的 IP

打开 VMware 里的虚拟网络编辑器。

选择更改设置。

 选择 VMnet0,进行以下配置,选择无线网卡,但是每个人的网卡不同名称也不同,可以在网络连接页面中查看。

 如果虚拟网络编辑器中没有 VMnet2,就需要添加,有就跳过这一步。

 然后选择 VMnet2,选择有线网卡,进行如下配置,网卡名称同样也是在网络连接页面中查看。配置完后,点击应用,在选择确定退出页面。

 在启动 Ubuntu 之前先点击编辑虚拟机设置,点击网络适配器,选择自定义 VMnet0,然后点击添加一个网络适配器,选择自定义 VMnet2 后,点击确定退出。

 进入 Ubuntu 中打开中断,输入 ifconfig -a 来查看所有的网络,其中 ens33 和 ens37 分别对应VMnet0 和 VMnet2。

我们使用以下命令配置有线网卡(ens37,可能名称会不一样)。

sudo ifconfig ens37 192.168.1.3

 

现在 ens33 还没有配置好,我们先查看 PC 的 WLAN 的 IP 地址是多少,打开 CMD 输入 ipconfig 命令。

知道了 PC 的 IP、掩码,我们使用以下命令配置无线网卡 ens33。

sudo ifconfig ens33 172.20.10.5 netmask 255.255.255.240

配置完,来 ping 一下百度和 PC 进行验证。

步骤三: 配置开发板 IP 

在获取 IP 之前要确定开发板已经与 PC 网口直连,我们然后在终端输入以下命令来手动赋予开发板 IP 地址。

ifconfig eth0 192.168.1.4

 ping 一下 PC 和 Ubuntu 验证一下。

远程连接 Ubuntu

如果需要在 Windows 上远程登陆 Ubuntu,那还需要开启ssh服务。

安装 openssh-server 时,先更新一下 apt,输入 sudo apt-get update,不然可能安装不了。

更新完 apt 后,输入sudo apt-get install openssh-server 安装openssh-server。

 安装完后,还需开启 ssh 服务 sudo service ssh start ,然后检查一下 输入netstat -anp | more

看到有 22 号端口就证明 ssh 服务已开启,22 号端口就是 ssh 应用端口,ssh 用于远程连接Linux。 现在就可以使用 Xshell、FinalShell 等登录 Ubuntu 了。

使用的是 FinalShell,其中名称随便填,主机就是 Ubuntu 的 IP 地址,可以使用 ifconfig 命令查看,用户名就是 Ubuntu 用户的名称,如果是 root 用户那就填 root,然后把用户密码填上就行了。

 

以上就是解决 Ubuntu 不能上网、嵌入式开发的 IP 配置以及不能远程连接虚拟机的全部内容了,如果有错误或疑问可以在评论区交流喔~。

本文标签: 嵌入式 网络 Ubuntu