一、背景
最近学习如何使用Xshell远程连接虚拟机,于是决定配置虚拟机静态IP以方便使用,记录一下遇到的问题以及解决方法,还有就是无法解决的情况下最终的替代方案。
二、配置
CentOS7
先打开终端,进入root模式
在开始设置静态IP之前,首先要了解一些内容
自己使用的是什么方式的网络连接,本案例均采用NAT模式下的网络连接
先打开主机的cmd,查看自己的IP,之后设置的静态IP要与主机的IP网段不相同(即第三段数字)
本人用的主机连接的Wifi,所以查看无形局域适配器WLAN找到IP地址,设置静态IP时,前面的192.168默认是一样的,第三段一定不能相同,第四段数字看具体安排。
然后右击CentOS7,打开CentOS7的设置界面,查看是否为NAT模式,(自定义选择VMnet8也是一样的效果)
确认是NAT模式后就可以点击确定了,然后点击编辑->虚拟网络编辑器
点击更改设置,点击上方NAT模式查看信息,再点击NAT模式,记住圈住信息
再点开DHCP设置查看,
我们设置的静态IP必须在起始和结束IP地址之间,也就是最后一段数字在128到254之间
那么现在可以继续回到CentOS7虚拟机的终端了
输入vim /etc/sysconfig/network-scripts/ifcfg-ens33(用vim打开CentOS7的虚拟网卡)
按i进入编辑模式
将其中的BOOTPROTO从dhcp(动态分配)改成static(静态)
然后在最下方增加
IPADDR=192.168.47.188(最后一段随意只要没被其他机器占用就行)
GATEWAY=192.168.75.2(上面记住的默认网关)
NETMASK=255.255.255.0(子网掩码)
DNS1=114.114.114.114(阿里云的DNS服务器,也可以写别的如8.8.8.8)
关闭文本 esc : wq
终端输入service network restart或systemctl restart network 重启网络服务
进行到这里,大部分的人都是没有问题了,只要查看一下地址,再ping一下baidu.com尝试一下是否能连通外网就没问题了,但很显然我是小部分人
首先查看地址
如图,ens33的IP地址是192.168.47.188,下面显示有效期为forever即永久
尝试ping网关,同网段的其他虚拟机和baidu.com,发现ping不通baidu.com,打开火狐,发现也无法打开网站上网,查询相关资料尝试解决
比如输入vim /etc/resolv.conf 手动配置DNS服务器配置(将nameserver改为114.114.114.114)
检查主机后台进程中VMware NAT服务等是否开启
在虚拟网络编辑器那里,还原默认设置,用新分配的相关数据重新配置一遍静态IP、关闭DHCP服务
配置永久静态路由
查看受网络管理器托管的设备
nmcli dev status
发现 ens33 也就是我们编辑的网卡是受托管的.
在ifcfg-ens33文件最后添加NM_CONTROLLED = no;取消托管
配置永久静态路由等方法均无法ping通baidu.com
最终的解决方案是这么做的,在保留配置的静态IP等信息的基础上,将static改为dhcp
这样查看ip时就会发现ens33会有两个路由,一个动态分配、有时间限制的IP,一个永久性的静态IP
最终成功ping通baidu.com
Kali
kali配置静态IP和CentOS大同小异
区别在于网卡名称和位置略有不同
首先打开终端,输入vim /etc/network/interfaces
在最下方插入
auto eth0
iface eth0 inet static
address 192.168.47.165
netmask 255.255.255.0
gateway 192.168.47.2
为了保险,再去更改一下vim /etc/resolv.conf
改为114.114.114.114
重启网络服务
systemctl restart networking
这次就没有任何问题了
连接Xshell遇到的问题
先检查是否打开了连接xshell需要用到的ssh协议
1.systemctl status ssh //查看是否打开了ssh协议
2.vim /etc/ssh/sshd_config //进入关于ssh的配置文件
3.修改内容:
按i进行编辑修改;
修改完成后按Esc ,按:,输入wq保存修改并退出。
4./etc/init.d/ssh restart //启动ssh服务
6.update-rc.d ssh enable //设置为自动启动ssh登录服务
三、总结
有些问题,可能在更早之前的配置就产生了问题,但是当时的自己意识不到问题,导致现在的自己找不到问题。多看多尝试,总能找到一个可以解决问题的办法。