jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          導航

          公告

          這里是我記錄學習與成長的地方,文章大多摘自網絡,如有不妥,作者可以跟我聯系,我會盡快刪除。
          <2010年6月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(10)

          隨筆分類(920)

          隨筆檔案(724)

          收藏夾(15)

          Ajax

          JS

          VC++

          WLAN

          版本管理

          網管軟件

          項目管理

          高手成長

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          linux 網絡相關配置

          Posted on 2010-06-13 09:37 幻海藍夢 閱讀(251) 評論(0)  編輯  收藏 所屬分類: Linux
          http://hi.baidu.com/215317196/blog/item/0bdb4ec30b41be52b219a803.html

          1. 網絡相關配置文件介紹

          1.1 /etc/hosts

          包含(本地網絡中)已知主機的一個列表。如果系統的 IP 不是動態獲取,就可以使用它。對于簡單的主機名解析(點分表示法),在請求 DNS 或 NIS 網絡名稱服務器之前,/etc/host.conf 通常會告訴解析程序先查看這里。

          文件格式:
          ip地址 主機名 別名

          $ cat /etc/hosts

          127.0.0.1 localhost.localdomain localhost

          1.2 /etc/services

          Internet網絡服務文件,將網絡服務名轉換為端口號/協議。由 inetd、telnet、tcpdump 和一些其它程序讀取。文件中的每一行對應一種服務,它由4個字段組成,中間用TAB或空格分隔,分別表示“服務名稱”、“使用端口”、“協議名稱”以及 “別名”。

          文件格式:
          服務 端口/端口類型 別名

          $ cat /etc/services |more

          tcpmux 1/tcp # TCP port service multiplexer
          echo 7/tcp
          echo 7/udp
          discard 9/tcp sink null
          discard 9/udp sink null
          systat 11/tcp users
          daytime 13/tcp
          daytime 13/udp
          netstat 15/tcp
          qotd 17/tcp quote
          msp 18/tcp # message send protocol

          1.3 /etc/hostname

          主機名配置文件,該文件只有一行,記錄著本機的主機名。

          文件格式:

          主機名
          $ cat /etc/hostname
          tonybox

          1.4 /etc/host.conf

          當系統中同時存在DNS域名解析和/etc/hosts主機表機制時,由該/etc/host.conf確定主機名解釋順序。示例:

          order hosts,bind    #名稱解釋順序
          multi on #允許主機擁有多個IP地址
          nospoof on #禁止IP地址欺騙

          order是關鍵字,定義先用本機hosts主機表進行名稱解釋,如果不能解釋,再搜索bind名稱服務器(DNS)。

          1.5 /etc/nsswitch.conf

          名稱服務交換設定檔。它控制了數據庫搜尋的工作,包括承認的 主機,使用者,群組等。此外,這個檔案還定義了所要搜尋的 數據庫,例如此行:

          hosts: files dns

          指明主機數據庫來自兩個地方,files ( /etc/hosts file) 和 DNS, 并且本機上檔案優先于 DNS。

          $ cat /etc/nsswitch.conf 

          passwd: compat
          group: compat
          shadow: compat

          hosts: files dns
          networks: files

          protocols: db files
          services: db files
          ethers: db files
          rpc: db files

          netgroup: nis

          1.6 /etc/resolv.conf

          該文件是DNS域名解析的配置文件,它的格式很簡單,每行以一個關鍵字開頭,后接配置參數。resolv.conf的關鍵字主要有四個,分別是:

          nameserver   #定義DNS服務器的IP地址
          domain #定義本地域名
          search #定義域名的搜索列表
          sortlist #對返回的域名進行排序

          下邊是一個示例:

          #cat /etc/resolv.conf
          domain mydebian.com
          nameserver 192.168.1.1 //最多三個域名服務器地址

          1.7 /etc/network/interfaces

          網絡接口參數配置文件, 下面是一個配置示例, 有兩個網絡接口, 其中eth0 分配靜態IP地址, eth1動態獲取IP地址 :

          # This file describes the network interfaces available on your system
          # and how to activate them. For more information, see interfaces(5).

          # The loopback network interface
          auto lo
          iface lo inet loopback

          # The primary network interface
          auto eth0
          iface eth0 inet static
          address 192.168.1.254
          network 192.168.1.0
          netmask 255.255.255.0
          broadcast 192.168.1.255
          gateway 192.168.1.1

          auto eth1
          iface eth1 inet dhcp

          如果對此文件進行修改, 需要重啟網絡方能生效:

          # /etc/init.d/networking restart

          2. 基本的網絡配置命令和腳本

          2.1 etherconf

          Debian 下提供一個名叫 etherconf軟件包, 用于配置網絡信息,這包括主機名,IP,DHCP,DNS,GATEWAY,NETMASK...等, 默認沒有安裝這一軟件包, 需要您手動安裝:

          # aptitude install etherconf

          安裝完畢后運行:

          $dpkg-reconfigure etherconf

          進行配置.

          這個軟件會修改以下配置文件:

          /etc/resolv.conf
          /etc/network/interfaces
          /etc/hosts
          /etc/hostname

          重復使用這一配置文件的方法是:

          # dpkg-reconfigure etherconf

          2.2 /etc/init.d/networking

          系統啟動時的初始化腳本, 當系統以某個級別啟動時, 它負責初始化所有的已配置的網絡接口.

          2.3 ifconfig

          用于配置常駐內核的網絡接口。它用于在引導成功時設定網絡接口。此后,只在需要調試及系統調整時才使用。

          命令格式:
          ifconfig [接口]
          ifconfig 接口 [aftype] options | address ...

          如沒有給出參數, ifconfig 顯示當前有效接口的狀態。如給定單個 接口 作為參數,它只顯示給出的那個接口的狀態;如果給出一個 -a 參數,它會顯示所有接口的狀態,包括那些停用的接口。否則就對一個接口進行配置。

          選項
          接口 接口名稱。通常是一個后跟單元號的驅動設備名,例如第一個以太接口 eth0 。

          up
          此選項激活接口。如果給接口聲明了地址,等于隱含聲明了這個選項。
          down
          此選項使接口驅動設備關閉。

          netmask addr
          為接口設定 IP 網絡掩碼。缺省值通常是 A,B 或 C 類的網絡掩碼 (由接口的 IP 地址推出),但也可設為其它值。
          add addr/prefixlen
          為接口加入一個 IPv6 地址。
          del addr/prefixlen
          為接口刪除一個 IPv6 地址。
          hw class address
          如接口驅動程序支持,則設定接口的硬件地址。此選項必須后跟硬件的類型名稱和硬件地址等價的可打印 ASCII 字符。當前支持的硬件類型包括 ether (以太網), ax25 (AMPR AX.25), ARCnet 和 netrom (AMPR NET/ROM)

            利用ifconfig命令查看網絡信息:

          ifconfig
          eth0 Link encap:Ethernet HWaddr 00:15:58:3E:F2:6B
          inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0
          inet6 addr: fe80::215:58ff:fe3e:f26b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:29458 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23690 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10945195 (10.4 MiB) TX bytes:2935004 (2.7 MiB)
          Interrupt:169 Base address:0xe200

          eth0:0 Link encap:Ethernet HWaddr 00:15:58:3E:F2:6B
          inet addr:192.168.1.244 Bcast:192.168.1.255 Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          Interrupt:169 Base address:0xe200

          lo Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:354 errors:0 dropped:0 overruns:0 frame:0
          TX packets:354 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:45062 (44.0 KiB) TX bytes:45062 (44.0 KiB)

          ppp0 Link encap:Point-to-Point Protocol
          inet addr:18.18.18.13 P-t-P:18.18.18.1 Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
          RX packets:9631 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9189 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:8460352 (8.0 MiB) TX bytes:913898 (892.4 KiB)

          ifconfig的第一種格式(或使用不帶任何參數的ifconfig命令)可以用來查看當前系統的網絡配置情況。

          * eth0 : 表示網卡代號
          * lo :Linux內部的網絡回環地址, 用于模擬網絡行為,
          * HWaddr :網卡的硬件地址,也就是MAC地址
          * inet addr :網卡的ip地址
          * Bcast :廣播地址( broadcast ) ;
          * Mask :子網掩碼;
          * MTU :最大傳輸單元的縮寫(Maximum Trasmission Unit), 標示此網絡接口的可傳輸的最大封包, 此值的設定錯誤可能引起網絡故障.
          * RX :網絡從起動到現在為止數據的接收情況
          * TX :網絡從起動到現在為止數據的發送情況
          * collisions :網絡信號發生沖突的情況;

          激活網絡設備

          ifconfig eth0 up

          更改網絡設備信息

          #ifconfig eth0 192.168.1.112 netmask 255.255.255.0

          關閉網絡設備

          ifconfig eth0 down

          修改網卡的MAC地址

          ifconfig eth0 down
          ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
          ifconfig eth0 up

          3. 網絡服務相關

          4. 測試網絡

          4.1 ping

          向網絡主機發送ICMP回顯請求(ECHO_REQUEST)分組 程序使用 ICMP 協議的強制回顯請求數據報以使主機或網關發送一份 ICMP 的回顯應答。回顯請求數據報(`` pings IP 及 ICMP 的報頭,后跟一個``時間值關鍵字''然后是一段任意長度的填充字節用于把保持分組長度為16的整數倍。以下是程序的選項:

          ping  [-c count ] [-i wait ] [-p pattern ] [-s packetsize ] [ -t ttl]   destination

          -c
          count 在發送(和接收)了正好數量為 count 的回顯應答分組后停止操作。
          -i
          wait 在發送每個分組時等待 wait 個秒數。缺省值為每個分組等待一秒。此選項與-f選項不能同時使用。

          -p
          pattern 可以指定最多16個填充字節用于保持分組長度為16的整數倍。在網絡上診斷與數據相關問題時此選項很有用。例如``-p ff''將使發出的分組都用全1填充數據區。

          -s
          packetsize 指定要發送數據的字節量。缺省值為 56 ,這正好在添加了 8 字節的 ICMP 首部后組裝成 64 字節的 ICMP 數據報。

          -t

          ttl指存活數值TTL的大小默認為255

          tony@tonybox:~$ ping www.linuxsir.org -c 4
          PING www.linuxsir.org (218.61.34.138) 56(84) bytes of data.
          64 bytes from 218.61.34.138: icmp_seq=1 ttl=52 time=103 ms
          64 bytes from 218.61.34.138: icmp_seq=2 ttl=52 time=125 ms
          64 bytes from 218.61.34.138: icmp_seq=3 ttl=52 time=126 ms
          64 bytes from 218.61.34.138: icmp_seq=4 ttl=52 time=110 ms

          --- www.linuxsir.org ping statistics ---
          4 packets transmitted, 4 received, 0% packet loss, time 3003ms
          rtt min/avg/max/mdev = 103.513/116.329/126.598/9.856 ms
          tony@tonybox:~$

          4.2 route

          Route route 程序對內核的 IP 路由表進行操作。它主要用于給那些已經用 ifconfig(8) 程序配置過的接口指定主機或網絡設置靜態路由。

          當使用了 add 或 del 選項的時候, route 修改路由表.如果沒有這些選項, route 顯示當前路由表的內容.

          # route [-nee]
          # route add [-net|-host] 目標主機或網絡 [netmask] [gw|dev]
          # route del [-net|-host] 目標主機或網絡 [netmask] [gw|dev]

          -n   :數字地址形式代替解釋主機名形式來顯示地址。此項對檢測為何你到域名服務器的路由發生故障的原因非常有用。
          -ee   :將產生包括選路表所有參數在內的大量信息
          add   :添加一條路由
          del   :刪除一條路由
          -net  :路由目標 target 為網絡。
          -host  :路由目標 target 為主機。
          netmask :為添加的路由指定網絡掩碼!
          gw    :通過一個網關進行包路由.

          注意:

          指定的網關首先必須是可達的。也就是說必須為該網關預先指定一條靜態路由。如果你為本地接口之一指定這個網關地址的話,那么此網關地址將用于決定此 接口上的分組將如何進行路由。這是兼容 BSD 風格。 dev   :強制路由與指定的設備關聯,否則內核自己會試圖檢測相應的設備 (方法是檢查要增加的路由項所處環境中已存在的路由和設備聲明)。在多數正常的網絡上無需使用。

          # route  查看本地路由信息
          tonybox:/etc/network/run# route
          Kernel IP routing table
          Destination Gateway Genmask Flags Metric Ref Use Iface
          18.18.18.1 * 255.255.255.255 UH 0 0 0 ppp0
          192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
          default * 0.0.0.0 U 0 0 0 ppp0

          route add -net 127.0.0.0
          加一條普通的回環記錄,它使用掩碼 255.0.0.0 (從目標地址可以判斷它是 A 類網)并與設備 "lo" 相關聯 .

          route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
          給通過 "eth0" 的路由表添加一條指向網絡 192.56.76.x 的路由。其中 C 類子網掩碼修飾詞并不是必須的,因為 192.* 是個 C 類的 IP 地址。這里可省略關鍵字 "dev"。

          route add default gw 192.168.1.1
          加入一條缺省路由(如果無法匹配其它路由則用它)。使用此路由的所有包都將通過網關 192.168.1.1進行傳輸。

          route add 224.0.0.0 netmask 240.0.0.0 dev eth0
          這是一條模糊的命令,把它記錄在案就可以讓人們知道如何做了.此命令設定所有 D 類地址(用于組播)的路由通過 "eth0" 進行。這是用于帶組播的內核正確的配置行。

          4.3 traceroute

          traceroute [ -dFIlnrvx ] [ -f first_ttl ] [ -g gateway ]
          [ -i iface ] [ -m max_ttl ] [ -p port ]
          [ -q nqueries ] [ -s src_addr ] [ -t tos ]
          [ -w waittime ] [ -z pausemsecs ]
          host [ packetlen ]

          通過Traceroute我們可以知道信息從你的計算機到互聯網另一端的主機是走的什么路徑。當然每次數據包由某一同樣的出發點(source)到 達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。UNIX系統中,我們稱之為 Traceroute,MS Windows中為Tracert。 Traceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多長時間。一條路徑上的每個設備Traceroute要測3次。輸出結果中包 括每次測試的時間(ms)和設備的名稱(如有的話)及其IP地址。

          -d
          指定不對計算機名解析地址。
          -h maximum_hops
          指定查找目標的跳轉的最大數目。
          -jcomputer-list
          指定在 computer-list 中松散源路由。
          -w timeout
          等待由 timeout 對每個應答指定的毫秒數。
          host
          目標計算機的名稱。

          # traceroute www.linuxsir.org
          traceroute to www.linuxsir.org (218.61.34.138), 30 hops max, 40 byte packets

          5. 配置ADSL上網

          首先,你要擁有上網帳號和密碼, 并且有一塊網卡正確的與ADSL moden正確相連

          5.1 安裝PPPoE軟件包

          $ apt-get install pppoe pppoeconf

          5.2 然后進行配置

          確認檢測到了您的網卡
          輸入您的ADSL帳號
          輸入您的ADSL帳號密碼
          常規選項:是否修改默認路由: yes
          是否獲取DNS: yes
          是否在引導時自動連接: yes
          是否馬上建立連接: yes

          完成這些步驟以后, 連接應該可以正常使用了

          5.3 手動控制

          $ pon dsl-provider #手動連接 
          $ poff dsl-provider #手動斷開連接

          5.4 FAQ

          Q:撥號成功, 但無法和外網通訊

          A:使用route命令檢查本地路由, 看默認路由是否正確

          Q:無法解析域名

          A:檢查/etc/resolv.conf文件,看是否正確獲取了DNS


          主站蜘蛛池模板: 镶黄旗| 湛江市| 若尔盖县| 兴义市| 龙山县| 新宾| 长垣县| 乌拉特前旗| 方山县| 潍坊市| 石河子市| 固安县| 海城市| 五河县| 开平市| 平阳县| 南阳市| 平阴县| 佳木斯市| 左云县| 蓬安县| 安溪县| 苏尼特左旗| 关岭| 贞丰县| 铁岭市| 和静县| 合江县| 龙江县| 民勤县| 祁东县| 江源县| 道孚县| 栾城县| 靖西县| 萨嘎县| 庐江县| 兴国县| 莒南县| 广水市| 攀枝花市|