專題:Windows 到 Linux 之旅:第 7 部分. 網路

來源:互聯網
上載者:User
Linux 網路速成指南

層級:入門

Chris Walden (cmwalden-at-us.ibm.com)
電子商務架構師,IBM Developer Relations
2004 年 1 月

IBM 電子商務架構師 Chris Walden 將通過他在 developerWorks 上發表的九篇系列文章來指導您如何在 Linux 環境中運用您的 Windows 操作技巧。本部分將探討網路,這是 Linux 做得最好的方面之一。

在如今這個時代,運行一台沒有串連到網路的電腦幾乎是難以想像的。電子郵件、網頁瀏覽和檔案分享權限設定像列印和查看螢幕上的資訊一樣,都是使用者所期待的。

幸運的是,Liunx 從一開始就是為網路而開發的。事實上,網路是 Linux 做得最好的事情之一。Linux 支援諸如TCP/IP 和 SMB(NetBIOS)等流行的網路通訊協定。Linux 還具有用於監控和過濾網路流量的成熟工具。諸如 FTP、Windows 檔案和列印共用以及 虛擬主機等服務也是可用的。Linux 甚至還提供了用於集中目錄服務、虛擬私人網路(VPN)和遠端程序呼叫的工具。

網路硬體
Linux 能夠使用具有驅動程式的任何網路硬體。Linux 驅動程式單獨地或以可載入模組的形式編譯到核心中。Linux 核心預設支援許多流行的網卡。在選擇網路硬體時,最好總是使用“硬體相容性列表”(參見 參考資料 中的連結)中列出的裝置。另外還要使用最新的 Linux 發行版本。

一般情況下,如果使用的是相容的網路硬體,安裝系統時網卡會自動得到識別。可以使用 ifconfig 命令來檢查系統上的網路硬體。預設情況下,ifconfig 顯示活動的網路裝置。給這個命令添加一個 -a 開關就能看到所有裝置。

清單 1. 使用 ifconfig

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:0xf000lo        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)

在上面的清單中,系統中只有一塊網卡,標識為 eth0。lo 適配器是一個迴環(lookback),由 Linux 用來與它自身通訊。後面還會進一步討論 ifconfig 命令。

網路裝置名稱
Linux 網路裝置在配置時被賦予別名,該別名由一個描述性的縮減詞和一個編號組成。某種類型的第一個裝置的編號為 0,其他裝置依次被編號為 1、2、3,等等。在給裝置命名時將使用下面的約定。本資訊摘自 Linux Network Administrator's Guide(參見本文結尾處 參考資料 中的連結)。

  • eth0, eth1 ...
    這些是乙太網路卡介面。它們用於大多數的乙太網路卡,包括許多並行連接埠乙太網路卡。
  • tr0, tr1 ...
    這些是令牌環網卡介面。它們用於大多數的令牌環網卡,包括非 IBM 生產的網卡。
  • s10, s11 ...
    這些是 SLIP 介面 。SLIP 介面與串列線關聯,關聯順序就是它們被分配給 SLIP 的順序。
  • ppp0, ppp1 ...
    這些是 PPP 介面。就像 SLIP 介面一樣,PPP 介面一旦被轉換到 PPP 模式,它就與串列線關聯。
  • plip0. plip1 ...
    這些是 PLIP 介面。PLIP 介面通過並行線傳輸 IP 資料報。這些介面在系統啟動時由 PLIP 驅動程式分配,並被映射到並行連接埠。在 2.0.x 核心中,裝置名稱和並行連接埠的 I/O 連接埠之間存在直接的關係,但是在更新版本的核心中,裝置名稱是順序分配的,就像 SLIP 和 PPP 裝置一樣。
  • ax0, ax1 ...
    這些是 AX.25 介面。AX.25 是業餘無線電操作人員使用的主要協議。AX.25 介面的分配和映射方式與 SLIP 裝置類似。

還有其他許多可用於其他網路驅動程式的介面類型。我們僅列出了一些最常見的。

既然乙太網路是最常見的配置,下面就重點來討論它。欲瞭解關於其他種類的串連的更多資訊,請參見本文結尾處的 參考資料。

網路設定
在安裝 Linux 發行版本時,就得配置網路。您或許已經有一個來自初始配置的活動 eth0。這個配置對於當前的使用也許足夠,但是您可能需要隨著時間的推移做出更改。下面將介紹與 IP 網路相關的不同配置項,以及用於使用這些配置項的檔案和工具。

Webmin
Webmin 在 Networking 下的 Network Configuration 中提供一組優秀的網路設定工具。您可以配置單獨的介面並調整它們的當前設定或已儲存的設定。還可以配置路由和網關、DNS 用戶端設定以及本地主機地址。在編輯好所有的配置之後,可以單擊 Apply Configuration 來應用它們,不必重新啟動系統。

Localhost

本地主機地址包含在/etc/hosts 中。這個檔案和 C:/winnt/system32/drivers/etc/hosts 檔案等價。其中的條目顯示 IP 位址的別名,用於在不必查詢 DNS 的情況下指派名稱。

127.0.0.1 localhost.localdomain localhost
10.10.10.10 cmw-t30

不同發行版本中的工具
每個發行版本都有它自己用於配置網路設定的工具。 應該參考特定發行版本的文檔來確定要使用的工具。每種工具提供與 Webmin 工具基本上相同的配置選項。 其中有些版本可能提供特定於該發行版本的選項。

圖 1. Red Hat 8.x 和 9.x 使用 RedHat-config-network 工具
工具" src="http://www-900.ibm.com/developerWorks/cn/linux/l-roadmap/part7/redhatconfnet.jpg" width="518">

圖 2. SuSE 和 United Linux 使用 YAST 工具

手動設定也是可能的,不過這是一個非常深奧的主題。請參考您的發行版本文檔和本文結尾處的 參考資料,以瞭解關於手動網路設定的更多資訊。

分析和監控工具
Linux 附帶了許多工具來監控網路任務。

ifconfig
我們在上面使用過 ifconfig 命令來查看乙太網路卡的狀態。然而,ifconfig 還可以配置裝置並報告關於裝置的情況。假設您要建立一個臨時的網路設定以供測試。您可以使用發行版本中的工具來編輯配置,但是需要注意在完成測試之後,將所有設定恢複回去。通過使用 ifconfig ,我們無需影響已儲存的設定,就能夠快速地配置網卡:

ipconfig eth0 192.168.13.13 netmask 255.255.255.0 up

上面這條命令使用一個 C 類別 IP 位址將 eth0 設定到地址 192.168.13.13,並確保它正常運行。

ipconfig eth0 down

上面這條命令將關閉 eth0 裝置。關於使用 ifconfig 的完整細節,請參見 info ifconfig 頁面。

ifup/ifdown
要使用已儲存的配置來啟用和禁用網路裝置,請分別使用 ifupifdown

# Bring up eth0 using the saved configuration
ifup eth0

# Shut down eth0
ifdown eth0

netstat
使用 netstat 控制台命令來輸出網路連接、路由表、介面統計、偽裝串連和組播成員。netstat 具有多個命令列開關來控制其功能。下面是其中一些常用的開關:

輸出網路狀態

netstat -p 顯示每個通訊端所屬的程式的 PID 或名稱
netstat -a 同時顯示偵聽和非偵聽通訊端
netstat -t 顯示 TCP 串連
netstat -u 顯示 UDP 串連
netstat -e 顯示附加資訊;使用這個選項兩次,可以獲得最詳細的資訊

下面是 netstat -tp 的一個例子:

清單 2. 使用 netstat

[root@cmw-t30 root]# netstat -tpActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address           Foreign Address         StatePID/Program nametcp        0      0 localhost.localdo:29000 *:*                     LISTEN2389/attvpnctltcp        0      0 *:10000                 *:*                     LISTEN5945/perltcp        0      0 *:x11                   *:*                     LISTEN1120/Xtcp        0      0 *:ftp                   *:*                     LISTEN724/xinetdtcp        0      0 *:ssh                   *:*                     LISTEN710/sshdtcp        0      0 *:ipp                   *:*                     LISTEN797/cupsdtcp        0      0 *:505                   *:*                     LISTEN1043/rcdtcp        0      0 localhost.localdoma:ipp localhost.localdo:32772 ESTABLISHED797/cupsdtcp        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       ESTABLISHED1433/gaimtcp        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 ESTABLISHED1246/gnome-cups-mantcp        1      0 localhost.localdo:32774 localhost.localdoma:ipp CLOSE_WAIT1246/gnome-cups-mantcp        0      0 10.100.100.101:33019    cs46.msg.sc5.yahoo:5050 ESTABLISHED1433/gaimtcp        0      0 sig-9-65-39-140.m:35061 d03nm119.boulder.i:1352 CLOSE_WAIT1720/wineservertcp        0      0 10.100.100.101:33021    64.12.30.4:5190         ESTABLISHED1433/gaim

我最常使用 netstat 命令來查看處於 LISTEN 或 ESTABLISHED 狀態的串連。LISTEN 是系統上的服務,它接受來自其他機器的串連。ESTABLISHED 是您的機器和其他機器之間的活動串連。請確保您知道正在啟動並執行所有 LISTEN 程式。如果看到某些無法識別的內容,它可能就是一個安全顧慮。netstat 具有許多選項。請在命令列鍵入 info netstat 來獲得該命令的細節。

route
route 控制台命令允許您顯示和操作 IP 路由表。

清單 3. 使用 route

[root@cmw-t30 plugins]# route|grep -v ipsecKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface204.146.24.42   10.100.100.1    255.255.255.255 UGH   0      0        0 eth110.100.100.0    *               255.255.255.0   U     0      0        0 eth1127.0.0.0       *               255.0.0.0       U     0      0        0 lodefault         10.100.100.1    0.0.0.0         UG    0      0        0 eth1

不帶命令列開關運行 route 將顯示當前路由表。可以使用 route 對該路由表進行非常精細的修改。

route add default gw 10.10.10.1

上面的命令添加一個預設的路由(它將在沒有其他路由匹配的情況下被使用)。使用這個路由的所有分組都將途經網關“10.10.10.1”。實際將用於該路由的裝置取決於我們如何到達“10.10.10.1”——到“10.10.10.1”的靜態路由必須預先設定好。

route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

上面的命令添加一個通過“eth0”到網路 192.56.76.x 的路由。這裡的 C 類網路遮罩修飾符實際上並不是必需的,因為 192.* 就是一個 C 類別 IP 位址。這裡的單詞“dev”也可以省略。

路由選擇是一個非常深奧的主題。關於 route 選項的完整資訊可通過 info route 命令獲得。

結束語
Linux 從一開始就是為網路而設計的。它內建了以前僅在高端企業產品中才可見到的成熟功能。然而,儘管擁有所有這些強大的能力,Linux 網路的配置卻遠沒有 Windows 網路的配置複雜。諸如 Webmin、redhat-config-network 和 YAST這樣的工具允許執行圖形化的配置。諸如 ifconfigroute 這樣的工具允許通過控制台或指令碼查看和修改網路參數。諸如 netstat 這樣的工具允許查看單獨的網路連接,並顯示它們與運行著的進程的關係。

參考資料

  • 閱讀 Windows 到 Linux 之旅系列文章 的其他部分(developerWorks, 2003 年 11 月)。

  • 線上的 Linux Network Administrator's Guide, Second Edition 是在 Liunx 環境中進行網路管理的通用參考指南。初學者和有經驗的使用者,都能夠從中找到關於幾乎每個重要管理活動的資訊,這些活動是管理 Linux 網路設定所必需的。
  • Linux Ethernet HOWTO 包含了關於哪些乙太網路裝置可用於 Linux,以及如何設定它們的資訊(重點放在硬體和乙太網路卡的低級驅動程式方面)。
  • “Linux 文檔計劃”也有一個 分類 HOWTO 列表,協助您容易地尋找相關文檔。
  • “硬體控制列表”包括 Red Hat 硬體搜尋網頁面、SuSE Linux 元件資料庫 和 UnitedLinux 認證和相容的硬體。
  • 在 IBM developerWorks 教程“LPI certification 102 exam prep, Part 3: Networking”中,您會找到關於網路基礎的更多資訊。
  • IBM developerWorks 教程“LPI certification 102 exam prep, Part 4: Secure shell and file sharing”介紹了檔案分享權限設定和安全。
  • 系統安全是一個廣博而複雜的主題,但是在互連的世界中,它影響著每個人。幸運的是,現在開始著手加強系統安全還不算太早也不算太遲。文檔 Adding Security to Common Linux Distributions 和 Strategies for Keeping a Secure Server(這是前面提到過的 Linux Administration Made Easy guide 一書的第 12 章 )將協助您加強系統安全。
  • IBM developerWorks 文章“Linux 硬體穩定性指南”展示了如何診斷和修複許多潛在的硬體問題。

  • 在 IBM developerWorks 文章“在 Linux(或異構)網路上共用電腦”中學習更多關於網路的知識。

  • 遵循 IBM developerWorks 文章“在 Linux 上構建網路路由器”的指導來類比 Cisco 路由器的行為。
  • 採用更好的安全性 —— IBM developerWorks 文章“使用 ssh 進行安全的串連”展示了如何?這一點。
  • 對那些從 Windows 轉向 Linux 的讀者來說,另一個重要的參考資料是 Linux 使用者技術 FAQ。
  • 要開始在 Linux 上使用 IBM 的軟體產品,為您的 Linux 應用開發加油提速 將為您提供最好的參考資料。您可以找到關於 DB2、Lotus Domino、WebSphere Application Server、WebSphere Studio 等多種應用軟體的安裝提示和參考資料。您還可以登入獲得免費的 Linux Software Evaluation Kit,裡面有試用軟體和培訓資料。
  • developerWorks Linux 專區可以找到更多 為 Linux 開發人員準備的參考資料。
關於作者
Chris Walden 是位於德克薩斯州奧斯汀的 IBM Developer Relations Technical Consulting(也稱為 dragonslayers)的一名電子商務架構師,該公司為 IBM 商業夥伴提供教育、實現和諮詢。他致力於 Linux 相關工作,一有機會就向身邊的人宣傳 Linux 的種種好處。除了完成他的架構師的職責之外,他還精通 Linux 基礎設施伺服器的各個領域,包括混合平台使用者環境下的檔案、列印以及其他應用服務等。Chris 有 10 年的電腦行業經驗,從現場支援到 Web 應用程式開發和顧問,各個領域他都曾涉足。您可以通過 cmwalden-at-us.ibm.com 與 Chris 聯絡。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.