網路相關設定檔介紹2.1 /etc/hosts
包含(本網中)已知主機的一個列表。如果系統的 IP 不是動態擷取,就可以使用它。對於簡單的主機名稱解析(點分標記法),在請求 DNS 或 NIS 網路名稱伺服器之前,/etc/hosts.conf 通常會告訴解析程式先查看這裡。
檔案格式:ip地址 主機名稱 別名$ cat /etc/hosts127.0.0.1 localhost.localdomain localhost
2.2 /etc/services
Internet網路服務檔案,將網路服務名轉換為連接埠號碼/協議。由 inetd、telnet、tcpdump 和一些其它程式讀取。檔案中的每一行對應一種服務,它由4個欄位組成,中間用TAB或空格分隔,分別表示“服務名稱”、“使用連接埠”、“協議名稱”以及“別名”。
檔案格式:服務 連接埠/連接埠類型 別名$ cat /etc/services |moretcpmux 1/tcp # TCP port service multiplexerecho 7/tcpecho 7/udpdiscard 9/tcp sink nulldiscard 9/udp sink nullsystat 11/tcp usersdaytime 13/tcpdaytime 13/udpnetstat 15/tcpqotd 17/tcp quotemsp 18/tcp # message send protocol
2.3 /etc/hostname
主機名稱設定檔,該檔案只有一行,記錄著原生主機名稱。
檔案格式:
主機名稱$ cat /etc/hostname tonybox
2.4 /etc/host.conf
當系統中同時存在DNS網域名稱解析和/etc/hosts主機表機制時,由該/etc/host.conf確定主機名稱解釋順序。樣本:
order hosts,bind #名稱解釋順序multi on #允許主機擁有多個IP地址nospoof on #禁止IP地址欺騙
order是關鍵字,定義先用本機hosts主機表進行名稱解釋,如果不能解釋,再搜尋bind名稱伺服器(DNS)。
2.5 /etc/nsswitch.conf
名稱服務交換設定檔。它控制了資料庫搜尋的工作,包括承認的 主機,使用者,群組等。此外,這個檔案還定義了所要搜尋的 資料庫,例如此行:
hosts: files dns
指明主機資料庫來自兩個地方,files ( /etc/hosts file) 和 DNS, 並且本機上檔案優先於 DNS。
$ cat /etc/nsswitch.conf passwd: compatgroup: compatshadow: compathosts: files dnsnetworks: filesprotocols: db filesservices: db filesethers: db filesrpc: db filesnetgroup: nis
2.6 /etc/resolv.conf
該檔案是DNS網域名稱解析的設定檔,它的格式很簡單,每行以一個關鍵字開頭,後接配置參數。resolv.conf的關鍵字主要有四個,分別是:
nameserver #定義DNS伺服器的IP地址domain #定義本地區名search #定義網域名稱的搜尋列表sortlist #對返回的網域名稱進行排序
下邊是一個樣本:
#cat /etc/resolv.confdomain mydebian.comnameserver 192.168.1.1 //最多三個網域名稱伺服器地址
2.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
3. 基本的網路設定命令和指令碼3.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
3.2 /etc/init.d/networking
系統啟動時的初始化指令碼, 當系統以某個層級啟動時, 它負責初始化所有的已配置的網路介面.
3.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
4. 網路服務相關5. 測試網路5.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:~$
5.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" 進行。這是用於帶組播的核心正確的配置行。
5.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
6. 配置ADSL上網
首先,你要擁有上網帳號和密碼, 並且有一塊網卡正確的與ADSL moden正確相連
6.1 安裝PPPoE軟體包
$ sudo install pppoe pppoeconf
6.2 然後進行配置
確認檢測到了您的網卡 輸入您的ADSL帳號 輸入您的ADSL帳號密碼 常規選項:是否修改預設路由: yes 是否擷取DNS: yes 是否在引導時自動連接: yes 是否馬上建立串連: yes
完成這些步驟以後, 串連應該可以正常使用了
6.3 手動控制
$ sudo pon dsl-provider #手動串連 $ sudo poff dsl-provider #手動中斷連線
6.4 FAQ
Q:撥號成功, 但無法和外網通訊
A:使用route命令檢查本地路由, 看預設路由是否正確
Q:無法解析網域名稱
A:檢查/etc/resolv.conf檔案,看是否正確擷取了DNS