linux的一些网络设置。(从一个taiwan网站上转来的)

 

Linux 的网路功能相当的强悍,一时之间我们也无法完全的介绍所有的网路指令,这个章节主要的目的在介绍一些常见的网路指令而已。至于每个指令的详细用途将在后续伺服器架设时,依照指令的相关性来进行说明。当然,在这个章节的主要目的是在于将所有的指令汇整在一起,比较容易了解啦!

网络参数设置命令: ifconfig, ifup, ifdown, route,
网络侦错命令ping, traceroute,
网路观察与查询netstat, host, nslookup,
远端连线使用指令telnet, ftp, ncftp,
文字界面网页浏览lynx, wget,
终端机的中文显示jmcce 计划
连不上一些网站的处理方法 MTU 修改
课后练习
参考资料


网路参数设定指令

要连上 Internet ,那么 Linux 就得要好好的仔细的设定啰!我们这里就先介绍几个重要的网路参数设定指令:
 

ifconfig   :设定网路参数使用的指令
ifup,ifdown:启动与关闭某个网路介面卡
route      :显示/修改路由表( route table )

 


ifconfig
设定网路参数使用的指令


语法

[root@test test]# ifconfig interface
[root@test test]# ifconfig interface [options]
参数说明:
interface :网路介面卡代号,例如 eth0, eth1...
options   :主要有以下几个参数
   network   :网段
   broadcast :广播网段
   netmask   :子网路遮罩
   up|down   :启动|关闭网路介面
范例:
[root@test root]# ifconfig
# 这个指令在没有加上网路卡时,会将所有的网路介面内容显示出来
eth0      Link encap:Ethernet  HWaddr 00:50:FC:22:9C:57
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5793395 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6032143 errors:0 dropped:0 overruns:0 carrier:0
          collisions:983 txqueuelen:100
          RX bytes:534796148 (510.0 Mb)  TX bytes:2607882970 (2487.0 Mb)
          Interrupt:10 Base address:0x6100
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3258 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3258 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:170063 (166.0 Kb)  TX bytes:170063 (166.0 Kb)
 
[root@test root]# ifconfig eth0 192.168.0.2 netmask 255.255.255.0 /
> broadcast 192.168.0.255
上面再将 eth0 这个网路介面的 IP 属性修改为 192.168.0.2 这个 IP ,广播位址也跟著改变了!
[root@test root]# ifconfig eth0
# 将修改完的咚咚显示出来一下!
eth0      Link encap:Ethernet  HWaddr 00:50:FC:22:9C:57
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5793395 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6032143 errors:0 dropped:0 overruns:0 carrier:0
          collisions:983 txqueuelen:100
          RX bytes:534796148 (510.0 Mb)  TX bytes:2607882970 (2487.0 Mb)
          Interrupt:10 Base address:0x6100
 
[root@test root]# ifconfig eth0 down <==关闭 eth0 网路卡
[root@test root]# ifconfig eth0 up <==启动 eth0 网路卡!

说明:
ifconfig
这个东西也很好玩!尤其是您在您的网路卡尚未设定完成的时候,而且确定网路卡已经成功的驱动了之后,可以使用这个指令来驱动您的网路卡呦!另外,他的最大用处其实是来自于可以查看您的网路介面卡的参数啦!所以最常使用的就是直接输入『 ifconfig 』或者是『 ifconfig eth0 』或者是『 ifconfig ppp0 』等等的用法!倒是不建议直接用来修改您的网路卡啦!不过,如果确定要使用 ifconfig 来修改您的网路介面卡,那么可以参考上面的例子来修改呦!同时, ifconfig 也是用来做成『多 IP 』的主要指令呢!好了,我们来谈一谈上面几个简单的项目内容吧!
 

    • eth0 :表示为网路卡的代号;

    • lo :表示为『内部回圈 IP 』的网路卡代号,请注意,这个内部的 interface 一定要存在!千万不要关掉他!

    • HWaddr :是网路卡的硬体位址,就是我们在网路基础提到的 MAC 啦!

    • inet addr :就是网路卡的 IP

    • Bcast :是广播( broadcast ) 的位址;

    • Mask :就是子网路遮罩啦;

    • MTU :是 Maximum Trasmission Unit 最大传输单元(位元组), 即此介面一次所能传输的最大封包,这个数值并非越大越好,也非越小越好,不过,设定错误时,可能会让您的网路无法连接上某些网站呢!请参考本章后续的 MTU 说明

    • RX :网路由启动到目前为止的接收情形;

    • TX :网路由启动到目前为止的传送情形;

    • collisions :网路讯号碰撞的情况说明;

    • txqueuelen :是传输缓冲区长度大小意思;

    • Interrupt :是 IRQ 中断位址;

    • Base address :是 I/O 位址。这个 IRQ I/O 在网路卡上面是可以设定的!设定的地方可以在 /etc/lilo.conf 里头来设定呢!如果您的主机上面有多张网路卡的时候,就用的著他了!可以避开问题呦!

 
总而言之, ifconfig 也是一个很好用的指令啦!但是有一点必须要清楚的,那就是 ifconfig eth0 up 或者是 ifconfig eth0 down 可以使用 ifup eth0 ifdown eth0 来替代!不过有一点必须要先说明的,那就是 ifup ifdown 是以 /etc/sysconfig/network-scripts/ifcfg-ethn 的档案来进行启动的!所以 ifcfg-eth0 必须存在才能使用 ifup OK!底下马上来说说 ifup, ifdown
 


ifup, ifdown
启动与关闭某个网路介面卡
语法

[root@test root]# ifup   [interface]
[root@test root]# ifdown [interface]
参数说明:
范例:
[root@test root]# ifup eth0   <==启动 eth0 这块网路卡!
[root@test root]# ifdown eth0<==关闭 eth0 这块网路卡

说明:
手动修改网路参数使用 ifconfig ,但是档案设定的启动与关闭就得使用 ifup ifdown 啰。这两个指令要比 ifconfig 简单的多!不过他却必须要有相关的档案存在才能启动呦!举个例子来说,上面我们要启动 eth0 这块网路卡的时候,那么您的 Linux 系统当中就必须要存在 /etc/sysconfig/network-scripts/ifcfg-eth0 这个网路介面卡的设定档案才行!同理可证!如果要启动 eth1 ,除了存在 eth1 这个实体网路卡之外,还要存在 ifcfg-eth1 才行!请确实了解呦!因为后面关于 Linux Router 的章节当中,我们提到的一张网卡多 IP 就是用这个观念来达成的!
 


route
显示/修改路由表( route table )
语法

[root@test root]# route [-nee]
[root@test root]# route add [-net|-host] 目标主机或网域 [netmask] [gw|dev]
[root@test root]# route del [-net|-host] 目标主机或网域 [netmask] [gw|dev]
参数说明:
-n   :列出的资讯以 IP 来显示
-ee   :列出较长列的资讯
add   :增加路由资讯
del   :删除一个路由资讯
-net  :增加一个『网域』的路由,例如 C Class 的网域!
-host  :增加到某个 IP 主机的路由!
netmask :就是 netmask 呀!
gw    :这个是路由的通讯闸! gw  是以 IP 来建置的
dev   :这个是路由的通讯闸! dev 是以 介面 ( internet ) 代号来建置的!
范例:
[root@test root]# route<==看路由的资讯!
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref  Use Iface
140.116.141.253 *               255.255.255.255 UH    0      0      0 ppp0
192.168.1.0     *               255.255.255.0   U     0      0      0 eth0
127.0.0.0       *               255.0.0.0       U     0      0      0 lo
default         140.116.141.253 0.0.0.0         UG    0      0      0 ppp0
 
[root@test root]# route -n <== IP 的方式来显示路由!
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
140.116.141.253 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         140.116.141.253 0.0.0.0         UG    0      0        0 ppp0
注意到 route, route -n 这两个范例喔!使用 -n 与否会使 domain 是否进行查询,
一般来说,我都喜欢加上 -n 的,因为不必去查询正反解,显示速度较快,
此外, default gateway 就是 0.0.0.0 喔!
 
[root@test root]# route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0 
# 新增一个路由规则!
 
[root@test root]# route del -net 192.168.0.0 netmask 255.255.255.0 dev eth0
# 删除一个路由啰
 
[root@test root]# route add default gw 192.168.1.2 
# 增加一个 default gateway 呢!
注意一下, gw 后面接的是 IP ,而 dev 后面接的则是装置代号喔!

说明:
这个指令相当的有用!尤其是新手们最容易犯错的 gateway 设定错误的问题,都可以借由这一个指令来检查呢!这个指令有两个主要的用途:
 

    • 显示目前主机上面的路由资讯;

    • 修改( 增加或删除 )主机上面的路由表!『可以建置 router 呦!』

 
我们来谈一谈使用 route 时,显示的内容意义:
 

    • Destination:目标,可以是 IP 也可以是网域!至于没有规定到的,则是以 default 来表示!以上面为例,当我的机器要去 192.168.1.0 的时候,则以上表的 192.168.1.0 那一行的设定为主,但如果我要去 tw.yahoo.com 的时候,由于没有规定到!所以就要以 default 的资讯为主要的路由!因此,我就会经由 140.116.141.253 这个 gateway 来传送出去我的封包啰!

    • Gateway :该目标要经由哪一个网关传送?就是这一个设定值啦!

    • Genmask :就是该 Destination netmask 啰!例如 140.116.141.253 255.255.255.255 ,因为他是一个 host 而不是一个 network 呀!至于 192.168.1.0 就是 255.255.255.0 这个 C Class 啰!那如果是 default 的话,就显示 0.0.0.0 ,也就是不论是哪里,都出自这一个 gateway 就是了!

    • Flages :旗标,有底下几种 Flage 呢:

      • U (route is up):该路由已经启动了;

      • H (target is a host):目标是一个主机( IP ),例如上面范例中的 140.116.141.253 那一个;

      • G (use gateway):用来作为 gateway 的设定;

      • R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;

      • D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为 动态路由;

      • M (modified from routing daemon or redirect):路由已经被修改了;

      • !  (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)

    • Iface :该设定使用的网路介面为何?

 
好了,那么如何增加或删除路由呢!就由上面的例子就可以知道啦!很简单的啦!不过需要注意的是,单纯有路由功能还不够!因为还需要有 router 的功能才行!我们将在 router 那个章节再来持续谈一谈这个问题啰!『注:当您发现下达 route 的时候,显示的速度很慢时,通常是您的路由资讯有一定的问题存在!果真如此的话,请务必仔细的检查一下设定,否则对于您的网路速度会有迟滞现象呦!


一些网路侦错指令

在网路的世界中,最常听到的一句话就是:『高手求救!我的 Linux 不能上网路!』我的天呐!不能上网路的原因多的很!而要完全搞懂也不是一件简单的事情呢!而很多的网路侦测指令其实在 Linux 里头已经都预设存在了,只要您好好的学一学基本的侦测指令,那么一些朋友在告诉您如何侦错的时候,您应该就立刻可以知道如何来搞定他啰!好了,底下我们就简单的来谈一谈几个很基本的网路常用的侦错指令啦!要好好学习呦!
 

ping       :送一个 ICMP 的封包给某部主机
traceroute :调查连接到某部主机时,每个节点的连线速度

 
底下分别来谈一谈先!
 


ping
传送一个 ICMP 封包给某部主机
语法

[test@test test]# ping [-b broadcast]
[test@test test]# ping [-c number] host
参数说明:
-b broadcast :当要 ping 一个网段时,可以使用这个方式来『广播』!
-c number    :后面加上 number (数字)可以限制 ping 几次!
范例:
[test@test test]# ping -c 5 tw.yahoo.com  <==除了IP也可以 ping domain name
PING tw.yahoo.com (202.1.237.21) from 61.28.113.1 : 56(84) bytes of data.
64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=0 ttl=245 time=7.133 msec
64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=1 ttl=245 time=7.497 msec
64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=2 ttl=245 time=6.625 msec
64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=3 ttl=245 time=6.457 msec
64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=4 ttl=245 time=6.434 msec
 
--- tw.yahoo.com ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/mdev = 6.434/6.829/7.497/0.421 ms
 
[test@test test]# ping -b 192.168.1.255 -c 2 <==这里必须是广播位址
WARNING: pinging broadcast address
PING 192.168.1.255 (192.168.1.255) from 192.168.1.254 : 56(84) bytes of data.
64 bytes from 192.168.1.36: icmp_seq=0 ttl=255 time=191 usec
64 bytes from 192.168.1.45: icmp_seq=0 ttl=255 time=492 usec (DUP!)
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=531 usec (DUP!)
 
--- 140.116.44.255 ping statistics ---
2 packets transmitted, 2 packets received, +6 duplicates, 0% packet loss
round-trip min/avg/max/mdev = 0.134/0.811/2.094/0.647 ms

说明:
这个东西好用的很!不论在哪一个作业系统当中,他都是相当有用的网路侦错指令!例如您要侦测一下您的网路卡是否正确的备执行了,可以使用『ping your.NIC.IP.address 』来查阅!当然啰!加上次数更好:『ping -c 5 your.NIC.IP.address 』!无论如何,这个指令一定要记得的啦!
 

    • icmp:指的是 ICMP 这个协定啰!

    • ttl:指的是 time to live 啦!当经过一个节点, ttl 就会减少一!而预设有 255 个!以上面为例,我的 Linux 主机连接到 tw.yahoo.com 共经过 10 gateway ,所以 ttl 剩下 245

 


traceroute
调查连接到某部主机时,每个节点的连线速度
语法

[root@test root]# traceroute [-i interface] [-g gateway] [host|IP]
参数说明:
-i :使用这个 interface 来连出去!例如 eth0, ppp0 等!
-g :使用这个 gateway 来连出去!例如 192.168.1.2, 140.116.141.29 等!
范例:
[root@test root]# traceroute tw.yahoo.com
traceroute to tw.yahoo.com (202.1.237.21), 30 hops max, 38 byte packets
 1  140.116.141.253 (140.116.141.253)  123.958 ms  96.357 ms  97.810 ms
 2  140.116.140.253 (140.116.140.253)  103.548 ms  87.607 ms  78.227 ms
 3  163.28.112.253 (163.28.112.253)  99.522 ms  84.379 ms  79.858 ms
 4  210.242.251.246 (210.242.251.246)  104.429 ms  86.622 ms  79.857 ms
 5  211.22.226.50 (211.22.226.50)  97.897 ms  86.031 ms  87.177 ms
 6  TaiPei-TANET-P1.BR.HiNet.NET (168.95.207.242)  101.981 ms  58.149 ms  60.231 ms
 7  168.95.17.162 (168.95.17.162)  69.198 ms  63.294 ms  58.594 ms
 8  210.65.200.10 (210.65.200.10)  65.950 ms  67.336 ms  63.503 ms
 9  211.22.35.169 (211.22.35.169)  67.572 ms  92.535 ms  83.105 ms
10  211.22.41.89 (211.22.41.89)  106.855 ms  92.540 ms  87.201 ms
11  alteon6.tpe.yahoo.com (202.1.237.253)  122.347 ms  92.235 ms  91.266 ms

说明:
这个指令相当的有用途,他可以用来判断当一部远端主机无法连线时候,到底封包是停顿在哪一个节点上!因为很多时候,您常常会发现『咦!网路速度怎么变慢了?』然后自己的主机似乎没有问题呀!这个时候就可以使用这个指令查检查一下,是否在连线的过程当中,有些节点被挡下来了呢?!很好用的啦!不过,万一如果出现了 *** traceroute 的输出结果中,那就表示该 router 应该有点问题呐!得赶紧向上头报告去维修喔!


网路观察与查询

在我们主机上面,您可晓得目前有多少连线被建立了?而您的主机名称是否能够在 Internet 上面被查询到呢?这些都需要动用到某些网路观察的指令。我们底下就谈一谈几个简单的观察指令:
 

netstat    :查阅网路资讯的指令
host       :显示主机名称( domain name )
nslookup   :调查主机名称对应的 IP

 


netstat
查阅网路资讯的指令
语法

[root@test root]# netstat [-r] [-i interface]
[root@test root]# netstat [-antulp]
参数说明:
-r  :显示出 route 的意思;
-i  :显示出 interface 的内容,跟 ifconfig 类似啦!
-a  :显示出目前所有的网路连线状态!
-n  :预设情况中,显示出的 host 会以 host name 来显现,若为 n 则可以使 port host 都以数字显示
-t  :仅显示 tcp 封包的连线行为
-u  :仅显示 udp 的封包连线状态
-l  :仅显示 LISTEN 的内容
-p  :同时显示此一连线的 PID 喔!(注意:只有 root 才能行使此功能!)
范例:
[root@test root]# netstat -r 
# 嘿嘿!显示出目前的路由表!与 route 指令的功能相同。
Kernel IP routing table
Destination     Gateway         Genmask         Flags MSS Window irtt Iface
140.116.141.253 *               255.255.255.255 UH     40 0         0 ppp0
192.168.1.0     *               255.255.255.0   U      40 0         0 eth0
192.168.0.0     *               255.255.255.0   U      40 0         0 eth0
127.0.0.0       *               255.0.0.0       U      40 0         0 lo
default         140.116.141.253 0.0.0.0         UG     40 0         0 ppp0
 
[root@test root]# netstat -i eth0 
# 看看底下显示出的内容,是否跟 ifconfig eth0 类似呀!?
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR   TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0   1500   077199373      0      0      169616342      0      0      0 BMRU
lo    16436   0 1130485      0      0      0 1130485      0      0      0 LRU
 
[root@test root]# netstat -an<==显示所有的连线状态,并且以数字型态显示
[root@test root]# netstat -tul <==显示 LISTEN 的及 tcp udp 的连线状态,如下:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:mysql                 *:*                     LISTEN
tcp        0      0 *:netbios-ssn           *:*                     LISTEN
tcp        0      0 *:pop3                  *:*                     LISTEN
tcp        0      0 *:http                  *:*                     LISTEN
tcp        0      0 *:ftp                   *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 *:smtp                  *:*                     LISTEN
udp        0      0 *:netbios-ns            *:*
注意:上面的 LISTEN 表示该 port 是已经在 监听 网路服务啦!而左边的 tcp 指的是 tcp 封包!
 
[root@test root]# netstat -anp | more <==这个指令很常下达!请记得呦!

说明:
netstat
可是很了不起的指令,一定要学会的!尤其他可以让我们了解目前的您的主机的连线状态!与开启的 port 有哪些!所以一定得学会才行呀!如果您分别下达:
 

    • netstat -a  | more

    • netstat -an | more

 
一定会发现有点奇怪?怎么有的 port 会以服务名称(例如上面例子里的 pop3 ...)有的会以 port 号码来显示呢!?嘿嘿!那就是 /etc/services 以及 -n 这个参数的用途啦!您可以发现的是,如果 netstat -a 时,显示出来的 port 号码在 /etc/services 存在对应的服务名称的时候,那么预设他就会显示出该服务名称啦!但是若在 /etc/services 找不到档案的话,那么自然就还是以 port 号码来显示的!那么加上了 -n 参数后,不论如何,他都会以 port IP 来显示啦!
 
另外,那个 -p 也很有用呦!尤其是在一些莫名其妙的连线出现时,可以用 -p 这个参数查到 PID ,然后再以利用 kill 来杀掉他呦!
 

    • Proto:指的是封包或者是通讯协定啦! tcp , udp 是常见的呦!

    • Local Address:本地端的 IP Port 号,如果 /etc/services 存在对应服务名称,就以服务名称显示;

    • Foreign Address :监听哪一个地区与 port

    • state:状态列就很多啦!基本的有:

      • LISTEN :亦即监听状态中的 port

      • ESTABLISHED:已建立连线的连线情况

      • TIME_WAIT:该连线在目前已经是等待的状态了!随时有可能会断线呦!

 
善用 netstat 可以查得相当多的网路资讯!尤其在关闭本机的 port 时!
 


host
显示主机名称( domain name )
语法

[root@test root]# host [-a] domain_name
参数说明:
-a :显示出所有的资讯
范例:
[root@test root]# host tw.yahoo.com  <==仅显示出主机的 IP
tw.yahoo.com. has address 202.1.237.21
 
[root@test root]# host -a tw.yahoo.com <==所有的主机资讯显示!
Trying "tw.yahoo.com."
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59138
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5

;; QUESTION SECTION:
;tw.yahoo.com.                  IN      ANY

;; ANSWER SECTION:
tw.yahoo.com.           370     IN      A       202.1.237.21

;; AUTHORITY SECTION:
yahoo.com.              213     IN      NS      NS1.yahoo.com.
yahoo.com.              213     IN      NS      NS2.yahoo.com.
yahoo.com.              213     IN      NS      NS3.yahoo.com.
yahoo.com.              213     IN      NS      NS4.yahoo.com.
yahoo.com.              213     IN      NS      NS5.yahoo.com.

;; ADDITIONAL SECTION:
NS1.yahoo.com.          88153   IN      A       66.218.71.63
NS2.yahoo.com.          42259   IN      A       209.132.1.28
NS3.yahoo.com.          51730   IN      A       217.12.4.104
NS4.yahoo.com.          38291   IN      A       63.250.206.138
NS5.yahoo.com.          67985   IN      A       64.58.77.85

Received 216 bytes from 163.28.112.1#53 in 10 ms

说明:
这个功能跟 nslookup 几乎是相同的!但是 nslookup 多了较多的功能就是了!我们使用这个指令时,系统会自动去找 /etc/resolv.conf 底下设定的 DNS IP,然后根据该 IP 来侦测我们所想要知道的主机对应的 IP 咯!那么多了 -a 之后显示出来的讯息是什么?嘿嘿!别担心,在我们后续的 DNS 架设当中就会提到啦!有点耐心的往下看呦!
 


nslookup
查询主机名称与 IP 的对应
语法

[root@test root]# nslookup [domain_name|IP]
参数说明:
范例:
[root@test root]# nslookup tw.yahoo.com <==  domain name 查询 IP
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:         163.28.112.1
Address:        163.28.112.1#53

Non-authoritative answer:
Name:   tw.yahoo.com
Address: 202.1.237.21

[root@test root]# nslookup 202.1.237.21 <== IP 查询 domain name 
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:         163.28.112.1
Address:        163.28.112.1#53

Non-authoritative answer:
21.237.1.202.in-addr.arpa       name = tw.yahoo.com.

Authoritative answers can be found from:
237.1.202.in-addr.arpa  nameserver = ns1.yahoo.com.
237.1.202.in-addr.arpa  nameserver = ns2.yahoo.com.
237.1.202.in-addr.arpa  nameserver = ns3.yahoo.com.
237.1.202.in-addr.arpa  nameserver = ns4.yahoo.com.
237.1.202.in-addr.arpa  nameserver = ns5.yahoo.com.
ns1.yahoo.com   internet address = 66.218.71.63
ns2.yahoo.com   internet address = 209.132.1.28
ns3.yahoo.com   internet address = 217.12.4.104
ns4.yahoo.com   internet address = 63.250.206.138
ns5.yahoo.com   internet address = 64.58.77.85

说明:
这个指令就如同前面的 host 提到的,就是正查反查的的指令啦!也是利用 /etc/resolv.conf 的内容来查询的!详细的说明请参考 DNS 伺服器设定一节喔!


远端连线使用指令telnet, ftp, ncftp,

用来作为远端连线操控自己主机的方法是什么呢?呵呵!简单,就是利用 telnet 啰!当然啦!这并不是很安全的方式,我们未来在后头提到 ssh 伺服器的时候,会再跟大家报告 ssh sftp 的用法啰!另外, telnet 用来连上 BBS 也是挺好用的哩!呵呵!那么远端传送 DATA 自然就是使用 ftp 啰!而由于目前很多的匿名网站耶,每次都要输入 anonymous 真的很烦!那么就使用 ncftp 吧!很简单使用呦!
 

    • telnet :用来连线远端主机,当然, BBS 主机也可以连线

    • ftp    :远端传送资料当中,速度最快的协定之一

    • ncftp  :登入匿名主机最好用的文字介面 FTP 软体!

 
底下我们就谈一谈怎么样来用这些指令吧!
 


telnet
用来连线远端主机,当然, BBS 主机也可以连线
语法

[root@test root]# telnet [-8] [host|IP] [port]
参数说明:
-8  :可以减少乱码的情况
port:服务的埠口!例如 POP3 110 SMTP 25 port 等等!telnet 可以用来侦测!
范例:
[root@test root]# telnet -8 bbs.sayya.org
bbs.sayya.org ? SayYA Linux 资讯站 ? 140.113.22.98
欢迎光临【 SayYA 资讯站 】目前线上人数 [41]

                      SayYa Linux's BBS 站台 

          一个以 Linux 消息、知识、互动服务之专业 BBS
 

参观用帐号:guest,申请新帐号:new

请输入代号:guest 
# 这个是台湾最有名气的专业 Linux BBS 站,有空多来瞧一瞧!
 
[root@test root]# telnet localhost 110
# 侦测本机端的 110 这个 port 是否有启动
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
上面是没有开启 port 110 的情况!所以显示连线不成功! refused

[root@test root]# telnet localhost 110
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
+OK POP3 test v2000.70rh server ready
quit<==这里输入离开的指令为 quit 呦!
+OK Sayonara <==哈哈!还告诉您日本话『纱呦那哪』
Connection closed by foreign host.

说明:
除了连线到主机以进行远端操控之外, telnet 最好用的地方就是在于:
 

    • 帮助您连接上去 BBS 查询资料;

    • 帮助您测试主机端某个 埠口 的连线情况!

 
以上面的例子来说,我们使用 telnet 就可以立刻连上 SayYa 这个专门探讨 Linux BBS 站台的欢迎画面!嘿嘿!很棒吧!另外,如果您要确认本机端的 110 这个埠口是否正常时,也可以使用『
telnet + IP + port 』来侦测看看呦!很好用的工具吧! ^_^!不过,不幸的是,如果您在 Linux 终端机介面下,应该是看不到中文的啦!怎么办?!没关系,我们可以加上安装 JMCCE 这个中文套件来显示喔!这个在本章节后面继续说明咯。
 


ftp
远端传送资料当中,速度最快的协定之一
语法

[root@test root]# ftp [-p] host [port]
参数说明:
-p :启动 PASSIVE 模式!
范例:
[root@test root]# ftp localhost     <==预设是以 port 21 来进行连线
[root@test root]# ftp localhost 1354   
# 如果您设定的 ftp port 非正规的 21 ,则可以这样!
 
[root@test root]# ftp localhost  <==连接到远端主机
Connected to localhost (127.0.0.1).
220 localhost FTP server (Version wu-2.6.1-20) ready.
Name (127.0.0.1:test): test  <==输入帐号
331 Password required for test.
Password: <==输入密码
230 User test logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir          <==显示远方主机的内容
ftp> cd           <==变换远端主机的目录
ftp> close or bye or exit <==离开远端主机
ftp> get file       <==取得远端主机的档案
ftp> mget file       <==取得所有的档案,较 get 好用!例如 mget .bash*
ftp> put file       <==将本地端档案 file 丢到远端主机上
ftp> mputfile       <==将一些档案上传咯
ftp> delete file      <==杀掉远端主机的 file 档案
ftp> help         <==显示求救指令!
ftp> mkdir dir       <==在远端主机上面建立目录
ftp> lcd          <==变换本地端路径!
ftp> ascii or binary    <== ASCII 模式或 BINARY 模式捉取资料!?

说明:
这个指令是用在传输档案上面相当好用的功能之一!尤其是在可匿名登入的 FTP 网站!例如中山大学的网站!用法就如同上面显示的一般!包括各种捉取档案的方式都写在上头了,可得好好的参考参考!不过,由于这个资料在传送的时候是以明码的方式来传送的,所以较不安全啦!建议多以 sftp 来使用之!另外,他最大的好处是可以指定 port !当您有建立非 21 port 的时候,就可以使用这个指令加上 port 号来连线啦!
 


ncftp
登入匿名主机最好用的文字介面 FTP 软体!
语法

[root@test root]# ncftp [host]
[root@test root]# ncftp [ftp://domain.name/path]
参数说明:
可以直接连接到 host 主机,也可以直接连接到主机的某个路径之下,相当的方便
范例:
[root@test root]# ncftp ftp.nsysu.edu.tw  <==连接到中山大学 FTP
[root@test root]# ncftp ftp://ftp.nsysu.edu.tw/Linux
# 直接连接到该 FTP 主机里面的 Linux 目录下!
# 不过底下的画面因为经过转存,所以产生了乱码~在 Putty 底下是正常的!
NcFTP 3.0.3 (April 15, 2001) by Mike Gleason ([email protected]).

Copyright (c) 1992-2001 by Mike Gleason.
All rights reserved.

Connecting to ftp.nsysu.edu.tw...

  ======================================================================
  ==            ***** ?????°?°?????s?j???q?????? *****              ==
  ==      ***********   -- ???R?§?q???×???A?? --   ***********        ==
  == ********************** FTP.NSYSU.EDU.TW ************************ ==
  ==  _/_/_/_/  _/_/_/  _/_/_/   _/     _/  _/_/_/   _/_/_/   _/_/_/  ==
  ==  _/       _/    _/ _/    _/ _/_/  __/ _/    _/ _/    _/ _/    _/ ==
  ==  _/       _/    _/ _/    _/ _/ _/_/_/ _/    _/ _/       _/    _/ ==
  ==  _/_/_/_/ _/    _/ _/_/_/   _/  _/ _/ _/    _/  _/_/_/  _/_/_/_/ ==
  ==  _/       _/    _/ _/  _/   _/     _/ _/    _/       _/ _/    _/ ==
  ==  _/       _/    _/ _/   _/  _/     _/ _/    _/ _/    _/ _/    _/ ==
  ==  _/        _/_/_/  _/   _/ _/     _/  _/_/_/   _/_/_/  _/    _/ ==
  == **************  National Sun Yat Sen University  *************** ==
  ==      ***************** Computer Center ******************        ==
  ==            ***********  -- FORMOSA --  ************              ==
  ==                 ******    Ftp Server   ******                    ==
  ======================================================================
  ???h§Q? <A HREF="http://ftp.nsysu.edu.tw">http://ftp.nsysu.edu.tw</A>
  ======================================================================
FTP.NSYSU.edu.tw is ready now.
Logging in...

  ========================================================================
  o Continously file transfer protocol supported now! (Download Resum)
    (????????U??????)
  ========================================================================
  ???h?h§Q? <A HREF="http://ftp.nsysu.edu.tw">http://ftp.nsysu.edu.tw</A>
  iH??????K??·j?M??????!!!!!!!!!!!!!!!!!
  Please use the search engine on the URL http://ftp.nsysu.edu.tw
  ========================================================================
  ??e FTP ??÷?? 235 ?H??b?u?W?A??e??°????? 1600 ?H
  There are currently 235 users out of 1600 possible. (Class: default)
  ======================================================================
  ADM.Email: [email protected]
Anonymous access granted, restrictions apply.
Logged in to ftp.nsysu.edu.tw.
Current remote directory is /pub/Linux.
ncftp /pub/Linux >  <==瞧!直接进入画面啰!而且不需要输入帐号与密码呢!

远端主机的一些服务指令:
ncftp /pub/Linux > cd Redhat      <==变换目录
ncftp /pub/Linux > dir         <==显示目前目录下的档案与目录资讯
ncftp /pub/Linux > get file1      <== file1 的资料存到本地端
ncftp /pub/Linux > get -z file1 file2 <== file1 存到本地端时改档名为 file2
ncftp /pub/Linux > get -A file1 file2
# file1 以累积的方式(append)增加到 file2 这个档案
ncftp /pub/Linux > pub file      <==将档案由本地端上传至远端!
ncftp /pub/Linux > rename file1 file2 <==将远端的主机之 file1 更名为 file2
ncftp /pub/Linux > rm file       <==删除档案
ncftp /pub/Linux > rmdir directory   <==删除目录
ncftp /pub/Linux > mget directory   
# 可以下载『整个目录』的资料!很棒吧!

本地端主机的一些指令功能:
ncftp /pub/Linux > lcd       <==变更本地端目前所在的目录
ncftp /pub/Linux > lls       <==显示目前本地端所在目录的档案与目录资讯
ncftp /pub/Linux > lmkdir     <==在本地端建立目录
ncftp /pub/Linux > lpwd      <==显示目前本地端主机的所在目录
ncftp /pub/Linux > lrm      <==删除本地端的档案
ncftp /pub/Linux > lrmdir     <==删除本地端的『目录』

说明:
这个指令的功能就更强大了!尤其在于使用目前网路上面允许匿名登入的 FTP 网站!例如上面提到的中山大学的 FTP 网站!您可以马上登入他,然后立刻连线看看,就知道如何使用他啦!很好用的啦!! ^_^



文字界面网页浏览lynx, wget,

什么?!文字界面竟然有浏览器!别逗了好不好?!呵呵!谁有那个时间在逗您呦!真的啦!有这个东西,是在文字界面下上网浏览的好工具!分别是 lynx wget 这两个宝贝蛋,但是,您必需要确定您已经安装了这两个套件才行:
 

    • lynx-2.8.5-11

    • wget-1.8.2-9

 
这两个套件的版本在 Red Hat 9 2.8.5-11 1.8.2-9 ,至于其他版本的 linux 则不见得是后面这个版本名称,所以不同也没有关系!只要将原版 CD 拿出来 mount 他之后,以 rpm 安装吧!不要说您不会呦!打屁屁!好了,假设您已经安装好了,那么这两个东西分别是什么呢?先约略的介绍一下:
 

    • lynx :用来上网的文字界面的浏览器!他真的很不错用,尤其是要让 Linux 定期捉取某个网站的网页资料,他可是相当好用的哩!同时,如果作了部分设定,就可以直接观看中文啰!

    • wget :以 HTTP FTP 协定作用,来进行网路档案资料的捉取的功能!这个东西也相当的好用!可以在文字界面下直接捉取 HTTP 上面的分享的档案呦!呵呵!棒!

 
底下我们就分别来谈一谈这两个可爱的小东西吧!!
 


lynx
文字介面下的 WWW 浏览器
语法

[root@test root]# lynx http://web.site
参数说明:
范例:
[root@test root]# lynx http://tw.yahoo.com
tw.yahoo.com cookie: B=b7hd3jkukeu1e&b=2  Allow? (Y/N/Always/neVer) A
# 上面输入 A 就可以接受 cookie 了!
                                                     Yahoo!奇摩 (p1 of 5)

                     [USEMAP:yk_masthead_142.gif]

   小中~蓎胣语 9成国小偷跑   法国热浪 死亡人数直冲5千人   南洋-
   极蘤═k性精品

   如何冲印出好照片?
   ________________________ 搜 寻
   热门关键字: 国民旅游卡 - 电脑病毒 - 金庸 - 猎人
   珍藏自拍大公开!

   【拍卖】 [auc_ani.gif]
   千元有找,美发DIY:假发、染发、烫发、洗护、造型雕
   【资讯】 新闻 - 股市 - 理财 - 气象 - 健康 -
   电子报 - 汽车 - 手机
   【社群】 聊天 - 家族 - 摩域 - 即时通讯 - 交友 - 造型精灵
   【商务】 旅游 - 出国 - 购物 - 开店 - 网站登录 - 拍卖
   【我的】 信箱 - 相簿 - 冲洗 - 通讯录 - 行事历 - H?- MY
   【娱乐】 影?- 电影 - ?- 卡通 - 笑坛 - 游戏 - 星座 - 算命
   【服务】 简讯 - 贺卡 - 字典 - ADSL - 求职   border=0 服务总览
   【频道】 3C情报 - 女性时尚 - ^ - 房屋情报 - 减肥
   [0422_01.gif]
   [2001.jpg]
   [2002.jpg]
   [2003.jpg]
   [2004.jpg]
   >> 更多阳光肌肉男
   【宽频服务】月费99元起再送无线滑鼠,只剩最后两周   [bul.gif]
   现在申请
   【拨接服务】免费好礼大放送 快用拨接上网   [bul.gif]
   下载免费拨接精灵
(NORMAL LINK)   Use right-arrow or <return> to activate.
  Arrow keys: Up and Down to move.  Right to follow a link; Left to go bac
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history li
 
说明:
1. 进入画面之后,由于是文字型态,所以编排可能会有点位移!不过不打紧!
  不会影响我们看咚咚!
2. 这个时候可以使用『上下键』来让游标在上面的选项当中( 如信箱、书签
  等等的 ),按下 Enter 就进入该页面
3. 可以使用『左右键』来移动『上一页或下一页』。
4. 可以借由修改 /etc/lynx.cfg 来设定显示的字元编码( 台湾地区可以
  选择 Big5 编码 )
5. 其他的设定可以使用上面的范例当中,最底下那一行, 
  H)elp O)ptions P)rint G)o M)ain Q)uit 等等!
6. 功能说明:
   h    :Help, 求助功能. 线上说明书.
   g    :Goto URL, g 后输入网页位址(URL) :http://www.abc.edu/
   d    :download, 下载档案.
   q    :Quit, 跳离 lynx !
   Ctrl+C  :强迫切断 lynx 的执行.
   方向键:
     上  :移动游标至本页中 "上一个可连结点" .
     下  :移动游标至本页中 "下一个可连结点" .
     左  back. 跳回上一页.
     右  :进入反白游标所连结之网页.
     ENTER "" .

说明:
这个指令的最大功用就是让我们在文字介面下使用这个浏览器来上 WWW 网页啦!真的相当的好用!您可以仔细的尝试使用看看!速度上面应该是蛮快的呦!lynx 是文字模式下最普遍也最好用的网页浏览器(browser),由于 lynx 只在画面上秀出文字及其链结(link)的点,透过操作简单的方向键及功能键,便能讯速的浏览网页,亦可下载档案。
 
另外,在台湾地区由于我们需要使用到 Big5 的编码表,所以需要修改一下 lynx 的设定档,亦即是 /etc/lynx.cfg 这个档案,将底下的内容修改一下:
 

[root@test root]# vi /etc/lynx.cfg
.... ....找到底下的三行字串
##CHARACTER_SET:iso-8859-1    <==大约在 394 行处
#ASSUME_CHARSET:iso-8859-1    <==大约在 409 行处
#PREFERRED_LANGUAGE:en      <==大约在 537 行处
 
将上面三行的 # 符号取消,并且改成底下这样:
CHARACTER_SET:big5        <==这就是 Big5 中文的编码
ASSUME_CHARSET:big5       <==跟上面的说明一样!
PREFERRED_LANGUAGE:zh_TW     <==这个就是语系的支援!
语系的支援方面,您可以查看一下 /etc/sysconfig/i18n 这个档案,
zh_TW 指的就是台湾!做了上面设定之后,就可以看中文啰!

呵呵!这样一来就可以见识到文字介面浏览器的庞大功能啰!您还可以参考一下底下的网址:http://freebsd.sinica.edu.tw/zh-tut/web-browse.html#LYNX
 
此外,我们也可以使用 lynx 来进行『下载图示』的功能呦!例如我们要下载一个档案,则可以使用:

[root@test root]# lynx -dump http://the.site.doname.name/xxx.gif > file.gif

呵呵呵!就样就 OK 啦!
 


wget
使用 wget 利用 FTP HTTP 的协定来捉取资料!
语法

[root@test root]# wget http://domain.name/file
[root@test root]# wget http://ftp.nsysu.edu.tw/Unix/Web/counter/Count2.6/Count2.6/download/src/wwwcount2.6.tar.gz
--14:54:45--  http://ftp.nsysu.edu.tw/Unix/Web/counter/Count2.6/Count2.6/download/src/wwwcount2.6.tar.gz
           => `wwwcount2.6.tar.gz'
Connecting to ftp.nsysu.edu.tw:80... connected!
HTTP request sent, awaiting response... 200 OK
Length: 433,312 [application/x-gzip]

    0K .......... .......... .......... .......... .......... 11% @ 746.27 KB/s
  50K .......... .......... .......... .......... .......... 23% @ 581.40 KB/s
  100K .......... .......... .......... .......... .......... 35% @ 909.09 KB/s
  150K .......... .......... .......... .......... .......... 47% @   1.09 MB/s
  200K .......... .......... .......... .......... .......... 59% @ 746.27 KB/s
  250K .......... .......... .......... .......... .......... 70% @ 781.25 KB/s
  300K .......... .......... .......... .......... .......... 82% @ 757.58 KB/s
  350K .......... .......... .......... .......... .......... 94% @ 704.23 KB/s
  400K .......... .......... ...                             100% @   1.13 MB/s

14:54:46 (780.73 KB/s) - `wwwcount2.6.tar.gz' saved [433312/433312]

说明:
这个指令则是可以在文字介面中下载 WWW 里面的连结档案资料!也是相当方便的指令呢!那么如果要使用 proxy 来下载资料呢?嘿嘿!算您聪明!没错!使用 Proxy 有时候确实会让我们的下载速度变快,这个时候就需要动用的设定档啦!我们的设定档案放置在 /etc/wgetrc ,您可以这样修改一下,假设您要使用成大的 Proxy 主机:http://proxy.ncku.edu.tw 而他的连接 port 3128 ,所以就要这样改变啰!
 

[root@test root]# vi /etc/wgetrc
.... ....找到底下的两行字串
#http_proxy = http://proxy.yoyodyne.com:18023/ <== 75 行处
#use_proxy = on                <== 78 行处
 
将上面两行的 # 符号取消,并且改成底下这样:
http_proxy = http://proxy.ncku.edu.tw:3128/
use_proxy = no

呵呵呵!这样一来,就有 Proxy 来支援我们的 wget 下载软体啰!很棒吧! ^_^


终端机的中文显示:jmcce 计划

或许您会觉得文字介面底下的浏览器也好,其他相关的 WWW 工具也好,只要牵涉到中文 ( big5 ) 编码的问题,就会是个『头痛的问题』。因为终端机预设状态就是无法以中文来浏览啊!真是讨厌~好在有我们自由软体的前辈们的努力,现在我们只要安装 jmcce 这个套件后,就可以在文字介面浏览中文了!真是太高兴了!既然如此,那就来给他试看看吧!
 
JMCCE
的官方网站在:

 
此外,您在安装 JMCCE 之前,必须要先安装 svgalib 这个套件才行喔! svgalib 的官方网站在:

 
因为这次的测试当中,我选择 Red Hat 9 来进行,所以 svgalib 也可以到这个网站来下载:

下载的档案包括了:svgalib-1.4.1-12.i386.rpm svgalib-devel-1.4.1-12.i386.rpm 两个。
 
还有一件很讨厌的事情,那就是 jmcce 目前仅支援 autoconf 2.13 以及 automake 1.4 而已,较新的版本会有问题,偏偏我们的 Red Hat 9 就是较新的版本,所以您也必须要到中山大学的 ftp 站台下载较旧的版本才行!另外,也需要 libtool 这个套件呢!目前我就是以 autoconf 2.13 automake 1.4 以及 libtool-1.4.2 来编译的说!
 
当然啦,为了避免上面的 RPM 档案仅能够在 Red Hat 版本上面安装,所以我也分别在两个网站上下载了最新的 Tarball 套件,如下所示:
 

[root@test root]# wget http://www.svgalib.org/svgalib-1.4.3.tar.gz
[root@test root]# wget http://jmcce.slat.org/DOWNLOAD/jmcce-1.4RC2.tar.gz

 
我这里使用的所有档案您也可以在鸟哥的私房菜里面下载:http://linux.vbird.org/download/#jmcce。然后就来安装吧!安装的过程相当的繁复,很讨厌的啦,您必须要一个套件一个套件的安装,而且为了不要让我们的系统出现问题,安装完毕之后,还需要将旧的套件移除,将原本的套件安装回来,天呐!好麻烦~跟著我一步一步的进行吧!
 

1. 先安装 svgalib 
1.1 如果以 RPM 安装的话(较不建议)
[root@test root]# rpm -ivh svgalib-*.rpm
这样就 OK 了!
 
1.2 如果以 Tarball 安装的话(较建议的安装模式)
[root@test root]# cd /usr/local/src
[root@test src]# tar -zxvf /root/svgalib-1.4.3.tar.gz
[root@test src]# cd svgalib-1.4.3
[root@test svgalib-1.4.3]# cd utils/
[root@test utils]# ln -s ../src/vga.h vga.h
[root@test utils]# vi Makefile
# 找到底下这一行( 约在第 16 )
CFLAGS = $(WARN) $(OPTIMIZE) -I../include
# 修改成:
CFLAGS = $(WARN) $(OPTIMIZE) -I../include -L../sharedlib
[root@test utils]# cd ..
[root@test svgalib-1.4.3]# make install
[root@test svgalib-1.4.3]# cd /usr/lib
[root@test lib]# ln -s /usr/local/lib/libvga.so.1 .
# 会有一些错误讯息,不过只与 man 有关,没有关系!先略过去!
 
2. 再安装 jmcce 这个套件吧!
[root@test root]# rpm -e  libtool autoconf automake
# 先移除一些较新的套件咯!
 
2.1 先装 autoconf
[root@test root]# cd /usr/local/src
[root@test src]# tar -zxvf /root/autoconf-2.13.tar.gz
[root@test src]# cd autoconf-2.13
[root@test autoconf-2.13]# ./configure --prefix=/usr/local
[root@test autoconf-2.13]# make && make install
 
2.2 安装 automake
[root@test autoconf-2.13]# cd /usr/local/src
[root@test src]# tar -zxvf /root/automake-1.4.tar.gz
[root@test src]# cd automake-1.4
[root@test automake-1.4]# ./configure --prefix=/usr/local
[root@test automake-1.4]# make && make install
 
2.3 安装 libtool
[root@test automake-1.4]# cd /usr/local/src
[root@test src]# tar -zxvf /root/libtool-1.4.2.tar.gz
[root@test src]# cd libtool-1.4.2
[root@test libtool-1.4.2]# ./configure --prefix=/usr/local
[root@test libtool-1.4.2]# make && make install
 
2.4 安装 jmcce
[root@test libtool-1.4.2]# cd /usr/local/src
[root@test src]# tar -zxvf /root/jmcce-1.4RC2.tar.gz
[root@test src]# cd jmcce-1.4RC2/
[root@test jmcce-1.4RC2]# LANG=zh_TW.Big5
[root@test jmcce-1.4RC2]# vi /etc/sysconfig/i18n
# 可以将他改成中文显示喔!底下的模样修改
LANG="zh_TW.Big5"
[root@test jmcce-1.4RC2]# vi genconf.sh
# 找到这一行:
bin_PATH="/usr/bin"
# 将他改成:
bin_PATH="/usr/local/bin"
[root@test jmcce-1.4RC2]# ./genconf.sh ; ./genconf.sh
# 这个动作要多做几次,不然老是有一些怪怪的错误讯息!
# 最后还是会出现一个错误讯息,就是底下的样子:
configure.in: 13: required file `build/ltconfig' not found
# 不过这个讯息不会影响最后的编译结果,所以就不要管他了!
[root@test jmcce-1.4RC2]# ./configure --prefix=/usr /
> --sysconfdir=/etc/chinese/jmcce
[root@test jmcce-1.4RC2]# make && make install
 
3. 移除暂存中间档案,将新版套件安装回来!
[root@test jmcce-1.4RC2]# cd /usr/local/src/autoconf-2.13/ && make uninstall
[root@test autoconf-2.13]# cd /usr/local/src/automake-1.4/ && make uninstall
[root@test automake-1.4]# cd /usr/local/src/libtool-1.4.2/ && make uninstall
# 拿出原版光碟,安装 autoconf, automake libtool 吧!

 
这样就安装妥当了 jmcce 了,真的很麻烦对吧! ^_^!我就觉得很麻烦,上面的测试还仅是针对 Red Hat 9 哩,如果您的系统是非 Red Hat 的,那么请自行依照上面的步骤安装,并且自行依据萤幕上面出现的讯息作一些修订的工作吧!整体流程是不变的,只是可能会比较麻烦一点点就是了。好了,开始来使用 jmcce 吧,请注意, jmcce 目前在终端机仅支援 640x480 256 ,如果您的终端机解析度与这个咚咚不同,那么就需要设定 grub 或者是 lilo 来设定好这样的解析度了!只要在 grub /boot/grub/menu.lst 或者是 lilo /etc/lilo.conf 新增一行:『vga=769』,然后依据管理程式 ( 如果是 lilo 的话,就得执行一次 lilo 让设定生效,如果是 grub 的话,就不需要咯 ) 动作生效后,就可以重新开机 ( reboot ) 来启动啦!在启动之后,您可以在终端机执行底下的指令来启用喔! (注: jmcce 不可以在 putty 或者是其他的非标准环境中使用!切记切记!)
 

jmcce        (程式依现行 locale 自动决定繁体模式)
jmcce -b     (手动强迫以 BIG5码繁体中文操作)
jmcce -g     (手动强迫以 GB码简体中文操作)
jmcce -d     (仅显示中文而不载入任何中文输入法,繁体模式自动)
 
CTRL-SPACE    ===> 中英切换
CTRL-ALT-0-9  ===> 输入法选择
CTRL-ALT-1    ===> 仓颉输入法
CTRL-ALT-2    ===> 简易输入法
CTRL-ALT-3    ===> 注音输入法 (Linux/CXterm 传统「零壹注音输入法」)
CTRL-ALT-4    ===> 慈安输入法 (方快科技关慈安先生提供,含三十万词汇快速输入)
CTRL-ALT-5    ===> 行列输入法
CTRL-ALT-6    ===> 英快输入法 (方快科技提供,大幅改良的英汉输入法)
CTRL-ALT-7    ===> 酷音输入法 (智慧型注音输入)
CTRL-ALT-8    ===> 日文拼音输入法 (轻松资讯提供,可用拼音输入所有假名与三万汉字词汇)
CTRL-ALT-9    ===> 无虾米输入法 (只要自备合法对照表即可加挂启动)
CTRL-ALT-0    ===> 内码输入法

 
呼呼!恭喜恭喜!成功啦!^_^!那么怎么关掉 jmcce 呢?您可以使用 ps -aux 找到 jmcce 之后,使用 kill 将他关闭即可,或者直接输入 exit 就可以了!


连不上一些网站的处理方法 MTU 修改

在网路媒体的最大传输单位中 ( Maximum Transmission Unit, MTU;针对一个封包的体积而言 ),其实是有受限制的!如果我们设定了最大传输单位超过网路媒体所能负荷的,那么除非您的作业系统本身就支援封包重新组合,否则可能会造成封包无法传递的问题。此外,因为如果封包的体积与最大传输单位无法配合,导致封包在传送的时候一再地进行重组,将会导致网路传输效能的低落喔。所以啰,我们的网路卡的 MTU 设定最好能够针对网路介面进行最佳化,这样才能让网路效能变的比较好。(注:也就是说,MTU 这个数值并不是越大越好,而是要针对您的网路介面来进行最佳化)
 
另外,如果您曾经使用 Windows 2000 作为连线分享的主机时,可能会发现在 client 端发生『总是有些网站无法顺利的连接上去!但是在主机端则没有问题!』,或者是『用户端无法浏览某些网站或是无法发送内含附件的电子邮件』,这真是伤脑筋呀!其实,发生这样的问题通常就是与 MTU 的数值不正确有关的。如何解决呢?呵呵!需要借由修改『每一个 Client 端电脑的 MTU 来修正』才行呐。一般而言,MTU 在网路卡 (EtherNet) 的预设值为 1500 单位!至于其他的介面如下:
 

网路介面

MTU

EtherNet (一般的网路介面,这也是预设值)

1500

PPPoE(ADSL用的)

1492

Dial-up(modem) 

576

 
由上面的表格我们可以知道,预设的网路介面 MTU 1500 ,那 PPPOE 使用的是 1492,自然而然的 MTU 要求并不相同,所以啦!有一些网页、邮件资料等等的咚咚就可能会因为这样而无法进行正确的传送呐。那该如何解决呢?其实只要调整 Client 端网路卡的 MTU 值即可完全解决此一问题!而且借由调整 MTU 值也可以增进网路效率呢。 那首要课题自然就是知道您的网路卡所可以负荷的 MTU 啦!因此我们第一步就是要找到适合的 MTU
 


找出 MTU 值:
 
由于 MTU Router 具有较大的关系,因此,我们通常是在 Client 端的电脑上,对我们的 Router (就是 NAT 主机,这部主机可能是 Linux 也可能是 Windows 系统喔!) 进行 MTU 数值的侦测呐。底下我们分别针对 Windows Linux 进行 MTU 数值的检测喔。(注:假设您的 Router IP 192.168.1.2 )
 

    • Windows 系统上的检测:
       

  1. 进入 MS DOS 命令提示字元当中;
     

  2. 输入『 ping -f -l <bytes> IP』如下所示:

C:/WINDOWS> ping -f -l 1500 192.168.1.2

Pinging 192.168.1.2 with 1500 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Ping statistics for 192.168.1.2:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  0ms, Average =  0ms

  1. 那个 -l L 的小写,至于 bytes 则是本机送出的封包体积, IP 则是 Gateway IP 。在上面的测试当中,当封包大小设定为 1500 时,结果出现了 Packet needs to be fragmented but DF set. 这个东西,意思是说,这个封包的体积大过于 MTU 能够接受的大小,但是由于我们下达了 -f 这个参数,所以封包没有办法重新组合,因此就发生了错误了!也就是说,如果要最佳化的话,那么 MTU 数值的设定要更小才行!OK!那么当我们使用 1464 来测试时:

C:/WINDOWS> ping -f -l 1464 192.168.1.2

Pinging 192.168.1.2 with 1464 bytes of data:

Reply from 192.168.1.2: bytes=1464 time=10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128
Reply from 192.168.1.2: bytes=1464 time<10ms TTL=128

Ping statistics for 192.168.1.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  10ms, Average =  2ms

  1. 结果出现了回应了!这表示这一个 MTU 值是可行的!不过,强烈建议找出可行的最大 MTU 值!这样一来,在设定的时候,才可以达到最佳的网路速率
     

  2. MTU 数值的计算:
    上面我们找到的数据其实是封包的体积大小,但是每个封包还都具有标头,这个标头的部分占去了 28 bytes ,所以啦,最终的 MTU 数值其实是 1464+28=1492 才对喔!

 

    • Linux 系统的检测:
       

  1. 在终端机输入『 ping -c <number> -M do -s <bytes> IP』,其中 number 是次数、<bytes>则是封包的体积。结果如下所示:

[root@test root]# ping -c 3 -M do -s 1472 192.168.1.2
PING 192.168.1.2 (192.168.1.2) from 192.168.1.13 : 1472(1500) bytes of data.
1480 bytes from 192.168.1.2: icmp_seq=0 ttl=255 time=2.408 msec
1480 bytes from 192.168.1.2: icmp_seq=1 ttl=255 time=2.392 msec
1480 bytes from 192.168.1.2: icmp_seq=2 ttl=255 time=2.440 msec
 
--- 192.168.1.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/mdev = 2.392/2.413/2.440/0.044 ms
 
[root@test root]# ping -c 3 -M do -s 1473 192.168.1.2
PING 192.168.1.2 (192.168.1.2) from 192.168.1.13 : 1473(1501) bytes of data.
ping: sendto: Message too long
ping: sendto: Message too long
ping: sendto: Message too long

--- 192.168.1.2 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss

  1. 呵呵!结果就可以发现数值为 1472 啰!其他的就如同前面提到的,MTU = 1472 + 28 = 1500 啦!
     

所以要找出 MTU 值真的是不难喔!
 


修改 MTU 值:
 
OK
!我们已经找出 MTU 值啦,那下一步自然就是修改啰!要如何修改呢?其实也是很简单,只要透过 Windows 本身预设的 registry 修改即可!至于 Linux 则以 ifconfig 来更改吧!
 


Windows 98
 

  1. 在 『开始』>『执行』中,键入<regedit>,会出现一个大框框;
     

  2. 选择:『HKEY_Local_Machine>System>CurrentControlSet>Services>Class>NetTrans>000n』上面最后一个数据是 000n,那个 n 指的是数字,以我为例,在 NetTrans 底下有两个数字,分别为 0000 0002,若按下 0000 会显示我的 Gate Way 以及我的网路卡的 IP 项目,至于 0002 则没有我的网路卡的相关资讯,所以 0000 那这一个就是我的网路卡介面啦!请依您的情况选择!
     

  3. 选择您的网路卡介面后 ( 以我为例,按一下 0000 那一个机码 ) ,按下『编辑』>『新增』,然后选择增加『DWORD』值;


 

  1. 将新增的机码取名为『MaxMTU』,并且在新增加的那个机码上面按右键,选『修改』,会出现如下画面,选择『十进位』后,输入刚刚我们找到的那一个 MTU 值:


 

  1. 改完之后您应该会看到如下的画面喔!那就是成功了!

 


Windows 2000
 

  1. 在 『开始』>『执行』中,键入<regedit>,会出现一个大框框 ( 注意,也有可能是 regedit32 这个执行档,请依您的机器来作业 )
     

  2. 选择『HKEY_Local_Machine>SYSTEM>CurrentControlSet>Services>Tcpip>Parameters>interface』,有点像下面的图示:


 

  1. interface 底下可能有很多的介面,您一个一个的去看,会有一个介面与您的网路卡的 IP 相同,那个就是您要挑选的介面啦!然后同样的在该介面上选择『编辑』>『新增』>DWORD值』之后,建立一个名为『MTU』的机码,然后选右键『修改』,选择十进位,填入我们刚刚找出来的 MTU 值!大功告成!

 


Linux
 
Linux 上面的更新要简单的多了!使用 ifconfig 加上 mtu 这个参数即可!例如:
 

[root@test root]# ifconfig eth0 mtu 1500

 
这样就成功的修订了!简单的很吧! ^_^

 
基本上,这样应该已经可以解决 MTU 无法搭配的问题了!相关的网页您可以到底下两个网页去看看!
http://www.microsoft.com/taiwan/msclub/member/TIPS/Spring_2001/tip1to3/tip1to3_2.htm
 
另外,网友有建议另一个测试 MTU 的网页,您也可以上去瞧一瞧,不过,要上这个网页之前,『请先将您的代理伺服器设定 取消』否则测到的会是您的 Proxy 而不是您的 IP 喔!
http://forums.speedguide.net:8117/


课后练习:

  • 我要增加一个路由规则,以 eth0 连接 192.168.100.100/24 这个网域,应该如何下达指令?

  • 我的网路停顿的很厉害,尤其是连接到 tw.yahoo.com 的时候,那么我应该如何检查那个环节出了问题?

  • 我发现我的 Linux 主机上面有个连线很怪异,想要将他断线,应该如何进行?

  • 您如何知道 green.ev.ncku.edu.tw 这部主机的 IP

  • 请找出您的机器上面最适当的 MTU 应该是多少?

  • 如何在终端机介面上面进行 WWW 浏览?又该如何下载 WWW 上面提供的档案?

  • 在终端机介面中,如何连接 bbs.sayya.org 这个 BBS




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章