VirtualBox配置NAT 虚拟机与外网互通

环境

  • ubuntu 20.04 64bit

  • netplan

  • Xshell 6

背景

在使用ubuntu开发过程中,ssh登录虚拟机就需要开发虚拟机的IP一直不变。用NAT的方式,同时设置NAT方式为静态IP方案方便家用和办公。这里只说明在设置NAT方式,及这过程中遇到的问题及解决方式。

1. 配置虚拟机网络,添加端口转发规则

NAT模式即虚拟机的网络是完全依赖于物理主机的网络。此时两个系统并不是处于同一局域网,不能简单的ping通;
但是可以设置Virtualbox在NAT模式(网络地址转换NAT)下的端口转发规则,通过设置规则可使主机连接虚拟机。

添加规则 :

  1. 名称可随便填写,如ssh
  2. 主机IP可以不填,或者填写127.0.0.1
  3. 主机端口随意填写一个不会产生冲突的端口,如2222
  4. 子系统端口可以不填,或者填写子系统当前IP地址
  5. 子系统端口如果是要进行ssh连接,则填写22 ; ftp就填写21

示例:

 

2、Windows10网络配置

 

3、ubuntu虚拟机配置

从Ubuntu 17.10开始,已放弃在 /etc/network/interfaces 里固定 IP 的配置,即使配置也不会生效。Ubuntu引入了一个名为Netplan的新工具,用于网络设置管理,Netplan将根据YAML描述文件,来配置网关参数信息。我们使用的是20.04的版本,我们需要修改/etc/netplan/目录下的.yaml文件,没有的话就新建一个,根据需要,配置如下:

network:
    ethernets:
    ens33:     #配置的网卡的名称
      addresses: [10.0.2.100/24]    #配置的静态ip地址和掩码
      dhcp4: no    #关闭DHCP,如果需要打开DHCP则写yes
      optional: true
      gateway4: 10.0.2.2    #网关地址
      nameservers:
         addresses: [8.8.8.8, 114.114.114.114]    #DNS服务器地址,多个DNS服务器地址需要用英文逗号分隔开
  version: 2
  renderer: networkd    #指定后端采用systemd-networkd或者Network Manager,可不填写则默认使用systemd-workd

执行

sudo netplan apply

其中addresses表示静态地址,gateway4表示网关,nameserversDNS服务器,如果有多个,可以在中括号内用逗号分隔开,如[8.8.8.8, 114.114.114.114]
另外,有的说需要修改/etc/NetworkManager/NetworkManager.conf文件,将managed=false 改为managed=true,但是我不修改也可以,供参考吧

4、使用SSH连接VirtualBox虚拟机

xshell输入ssh localhost 2222,就是访问本机的2222端口,会自动映射到虚拟机中去。同理,mysql的3306等端口也可以映射出去。

主机ip设置为空,这样即使主机ip变了也可以通过端口访问虚拟机

其他注意事项:

  • 虚拟机注意配置防火墙,放行通过的数据包
  • 主机访问虚拟机时尽量使用ip地址,不要使用127.0.0.1的方式去访问,这样会导致虚拟机那边以为是网关在访问,部分服务的连接无法建立

通过如上配置,基本上就可以很愉快的使用VBox和各个虚拟机。


 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值