很多家庭都有旧的电脑,用来跑Windows系统已经力不从心,而安装上Linux系统还可以用来做许多的事情,比如,《开放系统世界》2003年第8期《给Linux家庭网络升级》中介绍的使用Linux做NAT网关进行ADSL上网。作为一个NAT网关,给它配备显示器等外设太奢侈,我们完全可以利用Windows来省略这些配置。
远程登录的服务器设置
我们以Red Hat Linux为例说明。首先安装Linux,这个时候不可以省略鼠标、键盘和显示器,将网络调通,保证Windows机器可以ping到。在Linux上,使用setup命令,在出现的配置选单后,选中“System Services”,回车后出现一个服务列表选单,确保在选单中有Telnet或sshd服务(为了安全起见,一般只选择sshd即可),若它们前边的方框内没有“*”号,则按空格键选择它。还要注意,firewall configuration要开放这些端口(telnet端口号23,SSH端口号22),或者为了简单实验可以暂时选择no firewall,但是今后为了安全,还是需要建立防火墙,开放22或23端口,相关设置请参考HowTo。在Linux上,用命令“useradd myself”新建一个用户myself,再用“passwd myself”设置这个用户的密码,在服务器上这样的设置就已经可以允许远程访问了。然后将那些外设统统拿掉。
通过telnet方式访问Linux
Windows本身自带一个telnet客户程序,在“开始”|“运行”中输入命令“telnet”。假设以上设置的Linux服务器IP地址为192.168.0.1,输入命令“open 192.168.0.1”,输入用户名“myself”和它的密码,接下来即可模仿坐在Linux机器前边进行操作了。
需要说明一点,默认情况下,使用telnet方式不允许以root用户登录,这也是在远程登录服务器设置一节最后建立用户myself的原因,下面将要提到的SSH方式就没有这个限制。
通过SSH方式访问Linux
由于telnet的不安全性,现在Linux发行版大多都集成了SSH功能,而Windows本身是没有SSH Client的,需要一个第三方软件支持。这里推荐使用SecureCRT或SSH Secure Shell非商业版。前者是所有Windows下客户端中能够在一个屏幕显示最多行数的软件,非免费软件,网址为http://www.vankyde.com。后者自带一个图形化的sftp软件,方便传输文件,个人使用免费,网址为http://www.ssh.com。
要想使用SSH传输文件,还需要Linux上允许使用ssh2。方法是在/etc/ssh下使用“more sshd_config”,看sshd_config文件中protocal一行,若这一行前没有使用“#”,而且protocal后面只有数字“1”,则说明不可使用ssh2;若不是这种情况,即可使用ssh2。图1是SecureCRT的屏幕截图,图2是SSH Secure Shell的屏幕截图,并且,这些SSH类Client一般都支持telnet方式登录。在连接对话框中输入必要的信息,即可连接Linux机器了,如图3和图4。还有其它很多优秀的类似软件,这里就不一一介绍了,有兴趣的读者可以继续寻找。
图1 SecureCRT
图2 SSH Secure Shell
图3 SecureCRT connection
图4 SSH Secure Shell connection
使用X-Window
如果还想使用X-Window,就必须使用X Server软件了。如果安装Linux的时候选择安装了X-Window,只要可以使用telnet或SSH,那么就可以使用X-Window,不需要做额外的设置。
这里有个概念要澄清,X Server是在Windows上运行的软件,用来接受鼠标键盘的输入,此时在Linux上跑的是X Client,负责做出对X Server的响应。此类软件比较著名的有Exceed和Xmanage,非常可惜的是它们都是商业软件。
Exceed的历史非常悠久,在telnet/rlogin/rsh/方式下使用X-Window很方便,它来自http://www.hummingbird.com。
Xmanage功能也十分强大,而且我还找到了一个汉化包(for 1.3.8版本免费的汉化包),安装之后可以显示中文的X-Window。有需要的读者可以发邮件到fisherjams@tom.com向我索要。至于Xmanage本身,用Google搜索很容易找到,但要注意版权问题。
图5为Xmangae,图6是使用Xmangae连接Linux。连接建立之后,运行命令“startx”即可启动X-Window。
图5 Xmanage
图6 用Xmanage连接Linux
通过串口方式访问Linux
无论使用前面介绍的哪种方式,都有个前提就是Linux机器一直不重启。如果Linux重新启动,会检测键盘是否存在,机器会一直停在需要确认键盘的界面上(而此时各项服务还都没有运行)。要想绕过这个限制,就需要其它的连接方式,一种方法是将终端定向到串口上(com1或com2)。制作一根DB9串口线,两边都是母头(有插孔的那种),将一头的2、3、5脚分别与另一头的3、2、5脚连接起来就可以了,当然最标准的是使用“null modem”线。
在Linux上可进行如下设置。在文件/etc/inittab中增加下面一行(注意,如果不采用agetty程序,采用其它的程序如like getty_ps ,应用正确的命令语法):
ID:RUNLEVELS:respawn:/sbin/agetty -L SPEED TTY TERM
这里,ID为两字母的标识符,如s1或s2;RUNLEVELS为终端激活的运行级别;SPEED为串口端口速率;TTY为串口的设备名;TERM为环境变量。
范例如下:
s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
上面命令表示串口/dev/ttyS2 (COM2 )速率为9600bps,终端模式为vt100。
最后,重新启动机器。在Windows上打开“超级终端”,在“连接时使用”下拉选单中选择com1,填入如图7的信息即可进行连接。
图7 串口连接设置
以上介绍了使用Windows控制Linux的一些技巧和方法,这些方法在家庭中即可做实验。掌握好它们,对今后管理多个Unix/Linux服务器有着许多好处。