Linux常用网络指令介绍

来源:岁月联盟 编辑:zhuzhu 时间:2007-02-10
Linux常用网络指令介绍内容简介: Linux 常用网络指令介绍


------------------------------------------------------------------------------------------------

1.

2. :

3. :

4. :

5. : /etc/sysconfig/network

------------------------------------------------------------------------------------------------


学习本章的必备技巧:

  在这一节当中,我们会提到大部分基本的 Linux 上面使用的网络功能,这里介绍的主要以 command line 的使用为基础呢!所以想要学文字接口的朋友,嘿嘿!来底下仔细看来啰!不过,需要注意的是,由于我们这里介绍的是文字接口嘛!所以你就必须要了解 BASH 这个东西啦!此外,由于需要对外联机,当然需要前面提过的几篇网络架构的内容啰!因此,你需要底下几个技巧:

· bash shell

·

·

·

  跟前面给的建议一样,要搞懂整个 Linux 的话,那么最好还是将一些 Linux 基础搞定再来谈架站!否则~嘿嘿!会死的很难看哩!看看 Linux 基础文件 吧!


------------------------------------------------------------------------------------------------

一些网络侦错指令: ping, ifconfig, ifup, ifdown, netstat, route, traceroute, host, nslookup,


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

· ping :送一个 ICMP 的封包给某部主机

· ifconfig :设定网络参数使用的指令

· ifup,ifdown:激活与关闭某个网络适配卡

· netstat :查阅网络信息的指令

· route :显示/修改路由表( route table )

· traceroute :调查连接到某部主机时,每个节点的联机速度

· host :显示主机名称( domain name )

· nslookup :调查主机名称对应的 IP !

 底下分别来谈一谈先!

· ping

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

语法:




说明:


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

o icmp:指的是 ICMP 这个协议啰!

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

· ifconfig

设定网络参数使用的指令

语法:




说明:

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

o eth0 :表示为网络卡的代号;

o lo :表示为『内部循环 IP 』的网络卡代号,请注意,这个虚拟的 interface 一定要存在!千万不要关掉他!

o HWaddr :是网络卡的硬件地址,就是我们 前面 提到的 MAC 啦!

o inet addr :就是网络卡的 IP;

o Bcast :是广播( broadcast ) 的地址;

o Mask :就是子网掩码啦;

o MTU :是 Maximum Trasmission Unit 最大传输单元(字节),即此接口一次所能传输的最大封包,也可以参考底下的 MTU 说明。

o RX :网络由激活到目前为止的接收情形;

o TX :网络由激活到目前为止的传送情形;

o collisions :网络讯号碰撞的情况说明;

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

o Interrupt :是 IRQ 中断地址;

o 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

激活与关闭某个网络适配卡

语法:




说明:

  这两个指令要比 简单的多!不过他却必须要有相关的档案存在才能激活呦!举个例子来说,上面我们要激活 eth0 这块网络卡的时候,那么你的 Linux 系统当中就必须要存在 /etc/sysconfig/network-scripts/ifcfg-eth0 这个网络适配卡的设定档案才行!同理可证!如果要激活 eth1 ,除了存在 eth1 这个实体网络卡之外,还要存在 ifcfg-eth1 才行!请确实了解呦!因为后面我们提到的一张网卡多 IP 就是用这个观念来达成的!

· netstat

查阅网络信息的指令

语法:




说明:

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

o netstat -a | more

o netstat -an | more

  一定会发现有点奇怪?怎么有的 port 会以服务名称(例如上面例子里的 pop3 ...)有的会以 port 号码来显示呢!?嘿嘿!那就是 /etc/services 以及 -n 这个参数的用途啦!你可以发现的是,如果 netstat -a 时,显示出来的 port 号码在 /etc/services 存在对应的服务名称的时候,那么预设他就会显示出该服务名称啦!但是若在 /etc/services 找不到档案的话,那么自然就还是以 port 号码来显示的!那么加上了 -n 参数后,不论如何,他都会以 port 及 IP 来显示啦!

  另外,那个 -p 也很有用呦!尤其是在一些莫名其妙的联机出现时,可以用他查到 PID ,然后再以我们之前谈到的 系统资源管理 部分,利用 kill 来杀掉他呦!

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

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

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

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

§ LISTEN :亦即监听状态中的 port !

§ ESTABLISHED:已建立联机的联机情况

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

  善用 netstat 可以查得相当多的网络信息!尤其在关闭本机的 port 时!

· route

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

语法:




说明:


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

o 显示目前主机上面的路由信息;

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

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

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

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

o 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 就事了!

o 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):这个路由将不会被接受(用来抵挡不安全的网域!)

o Iface :该设定使用的 interface 为何?

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

· traceroute

调查连接到某部主机时,每个节点的联机速度

语法:



说明:

  这个指令相当的有用途,他可以用来判断一部远程主机无法联机时候,是当在哪一个节点!因为很多时候,你常常会发现『咦!网络速度怎么变慢了?』然后自己的主机似乎没有问题呀!这个时候就可以使用这个指令查检查一下,是否在联机的过程当中,有些节点被挡下来了呢?!很好用的啦!

· host

显示主机名称( domain name )

语法:




说明:

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

激活与关闭某个网络适配卡

语法:




说明:

  这个指令就如同前面的 提到的,就是正查反查的的指令啦!也是利用 /etc/resolv.conf 的内容来查询的!

----------------------------------------------------------------------------------

远程联机使用指令:

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

telnet :用来联机远程主机,当然, BBS 主机也可以联机

ftp :远程传送资料当中,速度最快的协议之一

ncftp :登入匿名主机最好用的文字接口 FTP 软件!

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

· telnet

用来联机远程主机,当然, BBS 主机也可以联机

语法:




说明:

  除了联机到主机以进行远程操控之外, telnet 最好用的地方就是在于:

o 帮助你连接上去 BBS 查询资料;

o 帮助你测试主机端某个 端口口 的联机情况!

  以上面的例子来说,我们使用 telnet 就可以立刻连上成大资讯工程的欢迎画面!嘿嘿!很棒吧!另外,如果你要确认本机端的 110 这个埠口是否正常时,也可以使用『 telnet + IP + port 』来侦测看看呦!很好用的工具吧!

· ftp

远程传送资料当中,速度最快的协议之一

语法:





说明:

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

· ncftp

登入匿名主机最好用的文字接口 FTP 软件!

语法:






说明:

  这个指令的功能就更强大了!尤其在于使用目前网络上面允许匿名登入的 FTP 网站!例如上面提到的中山大学的 FTP 网站!

  你可以马上登入他,然后立刻联机看看,就知道如何使用他啦!很好用的啦!!

----------------------------------------------------------------------------------

文字界面网页浏览:

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

· wget-1.7-3

· lynx-2.8.4-17

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

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

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

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

· lynx

文字接口下的 WWW 浏览器

语法:






说明:

  这个指令的最大功用就是让我们在文字接口下使用这个浏览器来上 WWW 网页啦!真的相当的好用!你可以仔细的尝试使用看看!速度上面应该是蛮快的呦!lynx 是文字模式下最普遍也最好用的网页浏览器(browser),由于 lynx 只在画面上秀出文字及其链接(link)的点,透过操作简单的方向键及功能键,便能讯速的浏览网页,亦可下载档案。

  另外,在台湾地区由于我们需要使用到 Big5 的编码表,所以需要修改一下 lynx 的设定档,亦即是 /etc/lynx.cfg 这个档案,将底下的内容修改一下:



  呵呵!这样一来就可以见识到文字接口浏览器的庞大功能啰!您还可以参考一下底下的网址:



  此外,我们也可以使用 lynx 来进行『下载图标』的功能呦!例如我们要下载一个档案,则可以使用:




  呵呵呵!就样就 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 (连下图)



说明:

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



  呵呵呵!这样一来,就有 Proxy 来支持我们的 wget 下载软件啰!很棒吧

------------------------------------------------------------------------------------------------

修改主机名称: /etc/sysconfig/network, hostname,


  如果没有忘记的话,那么还记得怎样看得出目前我的主机名称呢?嘿嘿!没错!就是使用 hostname 啦!简单的很!那么万一出现的主机名称不是我所要的呢?可不可以进行修改?!当然可以啰!直接在 /etc/sysconfig/network 底下修改就可以啦!请依照底下的步骤来进行即可!