最近在研究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 查看詳細說明