建立windows与linux简单通信(二)
时间:2009-05-02 来源:sjhf
白天记载了如何利用VMware-tools使得windows与linux之前共享起来,但前提是linux是装在windows虚拟机上的,如果一部电脑只有linux那以上的方法就没用了。还是找到正统的linux自带的服务来达到这个目的吧。 不知道是我笨还是我倒霉,本来挺简单的一件事情,网上的资料也挺多的了,我照着一步步做下来,得到的结果却是断断续续搞了快一个星期,还把自己的windows弄崩溃了,最后不得不重装解决问题了。 我还是絮絮叨叨的把如何配置samba给简要介绍下,然后我再谈谈就这么一件简单的事情我是怎么给复杂化,直至最后弄到系统崩溃的。 一、安装samba: 1.查看本身系统中是否已经安装samba。 #rpm -qa grep samba,如果出现 samba-common-2.2.7a-7.9.0 samba-client-2.2.7a-7.9.0 samba-2.2.7a-7.9.0 那么恭喜你,你已经安装好了samba,如果没有请安装。 2.安装samba。 在第一张系统光盘中找以下samba软件包(应该在/mnt/cdrom/RedHat/RPMS下), samba-common-2.2.7a-7.9.0 samba-client-2.2.7a-7.9.0 samba-2.2.7a-7.9.0,并依次安装 #rpm -ivh samba-****** 如果都出现了100%的话,说明你已经安装好了samba,可以进行共享配置了。 但是为了之后的配置方便,建议在第二或三张光盘中(路径同上)找到redhat-config-samba-1.0.4-1和samba-swat-2.2.7a-7.9.0并安装。 3.现在再来测试一下, #rpm -qa grep samba redhat-config-samba-1.0.4-1 samba-common-2.2.7a-7.9.0 samba-client-2.2.7a-7.9.0 samba-swat-2.2.7a-7.9.0 samba-2.2.7a-7.9.0 这样说明所有的samba组件都已经安装成功,可以进入下一个环节了。 2、配置samba. 利用我们安装的redhat-config-samba-1.0.4-1进行配置,方法如下: 开始--->系统设置--->服务器配置--->samba服务器 首选项-->服务器设置,这里你可以对samba服务器进行一些基本的设置里,应该说比较简单了, 我看没有必要介绍了,配置好之后,记住重新启动服务. 重新启动的方法有两种: #service smb start或restart #/etc/rc.d/init.d/smb start (2)方法2 利用samba-swat-2.2.7a-7.9.0 首先,你要修改swat的配置文件,默认的情况下是关闭的 service swat { port = 901 (swat用到的端口是901) socket_type = stream ait = no only_from = 127.0.0.1(只从这个启动swat,关键!) user = root(启动swat用到的名子) server = /usr/sbin/swat log_on_failure += USERID disable = yes (一定要把yes改成no) } 修改过之后,启动xinetd就可以了 启动方法跟刚才我说的一样 然后在浏览器里敲入:http://127.0.0.1:901 (注意,这个IP地址要跟你在SWAT配置文件里的IP地址一样才形,切记!) 至于如何使用swat,自己摸索一下应该不成问题了,配置完成以后,记得重新启动服务就 可以了.对了,为了使得samba和swat在每次开机的时候启动,你可以这样: #setup,然后找到system service,在SMB和SWAT前搞个*,也可以#ntsysv,同样的效果. (3)方法3 利用samba-2.2.7a-7.9.0,这是最根本的东西,不管用什么工具,掌握其原理才是最重要的,装好samba-2.2.7a-7.9.0之后,会在/etc/samba/下形成一个文件 smb.conf smbpasswd smbusers lmhosts,如果没有其中的一个,你可以toUCh创建 修改smb.conf文件 我只做简单的说明:guest ok 和public是一样的,read only 和writable是相反的,没什么区别 workgroup=(工作组名子,填上你目前的LAN的工作组) netbios=(最好是你的机器名,如果把改句注消,默认的是你LINUX机器名,不过,最好还是自己填上) client code page=936(默认是850,936是简体中文的意思,这个要记住,难道不记得你mount你windows系统下的中文名子都是???,就是因为你没有加-o iocharset=cp936的原因!) guest account=nobody(guest帐号,这于你定义的共享文件颊有关,其中nobody在smbusers里有) security = SHARE(有四个级别,不多说) encrypt passWords = Yes(加密的密码, win98/2000传送的密码都是加密的,所以这里要yes) 以上都是[global]的内容, 下面就是你要开的共享的东西,要说明的是,文件夹共享的属性取决于该文件在LINUX里的权限设定 [myxfc] comment = myxinfc path = /home/xinfc read only = No guest ok = Yes [tmp] path = /home valid users = hehl write list = @staff read only = No guest ok = Yes 共享的设定其实很简单,主要是路径和权限的问题,这两个搞清楚了 ,应该没问题了 配置到此应该没有什么问题了。 三、应用samba. 费了这么半天的事我们要做的事要实现linux与windows之间的共享,那来看看效果如何吧! 1。View from windows。 还是先从熟悉的地方开始,从windows中来看看linux下面共享了什么吧。 方法很简单,在网络邻居中的工作组中应该可以看到linux的主机已经出现了。打开浏览器,敲入http://linux_ip/share(文件夹名字),回车就可以看到linux共享的文件了。在这一过程中,可能会出现一些由于权限、安全设置的原因而产生一些问题,这些我会在以后的时间里再拿出来仔细分析。 2。View from linux。 在linux下面,我们可以通过samba client来访问windows的共享文件夹。 #smbclient -L //localhost -U smbuser #password: ****** 4.问题。 当我按照以上标准教程一步步做下来后,郁闷的发现还是无法建立起两个系统间的通信。 问题如下:Linux 下面的samba服务器没有问题,可以用smbclient -L localhost访问,但是在windows网络邻居中始终都无法找到Linux服务器。用smbclient-L192.168.0.5(windows主机地址)连接,会出现error:192.168.0.5:139connection refused, error: 192.168.0.5 connetion refused。 利用一些排错手段,发现ping ip地址肯定没问题,但是ping 主机名称不行,会返回unknow host错误提示。我试过telnet,从linux下面可以telnet到windows dos下,但是如果在telnetip后面加上139端口就不行了,会报告连接被拒绝。 而且我在windows下用netstat -a查看不到139端口处于监听状态。再次强调一下我为了这个测试已经把两边的防火墙都关闭了(我wxp下用的瑞星防火墙) 在网上发了很多帖子询问,也查了很多相关资料,我在Linux下借助LinNeighborhood(linux共享信息图形界面,有点像windows的网络邻居)可以发现在同一工作组的其它windows主机,我与自己的电脑做了一个对比,在命令行下查看端口,发现没有处于监听状态的139(netbios ssn)这个端口,我用尽网上列举的各种方法,试图开启此端口,但均未奏效。。。 最后我把问题归结于windows下面的tcp 139 udp 137 138端口没有打开,而这三个端口是windows下面netbios监听端口,它们没打开也就无法与linux的netbios建立session(会话)。 就在解决这个问题的过程中,意外就发生了,本来以为是防火墙阻止了这几个端口,彻底把瑞星防火墙删掉了,但发现windows自带的防火墙不能使用,被组策略控制。从网上得知可能中病毒了,就启用瑞星杀毒,一个多小时过去了,貌似没有什么毒。又从网上看到优化大师中也能设置网络端口,于是我就打开了阔别已久的“大师”,一项项去找与端口有关的项,结果没看清找到哪里时,弹出一个对话框询问是否要优化,我过于新人这位大师,点了"yes"。结果不要紧,我再开机的时候电脑完全变了个样,声音也没有了,很多程序不能使用了,这时用恢复也恢复不了了。 但这时还可以进行一些基本操作,在网上查了一些资料后,我又做了一个错误的决定,这个决定导致系统完全不可再恢复。关机重启后直接蓝屏。。。 最后还是得通过最原始的方法来解决这个问题,重装,很简单,现在的安装盘超酷,十分钟不到连驱动都装好了。。。 现在系统一切正常,接下来我得升级下我的内核了。。。 才发现很古老! http://yma5423.blog.51cto.com/278654/148006 |
相关阅读 更多 +
排行榜 更多 +