最近在研究Linux,想通过windows下ssh连接虚拟机中Linux系统,从而更加方便快捷的访问虚拟机中的linux系统
在网上找了一些方法,一种方法基本思路如下
大致就是去修改目录下的ip配置,然后实现windows下ping通该虚拟机,然后实现ssh连接虚拟机,实践后发现可行性较低,
下面是方法一的具体步骤:
1,确保windows能ping通虚拟机,具体也不知道怎么ping通,明显不在一个网段下嘛很奇怪。
2.关闭linux的防火墙
centos7之前就是 etc/init.d/iptables stop 这样的命令关闭
centos7之后就是用 service firewalld stop ,后来实践证实这一步并没有必要
3.查看ssh 是否被安装,一般情况下centos7都是已经安装好了ssh-server的,查看的命令如下
rpm -qa | grep ssh
一般会显示结果为
然后找到/etc/ssh目录下的sshd_config文件,修改一些参数(看起来这一步还是有必要的,但是后面使用的第二种方法并不需要这些设置也可以正常ssh登陆)
4开启sshd服务,命令为(一般都默认开启的)
service sshd start
可以用 ps -e|grep sshd 命令验证是否成功开启
然而,经过上述办法后,还是无法使用ssh连接虚拟机
然后便有了第二种办法
方法二
1,首先在virtualbox设置网络为“网络地址转换(NAT)”,如下图
然后设置端口转发如图
主机端口可以随意设置,我这里为了方便起见设置为22,因为ssh默认端口为22,后续ssh访问就不需要 加 -p 参数了。
然后在网络配置中可以设置虚拟机的外地址(ip与dns服务器设置不一致时会导致登陆非常缓慢,不知道什么原因,修改成一样的之后就恢复正常了)
然后开启虚拟机,启动linux系统,就可以通过命令
ssh [email protected]
#或者
ssh [email protected]
#root可以是你的linux用户名
与虚拟机建立连接了
推荐使用第二种方法
第三种方法
简述一下就是将网络连接方式改成桥接网卡
然后把linux的ip改成与主机ip在同一网段内
例如我的ip是 192.168.1.48
我将我的linux 的ip设置新增字段如下
BOOTPROTO=static
IPADDR=192.168.1.102
NETMASK=255.255.255.0
#已存在的字段则修改,不存在的则新增
然后使用ssh也可以愉快的玩耍了
小tips
最后介绍一种后台使用命令开启无界面的虚拟机的办法,
为了方便起见,我们先在系统环境设置里将虚拟机安装路径添加进去(这个就不赘述了,例如我的安装路径是 E:\VirtualBox)
Virtual Box的管理叫叫VBoxManage.exe,我们后面会使用它来操作虚拟机的开启与关闭
然后方便起见我们使用 ln -s 命令对VBoxManage.exe建立软链,无法使用ln命令可以安装(windows下推荐使用 git bash代替默认CMD工具)建立软链命令如下
$ ln -s /e/VirtualBox/VBoxManage.exe /e/VirtualBox/vbm
然后启动虚拟机(Kevyn King是我的虚拟机名)
vbm startvm Kevyn\ King --type headless
然后可以用ssh 命令连接虚拟机了
最后,关闭虚拟机,使用命令
vbm controlvm Kevyn\ King poweroff
VBoxManage命令很丰富,具体可以 -help 查看详细说明