一,虚拟机NAT网络关系图
二,Linux虚拟机的IP固定设置
环境:
- 系统:CentOs7
- 虚拟机:vmware 17 pro
在宿主机(实际使用的计算机)上使用xshell等工具连接虚拟机上的linux时,总会因为IP地址的变动而不停的修改xshell等工具的连接,为了避免这些麻烦,将虚拟机上的Linux的IP地址设置成为固定IP成了我们的最佳选择。
2.1 修改虚拟网络配置:虚拟机网络适配器选择NAT模式
点击编辑按钮,选择虚拟网络编辑器,跳出如下弹窗:
点击更该配置,弹出如下弹窗,接下来按照弹窗中步骤操作:
需要注意的是:假如你要固定ip为:192.168.237.11那么子网ip必须为192.168.237.0,即前三段必须一致。
点击NAT设置后,跳出NAT设置弹窗,修改网关IP后点击确定关闭弹窗。
子网ip和网关ip的前三项,192.168.237.xxx需要相同,这个可以自定义,用来给自定义我们ip地址的时候使用的。
然后是点击DNS设置给网络添加指定DNS
2.2 修改以下虚拟机的网络配置文件
输入vi /etc/sysconfig/network-scripts/ifcfg-xxx进入文本编辑,xxx是你的网卡名,可以输入ip addr查询。
复制下面内容,然后修改HWADDR、IPADDR和GATEWAY四个字段的内容,
-
HWADDR是机器的MAC地址
-
IPADDR代表你本机的ip地址,ip地址需要符合你上面设置的子网ip范围内哦!
-
GATEWAY就是我们前面通过虚拟网络编辑器修改的值。即网关ip
DEVICE=eth0
HWADDR=00:0c:29:cb:20:96 (需要修改)
UUID=71ca5de6-ba44-42b3-a133-8e7b684d76a
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static (需要修改)
IPADDR=192.168.237.11 (需要修改)
GATEWAY=192.168.237.1 (需要修改)
至此,虚拟机Linux的固定IP地址修改完成。
2.4 掉网卡的解决方法
在设置静态ip后,可能出现虚拟机启动之后,突然发现没有ens33网卡这个BUG。
解决方法:
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network
如果无效,出现:Job for network.service failed because the control process exite
解决方法:
-
关闭 NetworkManger 服务,
service NetworkManager stop -
禁止开机启动
chkconfig NetworkManager off -
重启网络
service network restart -
查看
/etc/sysconfig/network-scripts/ifcfg-xxx中的HWADDR,如果HWADDR配置不对也会出现这种情况
三,Linux配置ssh免密登录
举例:在Windows中使用ssh免密登录来登录Linux虚拟机中。
-
确保SSH服务器在Linux虚拟机上已启用:
在Linux虚拟机上,确保SSH服务器已安装并正在运行。你可以在终端中运行以下命令来检查SSH服务器的状态:
sudo systemctl status ssh如果SSH服务器未运行,你可以使用以下命令启动它
sudo systemctl start ssh -
生成SSH密钥对:
在Windows上生成SSH密钥对,一个私钥(用于登录)和一个公钥(用于在Linux虚拟机上验证您的身份)。
-
打开 Windows 命令提示符或 PowerShell。
-
使用以下命令生成密钥对:
ssh-keygen -t rsa然后会要求你给这个密钥设置一个密码,如果不想设置就直接回车就行了。
之后会在你的用户目录下生成一个.ssh文件夹,里面包含两个文件:id_rsa(私钥)和id_rsa.pub(公钥)
-
-
将公钥复制到Linux虚拟机
刚刚生成的公钥的内容复制到Linux虚拟机的
~/.ssh/authorized_keys文件中,以便允许您的Windows计算机访问。在Windows上,您可以使用文本编辑器打开公钥文件,然后将其内容复制到剪贴板。
在Linux虚拟机上,使用以下命令将公钥添加到
authorized_keys文件中:mkdir -p ~/.ssh chmod 700 ~/.ssh echo "粘贴您的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys -
测试SSH连接
现在,您应该能够在Windows上使用SSH连接到Linux虚拟机而无需密码:
ssh 虚拟机用户名@Linux虚拟机的ip地址
需要注意的是,在Linux中互联只需要执行命令:ssh-keygen,就会生产ssh钥匙,默认保存在当前用户的主目录下的./ssh目录中。然后把id_rsa.pub的内容输入给你想互联的主机的./ssh/authorized_keys里面即可。当然要实现A连接B,B连接A需要把B的公钥也发给A哦!