Linux 網路介面配置文件及相關工具

火星人 @ 2014-03-24 , reply:0



1、 關於網路介面及配置工具說明;

  網路介面(interface)是網路硬體設備在操作系統中的表示方法,比如網卡在Linux操作系統中用 ethX,是由0開始的正整數,比如eth0、eth1...... ethX。而普通貓和ADSL的介面是 pppX,比如ppp0等;

  在Linux操作系統中配置網路介面,一般是通過網路配置工具實現的,但最終目的還是通過網路配置工具來達到修改與網路相關的配置文件而起作用的。由此說來,我們配置網路可以直接修改配置文件。比如網路網路介面(網卡)的IP地址、子掩碼、網關,在Slackware 中只需修改一個配置文件就行了 /etc/rc.d/rc.inet1 ,而在 Redhat/Fedora 等或以Redhat/Fedora 為基礎的發行版中,一般要涉及到好幾個文件,比如包括 /etc/sysconfig/network-scripts/ifcfg-eth0在內等。

  了解Linux網路配置文件是極為重要的,我們通過工具修改了什麼,是怎麼生效的,只有了解網路配置文件才能搞清楚。做個不恰當的比喻:Linux 系統是一個透明的盒子,至於盒子里裝的是什麼都是一目了然的。而閉源操作系統,我們沒有機會知道這些,更不知道他是怎麼實現的。

  對於複雜的網路模型,Linux 是有極大的優勢,可能在我們看看man 和help,修改修改配置文件,在幾分鐘就可以搞定。但閉源圖形界面的操作系統就沒有這麼幸運了,反覆的點滑鼠,點了幾十次上百次也解決不了一個問題,這是極為常見的。

  由於Linux存在很多的發行和版本,大多發行版本都有自己的專用配置工具。主要是為了方便用戶配置網路;但也有通用的配置工具,比如 ifconfig 、ifup、ifdown;

2 關於網路硬體設備的驅動;

  我在以前的文檔中有寫過,網路硬體,比如網卡(包括有線、無線),貓包括普通貓和ADSL貓等,都是需要內核支持的,所以我們首先得知道自己的網路設備是不是已經被硬內核支持了。如果不支持,我們得找驅動(或通過內核編譯)來支持它;

3、ifconfig 配置網路介面的工具介紹;

  ifconfig 是一個用來查看、配置、啟用或禁用網路介面的工具,這個工具極為常用的。比如我們可以用這個工具來臨時性的配置網卡的IP地址、掩碼、廣播地址、網關等。也可以把它寫入一個文件中(比如/etc/rc.d/rc.local),這樣系統引導后,會讀取這個文件,為網卡設置IP地址;不過這樣做目前看來沒有太大的必要。主要是各個發行版本都有自己的配置工具,無論如何也能把主機加入到網路中,下面我們看看ifconfig 用法。

3.1 ifconfig 查看網路介面狀態;

  ifconfig 如果不接任何參數,就會輸出當前網路介面的情況;

[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:C0:9F:94:78:0E
inet addr:192.168.1.88 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2c0:9fff:fe94:780e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:850 errors:0 dropped:0 overruns:0 frame:0
TX packets:628 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:369135 (360.4 KiB) TX bytes:75945 (74.1 KiB)
Interrupt:10 Base address:0x3000

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:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8121 (7.9 KiB) TX bytes:8121 (7.9 KiB)


解說:

  eth0 表示第一塊網卡, 其中 HWaddr 表示網卡的物理地址,我們可以看到目前這個網卡的物理地址(MAC地址)是 00:C0:9F:94:78:0E ; inet addr 用來表示網卡的IP地址,此網卡的 IP地址是 192.168.1.88, 廣播地址, Bcast:192.168.1.255,掩碼地址Mask:255.255.255.0

  lo 是表示主機的回壞地址,這個一般是用來測試一個網路程序,但又不想讓區域網或外網的用戶能夠查看,只能在此台主機上運行和查看所用的網路介面。比如我們把HTTPD伺服器的指定到回壞地址,在瀏覽器輸入 127.0.0.1 就能看到你所架WEB網站了。但只是您能看得到,區域網的其它主機或用戶無從知道;

如果我們想知道主機所有網路介面的情況,請用下面的命令;

[root@localhost ~]# ifconfig -a


如果我們想查看某個埠,比如我們想查看eth0 的狀態,就可以用下面的方法;



[root@localhost ~]# ifconfig eth0

3.2 ifconfig 配置網路介面;

  ifconfig 可以用來配置網路介面的IP地址、掩碼、網關、物理地址等;值得一說的是用ifconfig 為網卡指定IP地址,這只是用來調試網路用的,並不會更改系統關於網卡的配置文件。如果您想把網路介面的IP地址固定下來,目前有三個方法:一是通過各個發行和版本專用的工具來修改IP地址;二是直接修改網路介面的配置文件;三是修改特定的文件,加入ifconfig 指令來指定網卡的IP地址,比如在redhat或Fedora中,把ifconfig 的語名寫入/etc/rc.d/rc.local文件中;

ifconfig 配置網路埠的方法:

  ifconfig 工具配置網路介面的方法是通過指令的參數來達到目的的,我們只說最常用的參數;

  ifconfig 網路埠 IP地址 hw MAC地址 netmask 掩碼地址 broadcast 廣播地址 [up/down]


* 實例一:

  比如我們用ifconfig 來調試 eth0網卡的地址:

[root@localhost ~]# ifconfig eth0 down
[root@localhost ~]# ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 up
[root@localhost ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:00:00:11:11
inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:11 Base address:0x3400

註解: 上面的例子我們解說一下;

第一行:ifconfig eth0 down 表示如果eth0是激活的,就把它DOWN掉。此命令等同於 ifdown eth0;
第二行:用ifconfig 來配置 eth0的IP地址、廣播地址和網路掩碼;
第三行:用ifconfig eth0 up 來激活eth0 ; 此命令等同於 ifup eth0
第四行:用 ifconfig eth0 來查看 eth0的狀態;

當然您也可以用直接在指令IP地址、網路掩碼、廣播地址的同時,激活網卡;要加up參數;比如下面的例子;

[root@localhost ~]# ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 up

* 實例二:在這個例子中,我們要學會設置網路IP地址的同時,學會設置網卡的物理地址(MAC地址);

比如我們設置網卡eth1的IP地址、網路掩碼、廣播地址,物理地址並且激活它;

[root@localhost ~]# ifconfig eth1 192.168.1.252 hw ether 00:11:00:00:11:11 netmask 255.255.255.0 broadcast 192.168.1.255 up

[root@localhost ~]# ifconfig eth1 hw ether 00:11:00:00:11:22
[root@localhost ~]# ifconfig eth1 192.168.1.252 netmask 255.255.255.0 broadcast 192.168.1.255 up

其中 hw 後面所接的是網路介面類型, ether表示乙太網, 同時也支持 ax25 、ARCnet、netrom等,詳情請查看 man ifconfig ;

3.3 如何用ifconfig 來配置虛擬網路介面;


  有時我們為了滿足不同的需要還需要配置虛擬網路介面,比如我們用不同的IP地址來架運行多個HTTPD伺服器,就要用到虛擬地址;這樣就省卻了同一個IP地址,如果開設兩個的HTTPD伺服器時,要指定埠號。

  虛擬網路介面指的是為一個網路介面指定多個IP地址,虛擬介面是這樣的 eth0:0 、 eth0:1、eth0:2 ... .. eth1N。當然您為eth1 指定多個IP地址,也就是 eth1:0、eth1:1、eth1:2 ... ...以此類推;

  其實用ifconfig 為一個網卡配置多個IP地址,就用前面我們所說的ifconfig的用法,這個比較簡單;看下面的例子;


[root@localhost ~]# ifconfig eth1:0 192.168.1.251 hw ether 00:11:00:00:11:33 netmask 255.255.255.0 broadcast 192.168.1.255 up

[root@localhost ~]# ifconfig eth1 hw ether 00:11:00:00:11:33
[root@localhost ~]# ifconfig eth1 192.168.1.251 netmask 255.255.255.0 broadcast 192.168.1.255 up



注意:指定時,要為每個虛擬網卡指定不同的物理地址;

  在 Redhat/Fedora 或與Redhat/Fedora類似的系統,您可以把配置網路IP地址、廣播地址、掩碼地址、物理地址以及激活網路介面同時放在一個句子中,寫入/etc/rc.d/rc.local中。比如下面的例子;

ifconfig eth1:0 192.168.1.250 hw ether 00:11:00:00:11:44 netmask 255.255.255.0 broadcast 192.168.1.255 up
ifconfig eth1:1 192.168.1.249 hw ether 00:11:00:00:11:55 netmask 255.255.255.0 broadcast 192.168.1.255 up

解說:上面是為eth1的網路介面,設置了兩個虛擬介面;每個介面都有自己的物理地址、IP地址... ...

3.4 如何用ifconfig 來激活和終止網路介面的連接;



  激活和終止網路介面的用 ifconfig 命令,後面接網路介面,然後加上 down或up參數,就可以禁止或激活相應的網路介面了。當然也可以用專用工具ifup和ifdown 工具;

[root@localhost ~]# ifconfig eth0 down
[root@localhost ~]# ifconfig eth0 up
[root@localhost ~]# ifup eth0
[root@localhost ~]# ifdown eth0

  對於激活其它類型的網路介面也是如此,比如 ppp0,wlan0等;不過只是對指定IP的網卡有效。

注意:對DHCP自動分配的IP,還得由各個發行版自帶的網路工具來激活;當然得安裝dhcp客戶端;這個您我們應該明白;



比如Redhat/Fedora

[root@localhost ~]# /etc/init.d/network start

Slackware 發行版;

[root@localhost ~]# /etc/rc.d/rc.inet1

4、Debian、Slackware、Redhat/Fedora、SuSE等發行版專用網路介面配置工具;


  由於 ifconfig 用起來比較麻煩,而且是用來測試網路之用,但這個工具並不能修改網路介面的相應配置文件。雖然也能通過把ifconfig配置網路介面的語句寫入類似/etc/rc.d/rc.local 文件中,但相對來說還是寫入關於網路介面的配置文件中更為安全和可靠;而對於虛擬網路介面寫入類似/etc/rc.d/rc.local 中還是可以的。

  下面我們介紹一下各個發行版的網路介面配置工具。

4.1 Debian 網路介面配置文件和專用配置工具;

(詳見後繼文章)

4.2 Redhat/Fedora 網路介面的配置文件和網路介面專用配置工具;

  在Redhat/Fedora 中,與乙太網卡相關的配置文件位於 /etc/sysconfig/network-scripts目錄中,比如 ifcfg-eth0、ifcfg-eth1 .... ....

4.21 Redhat/Fedora 或類似這樣的系統,網卡的配置文件;

  比如在Fedora 5.0中,ifcfg-eth0 ;如果您用DHCP伺服器來自動獲取IP的,一般情況下ifcfg-eth0的內容是類似下面這樣的;

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet


如果您是指定IP的,一般內容是類似下面的;

DEVICE=eth0 註:網路介面
ONBOOT=yes 註:開機引導時激活
BOOTPROTO=static 註:採用靜態IP地址;
IPADDR=192.168.1.238 註:IP地址
NETMASK=255.255.255.0 註:網路掩碼;
GATEWAY=192.168.1.1 註:網關;
下面的幾個選項也可以利用;

HOSTNAME=linxsir03 註:指定主機名;
DOMAIN=localdomain 註:指定域名;
HWADDR=00:00:11:22:00:aa 註:指定網卡硬體地址 (MAC地址), 也可以省略,不過這在這裡來更改MAC地址一般是不能生效的。還是通過前面所說的ifconfig的辦法來更改吧;

4.22 Redhat/Fedora 或類似系統, 配置網路的工具介紹 ;


  在Redhat早期的版本中, 有linuxconf 、redhat-config-network 、netconfig 等工具;在Redhat/Fedora 最新的版本有 system-config-network-tui (文本模式的) 、system-config-network (圖形模式的),netconfig(文本模式的)。

  這些工具都會直接修改Linux系統中關於網路介面的配置文件;這是 ifconfig 所不能比的;其中 redhat-config-network 和system-config-network工具不僅僅是配置網卡的工具,還有配置ISDN和普通貓、ADSL的工具、網路硬體的添加、主機名字的配置、DNS各客戶端的配置等。其實是一個工具組的集成;這些工具比較簡單,以root許可權運行命令就能調用,比如:

[root@localhost ~]# /usr/sbin/system-config-network
[root@localhost ~]# system-config-network

如果您設置了可執行命令的環境變數,不用加路徑就可以運行,但前提是您得安裝這個網路管理工具;

  不過值得一說的是netconfig 工具是一個在文本模式比較好的工具,推薦大家使用;理由是這個工具在文本模式下,也有一個簡單的圖形界面;還有命令模式;功能強著呢;

[root@localhost ~]# netconfig -d eth0 註:配置eth0
[root@localhost ~]# netconfig -d eth1 註:配置eth1

4.23 Redhat/Fedora系統中的netconfig 特別介紹;

  netconfig這個工具,在Redhat/Fedora 或類似於它們的系統中都是存在的,這個工具比較強大。所以特別介紹一下。但在Slackware中netconfig是TEXT模式下有一個圖形模式,但不能象ifconfig一樣用命令來操作網卡介面;

netconfig 的用法如下:

[root@localhost ~]# netconfig --help 註:幫助;
--bootproto=(dhcp|bootp|none) Boot protocol to use(
--gateway=STRING Network gateway(指定網關)
--ip=STRING IP address(指定IP地址)
--nameserver=STRING Nameserver(指定DNS客戶端)
--netmask=STRING Netmask(指定網路掩碼)
--hostname=STRING Hostname( 指定主機名)
--domain=STRING Domain name(指定域名)
-d, --device=STRING Network device (指定網路設備)
--nodns No DNS lookups (沒有DNS查詢)
--hwaddr=STRING Ethernet hardware address (指定網卡的物理地址)
--description=STRING Description of the device (描述性文字)
Help options: (幫助選項)
-?, --help Show this help message
--usage Display brief usage message



實例一:設置網卡的DHCP模式自動獲得IP

[root@localhost ~]# netconfig -d eth0 --bootproto=dhcp

實例一:手動設置網卡的IP等

[root@localhost ~]# netconfig -d eth0 --ip=192.168.1.33 --netmask=255.255.255.0 --gateway=192.168.1.1

4.3 Slackware網卡配置文件和配置工具;

  Slackware 有關網卡的配置文件是/etc/rc.d/rc.inet1.conf , 這個文件包括乙太網介面的網卡和無線網卡的配置。Slackware 還是比較純凈的,網路配置也較簡單;在Slackware中也有netconfig 配置工具,也是text模式運行的,人機交互界面,這個設置比較簡單;

  Slackware 用netconfig 配置網卡完成後,其實質是修改了/etc/rc.d/rc.inet1.conf 文件。Slackware是源法原味的Linux系統,他的配置文件比較標準 ,所以我推薦您在生產型的系統,不妨嘗試一下Slackware ;

  配置好網卡后,我們還得運行下面的命令,才能激活網卡;

[root@localhost ~]# /etc/rc.d/rc.inet1

  下面是一個例子,比如此機器有兩個網卡eth0和eth1,eth0用DHCP獲得IP地址,eth1指定IP地址;

# Config information for eth0:
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]="yes" 註:在這裡寫上yes,表示用DHCP獲得IP;
DHCP_HOSTNAME[0]="linuxsir01" 註:DNS伺服器主機名,也可以用IP來指定DNS伺服器;
# Config information for eth1: 註:網卡eth1的配置;
IPADDR[1]="192.168.1.33" 註:指定IP地址;
NETMASK[1]="255.255.255.0" 註:指定掩碼;
USE_DHCP[1]="no" 註:不用DHCP獲得IP;
DHCP_HOSTNAME[1]=""
# Config information for eth2:
IPADDR[2]=""
NETMASK[2]=""
USE_DHCP[2]=""
DHCP_HOSTNAME[2]=""
# Config information for eth3:
IPADDR[3]=""
NETMASK[3]=""
USE_DHCP[3]=""
DHCP_HOSTNAME[3]=""
# Default gateway IP address:
GATEWAY="192.168.1.1" 註:指定網關;


4.4 SuSE或OpenSuSE網卡配置文件和配置工具;


(詳見後繼文章)

5、關於拔號工具的介紹;


  有的弟兄可能需要ADSL貓和普通貓的拔號工具;現在我們分別介紹一下;

5.1 ADSL pppoe 拔號工具rp-pppoe;



  如果您的ADSL不是路由的,如果是路由的,在路由路就能設置好自動拔號。只要把機器接上就能用了,這個咱們不說了,路由器大家都會用;但如果您的ADSL不支持路由,或您想用您當前所用的主機來做路由器;這就需要一個拔號軟體;

  目前國內大多城市都用的是pppoe協議 ,所以我們有必要介紹 pppoe 拔號軟體,在Linux中,這個軟體的名字是 rp-pppoe 。

5.11 各大發行版自帶的 rp-pppoe 的安裝和使用;

  rp-pppoe 目前在各大發行版本都是存在的,比如Redhat/Fedora、紅旗、Slackware、Debian、SuSE等系統,都是採用這個拔號軟體,所以您大可不必為下載源碼編譯安裝。只需要在各大發行版的安裝盤中就可以找得到;請用各大發行版自帶的軟體包管理工具來安裝此軟體包;

* 如果您用的是各大發行版提供的rp-pppoe軟體包

比如 RPM包的系統是用 rpm -ivh rp-pppoe*.rpm
Slackware 系統是用 installpkg rp-pppoe*.tgz

在Redhat/Fedora 中可以通過圖形配置工具來完成,redhat-config-network 命令,調用配置網路,要通過XDSL來添加拔號,比較簡單,所有發行版通用的方法是adsl-setup 命令來配置ADSL:

[root@localhost ~]# adsl-setup 註:配置pppoe拔號,請文檔下面,都差不多;
[root@localhost ~]# adsl-start 註:啟動拔號;
[root@localhost ~]# adsl-stop 註:斷開連接;

5.12 如果是源碼包安裝,我們要自己來編譯安裝;

[root@localhost ~]# tar zxvf rp-pppoe-3.8.tar.gz
[root@localhost ~]# cd rp-pppoe-3.8
[root@localhost rp-pppoe-3.8]# ./go
Welcome to the Roaring Penguin PPPoE client setup. First, I will run
some checks on your system to make sure the PPPoE client is installed
properly...
Looks good! Now, please enter some information:
USER NAME
>>> Enter your PPPoE user name (default bxxxnxnx@sympatico.ca): 在這裡添寫你的拔號用戶名;就是服務商提供的;
>>> Enter the Ethernet interface connected to the DSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where 'n' is a number.
(default eth0): eth0 如果是乙太介面的ADSL,就要在這裡寫上接貓的那個網路介面號。此處是eth0;
Do you want the link to come up on demand, or stay up continuously?
If you want it to come up on demand, enter the idle time in seconds
after which the link should be dropped. If you want the link to
stay up permanently, enter 'no' (two letters, lower-case.)
NOTE: Demand-activated links do not interact well with dynamic IP
addresses. You may have some problems with demand-activated links.
>>> Enter the demand value (default no): 註:默認回車
>>> Enter the DNS information here: 202.96.134.133 註:在這裡寫上DNS伺服器地址;可以和提供商要,也可以用我寫的這個;
Please enter the IP address of your ISP's secondary DNS server.
If you just press enter, I will assume there is only one DNS server.
>>> Enter the secondary DNS server address here: 202.96.128.143 這是第二個DNS伺服器地址;
>>> Please enter your PPPoE password:在這裡輸入用戶的密碼;
>>> Please re-enter your PPPoE password: 確認密碼;
The firewall choices are:
0 - NONE: This script will not set any firewall rules. You are responsible
for ensuring the security of your machine. You are STRONGLY
recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
for a LAN
>>> Choose a type of firewall (0-2): 2 註:在這裡寫上2,可以共享上網的;當然還得加一條防火牆規劃 ;
Ethernet Interface: eth0
User name: dxxx
Activate-on-demand: No
Primary DNS: 202.96.134.133
Secondary DNS: 202.96.128.143
Firewalling: MASQUERADE
>>> Accept these settings and adjust configuration files (y/n)? y 註:是不是保存配置。

5.2 普通貓的拔號工具介紹;

  普通貓的拔號工具主要有kppp和wvdial;在Redhat/Fedora中,用system-config-network 或redhat-config-network 也能設置ppp拔號。在KDE桌面環境下,大家一般都用kppp拔號工具,點滑鼠就可以完成。

  wvdial工具是文本的,幾乎在各大發行版都有。wvdial的配置文件是/etc/wvdial.conf 。如果您的貓已經驅動好了,運行一下wvdialconf命令就生成了/etc/wvdial.conf了 。當然您得查看一下它的內容;

[root@localhost ~]# wvdialconf
[root@localhost ~]# more /etc/wvdial.conf

6、DNS客戶端配置文件/etc/resolv.conf;

  本來不應該把DNS客戶端配置文件放在這裡來說,但由於新手弟兄上網時,雖然能拔號,但不能以域名訪問。究其原因是由於沒有修改 /etc/resolv.conf 文件;/etc/resolv.conf 裡面存放的是各大通信公司DNS伺服器列表;下面的三個地址可以用一用;當然您可以打電話問你的服務商;

nameserver 202.96.134.133
nameserver 202.96.128.143
nameserver 202.96.68.38




[火星人 via ] Linux 網路介面配置文件及相關工具已經有181次圍觀

http://www.coctec.com/docs/linux/show-post-135026.html