oracle客户端需加@orcl才能登录,不然提示12560 协议适配器异常

oracle客户端需加@orcl才能登录,不然提示12560 协议适配器错误
部署环境:
宿主机windows 7下的 oracle客户端连接虚拟机linux 的oracle11g r2服务端

错误提示:
运行sqlplus工具,或者cmd运行"sqlplus sys/123 as sysdba"都提示“12560 协议适配器错误”
只有运行“sqlplus sys/123@orcl as sysdba”才能正常连接到oracle服务器。

检查过,oracle服务端能正常连接服务器,侦听器、数据库已开启,防火墙已关;
客户端已添加ORACLE_SID系统环境变量;tnsping 提示OK; 

sqlnet.log 最新日志记录如下:
Fatal NI connect error 12560, connecting to:
 (DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracleorcl)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=D:\app\sun\product\11.2.0\client_1\bin\sqlplus.exe)(HOST=PC123)(USER=user))))

  VERSION INFORMATION:
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 11.2.0.1.0 - Production
  Time: 24-8月 -2014 16:35:38
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12560
    
TNS-12560: TNS: 协议适配器错误
    ns secondary err code: 0
    nt main err code: 530
    
TNS-00530: 协议适配器错误
    nt secondary err code: 126
    nt OS err code: 0
Sun Aug 24 16:35:52 2014
Directory does not exist for read/write [D:\app\sun\product\11.2.0\client_1\log] [D:\app\sun\product\11.2.0\client_1\log\diag\clients]


求解!谢谢!

------解决方案--------------------
虚拟机不等于本机,要通过网络来连
------解决方案--------------------
你是在win7上连linux下的db,又linux DB本机上连,当然要加后面的@orcl了,
不然win7怎么知道你要连到哪里去?它只会认为你要连本机,可本机win7上没有,自然就报错了.
------解决方案--------------------
在主机上连接虚拟机的数据库,是要通过本地tnsname.ora解析地址连接的,在tnsname.ora添加的主机IP为虚拟机的IP,相当于远程连接虚拟机服务器。如果不添加@服务名,是直接连到本地服务器,不是虚拟机上的服务器