NAT方式说明:
说明:使用Vmnet8虚拟交换机,此时虚拟机可以通过主机单向网络上的其他工作站,其他工作站不能访问虚拟机。
使用NAT方式,A1,A2可以访问B,但B不可以访问A1,A2。但A,A1,A2可以互访。
前期工作
1.首先设置虚拟机NAT,并确保能够联网,此处选择自定义,并选择VMnet8(NAT),如下图所示:
2.在主机环境下通过services.msc打开服务,并开启VMwareNATService和VMwareDHCPService之后打开NetworkConnetion查看IPv4是否设置为Automatic(DHCP)。
3,在虚拟机中通过火狐浏览器连接网络,可以上网。确定可以联网之后,在终端输入ifconfig查看当前虚拟机的ip地址:
当前环境
本机采用无线网络连接,ip地址为:192.168.1.29
虚拟机ip地址为:192.168.2.130
并不在同一个地址段,注意此处虚拟机的ip地址与主机不能在同一个网段,否则在一个局域网内无法ping通。
设置步骤
1.设置NAT连接,通过开始-VMware-VirtualNetworkEditor打开如下界面,子网IP只要与你的虚拟机地址在同一个网段即可
在上面的列表中,选中“VMnet8”,点击“NATSettings...”打开NAT设置对话框。如下图所示。
选择添加,按照如下内容添加:其中端口号22为ssh的端口号,虚拟机ip地址填写ifconfig下的地址。描述可以随便写
2.确定虚拟机中的设置是VMnet8(NAT),两者必须配套。
至此,NAT连接下,虚拟机向本机映射配置完成。
启动SSH
1.在虚拟机终端查询ssh的状态:
1 2 | [root@localhostqcy]#servicesshdstatus openssh-daemon(pid 4083 ) is running... |
2.如果SSH没有开启可以通过如下命令开启。
1 | [root@localhostqcy]#servicesshdstart |
3.查看SSH的配置信息,确保3是开启的。
1 2 | [root@localhostqcy]#chkconfig--listsshd sshd 0 :off 1 :off 2 :off 3 :on 4 :off 5 :off 6 :off |
4.防火墙规则中必须设置允许SSH访问:
1 2 3 | [root@localhostqcy]#iptables-F [root@localhostqcy]#iptables-AINPUT-ptcp--dport 22 -jACCEPT [root@localhostqcy]#iptables-AOUTPUT-ptcp--sport 22 -jACCEPT |
第一行清除所有的规则,2.3行分别添加22号端口的读写访问
5.在主机中使用ping命令查看是否可以相互访问:
同样在虚拟机中也可以测试:
1 2 3 4 5 6 7 8 9 10 | [root@localhostqcy]#ping-c 4 192.168 . 1.29 PING 192.168 . 1.29 ( 192.168 . 1.29 ) 56 ( 84 )bytesofdata. 64 bytesfrom 192.168 . 1.29 :icmp_seq= 1 ttl= 128 time= 0.231 ms 64 bytesfrom 192.168 . 1.29 :icmp_seq= 2 ttl= 128 time= 0.222 ms 64 bytesfrom 192.168 . 1.29 :icmp_seq= 3 ttl= 128 time= 0.254 ms 64 bytesfrom 192.168 . 1.29 :icmp_seq= 4 ttl= 128 time= 0.336 ms
--- 192.168 . 1.29 pingstatistics--- 4 packetstransmitted, 4 received, 0 %packetloss,time3000ms rttmin/avg/max/mdev= 0.222 / 0.260 / 0.336 / 0.049 ms |
6,这样就可以通过SSH和虚拟机的系统连接了,点击QuickConnect,在弹出框中输入虚拟机的ip地址以及虚拟机中的用户名,选择密码认证方式
第一次运行会有提示,选择yes进入,然后输入密码后即可进入:
如果失败:
首先要确保虚拟机和主机的联通,即ping命令可以互通,如果出现如下错误:
说明问题出在服务器端,即虚拟机一方。
1.在虚拟机中查看错误信息:
1 | [root@localhostlog]#vi/ var /log/secure |
以下是secure文件的最后两行:
1 2 | Apr 27 15 : 14 : 43 localhostsshd[ 6865 ]:pam_unix(sshd:session):sessionclosed for userqcy Apr 27 15 : 15 : 04 localhostsshd[ 6904 ]:refusedconnectfrom 192.168 . 2.1 ( 192.168 . 2.1 ) |
说明问题在于虚拟机拒绝来自192.168.2.1的连接。
2.在虚拟机中查看hosts.allow文件,
1 | [root@localhostetc]#vihosts.allow |
注意在最后加入sshd:192.168.0.表示本机,当然可以直接加入sshd:ALL
1 2 3 4 5 6 7 8 9 10 11 | # #hosts.allowThisfilecontainsaccessruleswhichareusedto #allowordenyconnectionstonetworkservicesthat #either use thetcp_wrapperslibraryorthathavebeen #startedthroughatcp_wrappers-enabledxinetd. # #See 'man5hosts_options' and 'man5hosts_access' # for informationonrulesyntax. #See 'mantcpd' for informationontcp_wrappers # sshd: 192.168 . 0 . |
3..在虚拟机中查看hosts.deny文件
1 | [root@localhostetc]#vi/etc/hosts.deny |
发现其中有一句:sshd:ALL,意为拒绝所有的的连接,可以单纯地注释掉这一行。但是如果只想指定ip地址的主机访问的话,可以按照下图中的最后一行设置,EXCEPT排除掉你用于登录的主机。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # #hosts.denyThisfilecontainsaccessruleswhichareusedto #denyconnectionstonetworkservicesthateither use #thetcp_wrapperslibraryorthathavebeen #startedthroughatcp_wrappers-enabledxinetd. # #Therules in this filecanalsobe set up in #/etc/hosts.allow with a 'deny' optioninstead. # #See 'man5hosts_options' and 'man5hosts_access' # for informationonrulesyntax. #See 'mantcpd' for informationontcp_wrappers # sshd:ALLEXCEPT 192.168 . 1.29 / 255.255 . 255.0 192.168 . 2.0 / 255.255 . 255.0 |
4.问题得以解决!
注:以上步骤并不是每一个都是必须的,但是为了防止错误的发生,最好都做一次!