2003 年 3 月 01 日
IBM 電子商務(wù)
架構(gòu)師 Chris Walden 將通過他在 developerWorks 上發(fā)表的九篇系列文章來指導(dǎo)您如何在
Linux環(huán)境中運用您的
Windows 操作技巧。本部分將探討網(wǎng)絡(luò),這是 Linux 做得最好的方面之一。
在如今這個時代,運行一臺沒有連接到網(wǎng)絡(luò)的計算機幾乎是難以想像的。電子郵件、Web 瀏覽和文件共享像打印和查看屏幕上的信息一樣,都是用戶所期待的。
幸運的是,Liunx 從一開始就是為網(wǎng)絡(luò)而開發(fā)的。事實上,網(wǎng)絡(luò)是 Linux 做得最好的事情之一。Linux 支持諸如TCP/IP 和 SMB(NetBIOS)等流行的網(wǎng)絡(luò)協(xié)議。Linux 還具有用于監(jiān)控和過濾網(wǎng)絡(luò)流量的成熟工具。諸如 FTP、Windows 文件和打印共享以及 Web 托管等服務(wù)也是可用的。Linux 甚至還提供了用于集中目錄服務(wù)、
虛擬專用網(wǎng)(VPN)和遠程過程調(diào)用的工具。
Linux 能夠使用具有驅(qū)動程序的任何網(wǎng)絡(luò)硬件。Linux 驅(qū)動程序單獨地或以可加載模塊的形式編譯到內(nèi)核中。Linux 內(nèi)核默認支持許多流行的網(wǎng)卡。在選擇網(wǎng)絡(luò)硬件時,最好總是使用“硬件兼容性列表”(參見
參考資料中的鏈接)中列出的設(shè)備。另外還要使用最新的 Linux
發(fā)行版本。
一般情況下,如果使用的是兼容的網(wǎng)絡(luò)硬件,
安裝系統(tǒng)時網(wǎng)卡會
自動得到識別??梢允褂?ifconfig 命令來檢查系統(tǒng)上的網(wǎng)絡(luò)硬件。默認情況下, ifconfig 顯示活動的網(wǎng)絡(luò)設(shè)備。給這個命令添加一個 -a 開關(guān)就能看到所有設(shè)備。
refname: ifconfig-a
[root@cmw-t30 root]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:09:6B:60:8B:1E
inet addr:9.41.209.160 Bcast:9.41.209.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:47255 errors:0 dropped:0 overruns:0 frame:0
TX packets:32949 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:22140365 (21.1 Mb) TX bytes:13519623 (12.8 Mb)
Interrupt:11 Base address:0xf000
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:1308081 errors:0 dropped:0 overruns:0 frame:0
TX packets:1308081 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:183376967 (174.8 Mb) TX bytes:183376967 (174.8 Mb)
在上面的清單中,系統(tǒng)中只有一塊網(wǎng)卡,標(biāo)識為 eth0。 lo 適配器是一個回環(huán)(lookback),由 Linux 用來與它自身通信。后面還會進一步討論 ifconfig 命令。
Linux 網(wǎng)絡(luò)設(shè)備在配置時被賦予別名,該別名由一個描述性的縮略詞和一個編號組成。某種類型的第一個設(shè)備的編號為 0,
其他設(shè)備依次被編號為 1、2、3,等等。在給設(shè)備命名時將使用下面的約定。本信息摘自 Linux Network Administrator‘s Guide(參見本文結(jié)尾處
參考資料 中的鏈接)。
eth0, eth1 ...
這些是以太網(wǎng)卡接口。它們用于大多數(shù)的以太網(wǎng)卡,包括許多并行端口以太網(wǎng)卡。 tr0, tr1 ...
這些是令牌環(huán)網(wǎng)卡接口。它們用于大多數(shù)的令牌環(huán)網(wǎng)卡,包括非 IBM 生產(chǎn)的網(wǎng)卡。 s10, s11 ...
這些是 SLIP 接口 。SLIP 接口與串行線關(guān)聯(lián),關(guān)聯(lián)順序就是它們被分配給 SLIP 的順序。 ppp0, ppp1 ...
這些是 PPP 接口。就像 SLIP 接口一樣,PPP 接口一旦被轉(zhuǎn)換到 PPP 模式,它就與串行線關(guān)聯(lián)。 plip0. plip1 ...
這些是 PLIP 接口。PLIP 接口通過并行線
傳輸 IP 數(shù)據(jù)報。這些接口在系統(tǒng)啟動時由 PLIP 驅(qū)動程序分配,并被映射到并行端口。在 2.0.x內(nèi)核中,設(shè)備名稱和并行端口的 I/O 端口之間存在直接的關(guān)系,但是在更新版本的內(nèi)核中,設(shè)備名稱是順序分配的,就像 SLIP 和 PPP 設(shè)備一樣。 ax0, ax1 ...
這些是 AX.25 接口。AX.25 是業(yè)余無線電操作人員使用的主要協(xié)議。AX.25 接口的分配和映射方式與 SLIP 設(shè)備類似。
還有其他許多可用于其他網(wǎng)絡(luò)驅(qū)動程序的接口類型。我們僅列出了一些最常見的。
既然以太網(wǎng)是最常見的配置,下面就重點來討論它。欲了解關(guān)于其他種類的連接的更多信息,請參見本文結(jié)尾處的
參考資料。
回頁首在安裝 Linux 發(fā)行版本時,就得配置網(wǎng)絡(luò)。您或許已經(jīng)有一個來自初始配置的活動 eth0。這個配置對于當(dāng)前的使用也許足夠,但是您可能需要隨著時間的推移做出更改。下面將介紹與 IP 網(wǎng)絡(luò)相關(guān)的不同配置項,以及用于使用這些配置項的文件和工具。
Webmin 在 Networking 下的 Network Configuration 中提供一組優(yōu)秀的網(wǎng)絡(luò)配置工具。您可以配置單獨的接口并調(diào)整它們的當(dāng)前設(shè)置或已保存的設(shè)置。還可以配置路由和網(wǎng)關(guān)、DNS
客戶端設(shè)置以及本地主機地址。在編輯好所有的配置之后,可以單擊 Apply Configuration來應(yīng)用它們,不必重新啟動系統(tǒng)。
本地主機地址包含在/etc/hosts 中。這個文件和 C:\winnt\system32\drivers\etc\hosts 文件等價。其中的條目顯示 IP 地址的別名,用于在不必查詢 DNS 的情況下指派名稱。
127.0.0.1 localhost.localdomain localhost
10.10.10.10 cmw-t30
每個發(fā)行版本都有它自己用于配置網(wǎng)絡(luò)設(shè)置的工具。 應(yīng)該參考特定發(fā)行版本的文檔來確定要使用的工具。每種工具提供與 Webmin 工具基本上相同的配置選項。其中有些版本可能提供特定于該發(fā)行版本的選項。
手動配置也是可能的,不過這是一個非常深奧的主題。請參考您的發(fā)行版本文檔和本文結(jié)尾處的
參考資料,以了解關(guān)于手動網(wǎng)絡(luò)配置的更多信息。
回頁首Linux 附帶了許多工具來監(jiān)控網(wǎng)絡(luò)任務(wù)。
ifconfig
我們在上面使用過 ifconfig 命令來查看以太網(wǎng)卡的狀態(tài)。然而, ifconfig 還可以配置設(shè)備并報告關(guān)于設(shè)備的情況。假設(shè)您要建立一個臨時的網(wǎng)絡(luò)配置以供測試。您可以使用發(fā)行版本中的工具來編輯配置,但是需要注意在完成測試之后,將所有設(shè)置恢復(fù)回去。通過使用 ifconfig ,我們無需影響已保存的設(shè)置,就能夠快速地配置網(wǎng)卡:
ipconfig eth0 192.168.13.13 netmask 255.255.255.0 up
上面這條命令使用一個 C 類 IP 地址將 eth0 設(shè)置到地址 192.168.13.13,并確保它正常運行。
ipconfig eth0 down
上面這條命令將關(guān)閉 eth0 設(shè)備。關(guān)于使用 ifconfig 的完整細節(jié),請參見 info ifconfig 頁面。
ifup/ifdown
要使用已保存的配置來激活和禁用網(wǎng)絡(luò)設(shè)備,請分別使用 ifup 和 ifdown 。
# Bring up eth0 using the saved configuration
ifup eth0
# Shut down eth0
ifdown eth0
netstat
使用 netstat 控制臺命令來輸出網(wǎng)絡(luò)連接、路由表、接口統(tǒng)計、偽裝連接和組播成員。 netstat 具有多個命令行開關(guān)來控制其功能。下面是其中一些常用的開關(guān):
netstat -p 顯示每個套接字所屬的程序的 PID 或名稱
netstat -a 同時顯示偵聽和非偵聽套接字
netstat -t 顯示 TCP 連接
netstat -u 顯示 UDP 連接
netstat -e 顯示附加信息;使用這個選項兩次,可以獲得最詳細的信息
下面是 netstat -tp 的一個例子:
[root@cmw-t30 root]# netstat -tp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
tcp 0 0 localhost.localdo:29000 *:* LISTEN
2389/attvpnctl
tcp 0 0 *:10000 *:* LISTEN
5945/perl
tcp 0 0 *:x11 *:* LISTEN
1120/X
tcp 0 0 *:ftp *:* LISTEN
724/xinetd
tcp 0 0 *:ssh *:* LISTEN
710/sshd
tcp 0 0 *:ipp *:* LISTEN
797/cupsd
tcp 0 0 *:505 *:* LISTEN
1043/rcd
tcp 0 0 localhost.localdoma:ipp localhost.localdo:32772 ESTABLISHED
797/cupsd
tcp 0 0 sig-9-65-39-140.m:44916 sdoprods2.austin.i:1352 TIME_WAIT
-
tcp 0 0 10.100.100.101:33020 64.12.29.100:5190 ESTABLISHED
1433/gaim
tcp 0 0 localhost.localdo:44954 localhost.localdoma:ipp TIME_WAIT
-
tcp 0 0 localhost.localdo:44955 localhost.localdoma:ipp TIME_WAIT
-
tcp 0 0 localhost.localdo:44897 localhost.localdoma:ipp TIME_WAIT
-
tcp 0 0 localhost.localdo:44902 localhost.localdoma:ipp TIME_WAIT
-
tcp 0 0 localhost.localdo:44903 localhost.localdoma:ipp TIME_WAIT
-
tcp 0 0 localhost.localdo:44900 localhost.localdoma:ipp TIME_WAIT
-
tcp 0 0 localhost.localdo:44901 localhost.localdoma:ipp TIME_WAIT
-
tcp 0 0 10.100.100.101:44888 cs9336-61.austin.r:pop3 TIME_WAIT
-
tcp 0 0 localhost.localdo:32772 localhost.localdoma:ipp ESTABLISHED
1246/gnome-cups-man
tcp 1 0 localhost.localdo:32774 localhost.localdoma:ipp CLOSE_WAIT
1246/gnome-cups-man
tcp 0 0 10.100.100.101:33019 cs46.msg.sc5.yahoo:5050 ESTABLISHED
1433/gaim
tcp 0 0 sig-9-65-39-140.m:35061 d03nm119.boulder.i:1352 CLOSE_WAIT
1720/wineserver
tcp 0 0 10.100.100.101:33021 64.12.30.4:5190 ESTABLISHED
1433/gaim
我最常使用 netstat 命令來查看處于 LISTEN 或 ESTABLISHED 狀態(tài)的連接。LISTEN 是系統(tǒng)上的服務(wù),它接受來自其他機器的連接。ESTABLISHED 是您的機器和其他機器之間的活動連接。請確保您知道正在運行的所有 LISTEN 程序。如果看到某些無法識別的內(nèi)容,它可能就是一個安全顧慮。 netstat 具有許多選項。請在命令行鍵入 info netstat 來獲得該命令的細節(jié)。
route
route 控制臺命令允許您顯示和操作 IP 路由表。
[root@cmw-t30 plugins]# route|grep -v ipsec
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
204.146.24.42 10.100.100.1 255.255.255.255 UGH 0 0 0 eth1
10.100.100.0 * 255.255.255.0 U 0 0 0 eth1
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.100.100.1 0.0.0.0 UG 0 0 0 eth1
不帶命令行開關(guān)運行 route 將顯示當(dāng)前路由表??梢允褂?route 對該路由表進行非常精細的修改。
route add default gw 10.10.10.1
上面的命令添加一個默認的路由(它將在沒有其他路由匹配的情況下被使用)。使用這個路由的所有分組都將途經(jīng)網(wǎng)關(guān)“10.10.10.1”。實際將用于該路由的設(shè)備取決于我們?nèi)绾蔚竭_“10.10.10.1”——到“10.10.10.1”的靜態(tài)路由必須預(yù)先設(shè)置好。
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
上面的命令添加一個通過“eth0”到網(wǎng)絡(luò) 192.56.76.x 的路由。這里的 C 類網(wǎng)絡(luò)掩碼修飾符實際上并不是必需的,因為 192.* 就是一個 C 類 IP 地址。這里的單詞“dev”也可以省略。
路由選擇是一個非常深奧的主題。關(guān)于 route 選項的完整信息可通過 info route 命令獲得。
回頁首Linux 從一開始就是為網(wǎng)絡(luò)而設(shè)計的。它內(nèi)置了以前僅在高端企業(yè)產(chǎn)品中才可見到的成熟功能。然而,盡管擁有所有這些強大的能力,Linux 網(wǎng)絡(luò)的配置卻遠沒有 Windows 網(wǎng)絡(luò)的配置復(fù)雜。諸如 Webmin、redhat-config-network 和 YAST這樣的工具允許執(zhí)行圖形化的配置。諸如 ifconfig 和 route 這樣的工具允許通過控制臺或腳本查看和修改網(wǎng)絡(luò)參數(shù)。諸如 netstat 這樣的工具允許查看單獨的網(wǎng)絡(luò)連接,并顯示它們與運行著的進程的關(guān)系。
您可以參閱本文在 developerWorks 全球站點上的
英文原文.
閱讀
Windows 到 Linux 之旅系列文章的其他部分( developerWorks, 2003 年 11 月)。
在線的
Linux Network Administrator‘s Guide, Second Edition 是在 Liunx 環(huán)境中進行網(wǎng)絡(luò)管理的通用參考指南。初學(xué)者和有經(jīng)驗的用戶,都能夠從中找到關(guān)于幾乎每個重要管理活動的信息,這些活動是管理 Linux 網(wǎng)絡(luò)配置所必需的。
Linux Ethernet HOWTO包含了關(guān)于哪些以太網(wǎng)設(shè)備可用于 Linux,以及如何設(shè)置它們的信息(重點放在硬件和以太網(wǎng)卡的低級驅(qū)動程序方面)。
“Linux 文檔計劃”也有一個
分類 HOWTO 列表,幫助您容易地查找相關(guān)文檔。
“硬件控制列表”包括
Red Hat 硬件搜索頁面、
SuSE Linux 組件數(shù)據(jù)庫和
UnitedLinux 認證和兼容的硬件。
在 IBM developerWorks教程“
LPI certification 102 exam prep, Part 3: Networking”中,您會找到關(guān)于網(wǎng)絡(luò)基礎(chǔ)的更多信息。
IBM developerWorks教程“
LPI certification 102 exam prep, Part 4: Secure shell and file sharing”介紹了文件共享和安全。
系統(tǒng)安全是一個廣博而復(fù)雜的主題,但是在互連的世界中,它影響著每個人。幸運的是,現(xiàn)在開始著手加強系統(tǒng)安全還不算太早也不算太遲。文檔
Adding Security to Common Linux Distributions和
Strategies for Keeping a Secure Server(這是前面提到過的 Linux Administration Made Easyguide 一書的第 12 章 )將幫助您加強系統(tǒng)安全。
IBM developerWorks文章“
Linux 硬件穩(wěn)定性指南”展示了如何診斷和修復(fù)許多潛在的硬件問題。
在 IBM developerWorks文章“
在 Linux(或異構(gòu))網(wǎng)絡(luò)上共享計算機”中學(xué)習(xí)更多關(guān)于網(wǎng)絡(luò)的知識。
遵循 IBM developerWorks文章“
在 Linux 上構(gòu)建網(wǎng)絡(luò)路由器”的指導(dǎo)來模擬 Cisco 路由器的行為。
采用更好的安全性 —— IBM developerWorks文章“
使用 ssh 進行安全的連接”展示了如何實現(xiàn)這一點。
對那些從 Windows 轉(zhuǎn)向 Linux 的讀者來說,另一個重要的參考資料是
Linux 用戶技術(shù) FAQ。
要開始在 Linux 上使用 IBM 的
軟件產(chǎn)品,
為您的 Linux 應(yīng)用開發(fā)加油提速 將為您提供最好的參考資料。您可以找到關(guān)于 DB2、Lotus Domino、WebSphere Application Server、WebSphere Studio 等多種應(yīng)用軟件的安裝提示和參考資料。您還可以登錄獲得免費的 Linux Software Evaluation Kit,里面有試用軟件和培訓(xùn)資料。
在 developerWorksLinux 專區(qū)可以找到更多
為 Linux 開發(fā)者準(zhǔn)備的參考資料。
Chris Walden 是位于德克薩斯州奧斯汀的 IBM Developer Relations Technical Consulting(也稱為
dragonslayers )的一名電子商務(wù)架構(gòu)師,該公司為 IBM 商業(yè)伙伴提供教育、實現(xiàn)和咨詢。他致力于 Linux 相關(guān)工作,一有機會就向身邊的人宣傳 Linux 的種種好處。除了完成他的架構(gòu)師的職責(zé)之外,他還精通Linux 基礎(chǔ)設(shè)施服務(wù)器的各個領(lǐng)域,包括混合平臺用戶環(huán)境下的文件、打印以及其他應(yīng)用服務(wù)等。Chris 有 10 年的計算機行業(yè)經(jīng)驗,從現(xiàn)場支持到 Web 應(yīng)用開發(fā)和顧問,各個領(lǐng)域他都曾涉足。您可以通過
cmwalden@us.ibm.com與 Chris 聯(lián)系。