羊小圈

专注开发技术的圈子

VirtualBox下ubuntu系统配置静态IP并进行ssh远程连接

2020/04/12

最近把个人电脑上的虚拟机由VMware换成了VirtualBox,然后就重新安装了一遍ubuntu,由于不熟悉VirtualBox的网络管理,最后为了实现用Xshell远程连接ubuntu系统,着实踩了点坑,现在把其中的配置过程大概记录一下。

本次安装的是ubuntu 18.04.2 LTS版本,具体可以用lsb_release -a命令查看:

首先,VirtualBox中刚装完的系统只有enp0s3网卡可用,ip类似10.0.2.15,使用的是“网络地址转换(NAT)”这种连接方式,该网卡用于虚拟机中的系统访问外网,宿主机是无法ping通这个ip的。所以需要手动为ubuntu另外添加一块网卡,这里添加的是以“仅主机(Host-Only)网络”为连接方式的网卡,如下图,该操作需要在ubuntu系统关机以后进行:

这种连接方式相当于在宿主机上搭建一个模拟的局域网,所有虚拟机通过这个局域网可以互访。该网卡ip类似192.168.56.1,宿主机可以ping通虚拟机,虚拟机之间也可以互相ping通。

添加完网卡后启动虚拟机,使用命令ifconfig -a发现多了一个叫做enp0s8的网卡,但是缺少具体的ip地址信息,如下图:

这是由于默认情况下enp0s8网卡的ip是动态分配的,为了能在宿主机拥有一个固定的ip来对ubuntu系统进行ssh连接,就需要设置一个静态ip。也就是为此,我走了点弯路。

之前在一个桌面版ubuntu中,是通过修改/etc/network/interfaces文件来设置静态ip的,该文件默认如下图,可以在其中添加address、netmask等进行配置,但这次我反复设置修改它都没有起作用,所以不用管它了。

后来看到一篇文章说ubuntu 18.04 LTS版本要通过修改/etc/netplan/50-cloud-init.yaml来配置静态ip,该文件默认如下(红框中的内容是后来手动添加的),只需要把enp0s8的静态ip配置按如下格式写进去即可,写的时候要注意文字对齐和缩进,缩进要使用空格而不是Tab键,这是.yaml文件要求的格式。

比如这里将静态ip配置为192.168.56.100,网关是192.168.56.1,dhcp设置为no,那个/24是固定写法,表示子网掩码是255.255.255.0。这样配置以后,再通过sudo netplan apply命令应用配置。这时,使用ifconfig -a或者ip addr命令,就可以看到enp0s8网卡已经拥有自己的静态ip了。

然后可以在宿主机尝试ping 192.168.56.100,理论上到这里应该就可以ping通了。如果不通,那就sudo ufw status检查一下防火墙是否被打开,或者检查一下VirtualBox的网卡设置,再或者重启ubuntu。

剩下的工作就是看看ubuntu有没有安装openssh-server,以及开启远程root访问,具体已在我的另一篇文章中写过,过去参考即可,文章地址:ubuntu安装ssh服务并开启root用户远程连接

扫码关注艺术哲学经典

精彩热评

暂无评论

留下评论

发表评论

站内搜索

© 2020 羊小圈 · 京ICP备17012925号