建设部投诉网站,信息流优化师是干什么的,汽车公司网站建设,网站制造公司在创建一台虚拟机后#xff0c;默认的方式往往是通过DHCP动态的进行分配#xff0c;DHCP服务器会告知创建的虚拟机分配到的ip地址#xff0c;网关地址等信息。所以在创建好虚拟机之后#xff0c;这些信息都不需要我们来配置#xff0c;我们直接用就好了。
但是#xff0…在创建一台虚拟机后默认的方式往往是通过DHCP动态的进行分配DHCP服务器会告知创建的虚拟机分配到的ip地址网关地址等信息。所以在创建好虚拟机之后这些信息都不需要我们来配置我们直接用就好了。
但是当虚拟机重启时它会向DHCP服务器发送DHCP请求请求分配一个IP地址。DHCP服务器会检查IP地址池中是否有可用的IP地址并为虚拟机分配一个新的IP地址而且是随机地址这在有些情况下会造成不便。比如我想通过ssh来连接一台虚拟机如果地址变动的话那我每次连接虚拟机的时候还得先去看一下虚拟机的新ip地址然后再进行连接。这是很麻烦的。
这时我们可以为虚拟机设置静态的ip地址把DHCP关掉关掉DHCP之后要怎么做呢
让我们回顾一下DHCP的作用它可以设置三项网络信息①分配DNS服务器地址②分配ip地址③告知网关地址。这三项信息我们可以手动设置这并不是一件难事。
对于DNS服务器地址 这个我们可以直接设置为8.8.8.8当然这不一定是最佳选项你可以通过其他方式获取当前机器的最佳dns服务。
对于ip地址和网关地址 由于我们关闭了DHCP服务所以机器的地址需要手动分配这个地址需要和网关处于同一个网络中。通过ip route show可以查看当前机器的网关地址输出信息如下
default via 192.168.1.1 dev enp0s3 proto dhcp metric 100
169.254.0.1/16 dev enp0s3 scope link metric 1000
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.111 metric 100第一行信息表示默认网关为192.168.1.1第三行信息中192.168.1.0/24表示当前所在的子网192.168.1.111则是当前机器的ip地址。那么根据子网为192.168.1.0/24可以得出子网的掩码为255.255.255.0。
ip地址则可以分配为除网关外192.168.1.2~192.168.1.255的任意地址。当我们关闭DHCP后ip地址池是由我们自己管理的所以在分配地址时注意子网中的ip地址不能重复。在我的机器中可以选择192.168.1.2。
那么至此三项重要信息就都确定了①DNS为8.8.8.8②ip地址为192.168.1.2/24③网关为192.168.1.1。随后我们开始手动设置。
从Ubuntu 17.10版本开始Ubuntu使用了Netplan作为网络配置工具我们可以通过编辑/etc/netplan/下的配置文件来设置网络sudo nano /etc/netplan/01-netcfg.yaml也可能不叫01-netcfg.yaml文件不同机器中名字可能有差异但都在/etc/netplan/目录下向文件中添加如下配置信息
network:version: 2renderer: networkdethernets:enp0s3:dhcp4: noaddresses: [192.168.1.2/24]routes:- to: 0.0.0.0/0via: 192.168.1.1metric: 100nameservers:addresses: [8.8.8.8]其中to: 0.0.0.0/0是一个路由规则它表示将所有目的地IP地址都路由到指定的网关。这个路由规则通常被称为默认路由或默认网关。
随后我们通过sudo netplan try来检验当前的Netplan配置该命令会显示配置的错误或警告信息。如果没有警告或错误我们可以通过sudo netplan apply来应用新的配置。如果配置后网络不能正常联网了那把ethernets:下面的内容全部删掉执行sudo netplan apply恢复成默认的就好了。
如果你是通过ssh来设置静态ip的那当你更改ip地址后ssh连接会断掉用新地址重连就好了。
此外在配置k8s集群时很多教程并不采用桥接网络而是采用nat网络only-host网络的模式我的理解是这nat和only-host模式的网络能隐藏虚拟机的网络避免了外部网络的访问可能这样更加安全吧。
在nat网络only-host网络模式中配置静态ip和上面的过程相同需要注意的是不要搞混了网络接口比如在这种模式下通过ip route show的输出如下
default via 10.0.2.2 dev enp0s3 proto static metric 100
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.101
192.168.56.0/24 dev enp0s8 proto kernel scope link src 192.168.56.101这里有两个不同的网络接口enp0s3和enp0s8其中网关是enp0s3网络接口那enp0s3对应nat网络而enp0s8对应only-host网络。
这是因为only-host将主机作为了网关而nat网络中会单独虚拟出一个网关在这里即为10.0.2.2。
对应的配置文件如下
# Let NetworkManager manage all devices on this system
network:version: 2renderer: NetworkManagerethernets:# nat networkenp0s3:dhcp4: noaddresses: [10.0.2.101/24]routes:- to: 0.0.0.0/0via: 10.0.2.2metric: 100nameservers:addresses: [8.8.8.8]# only-host static networkenp0s8:dhcp4: noaddresses: [192.168.56.101/24]其中only-host是不指定网关的。
另外由于nat网络内的机器被隐藏了即这些机器可以主动向外发送信息因为外部机器的端口对这些机器来说是可见的但内部机器的端口却被NAT主机隐藏了所以外部机器不能随意和这些机器通信。不过也可以设置NAT的端口转发规则暴露内部机器的部分端口。所以在使用ssh连接这些机器时不能通过nat网络进行连接如前所述其实也可以设置nat端口转发规则而是需要通过only-host网络。在这里即enp0s8网络接口对应ip地址为192.168.56.101。
virtualbox最多支持4个网络接口读者也可以尝试把这些接口全部开启尝试实验。