2,605 瀏覽數

設定 NIC 裝置

Step 0.NIC 使用的模組
Step 1.NIC 的 IP 設定 (ifconfig)
Step 2. ifcfg-ethx 設定檔
Step 3.如何看目前網路卡的速度
Step 4.其他設定檔

Step 0.NIC 使用的模組
RedHat 開機時會用 kudzu 這支程式來偵測是否有增減硬體設備(但有 30 秒的時間 timeout,就使用正常開機),在開機後還是可以在使用 kudzu 來偵測是否有增減硬體設備

[root@benjr ~]# kudzu

至於哪些卡要上什麼 module 要參考 /etc/modules.conf 新版的為 /etc/modprobe.conf

[root@benjr ~]# vi /etc/modprobe.conf
alias eth0 e100

通常 INTEL 的網路卡晶片模組為 e100(10/100 NIC) 或 e1000 (G NIC) ,而 Broadcon 的網路卡晶片模組為 3c59x(10/100 NIC) 或 tg3 (G NIC)

Step 1.NIC 的 IP 設定 ifconfig / udhcpc
這邊要介紹一個指令ifconfig,他除了可以查網路卡設定狀況,還可以對網路卡做設定

設定IP

[root@benjr ~]# ifconfig eth0 192.168.163.10

eth0:就是第一張網卡,第二張就是eth1,以此類推…eth2,eth3…
192.168.163.10 就是IP位址

修改IP NetMask

[root@benjr ~]# ifconfig eth0 netmask 255.255.255.0

在設定IP之後,系統會自動算出mask,所以這步驟並不需特別設定,除非你要切割子網路

關閉網路卡功能

[root@benjr ~]# ifconfig eth0 down

啟動網路卡功能

[root@benjr ~]# ifconfig eth0 up

或是直接透過指令 udhcpc 可以暫時透過 DHCP 來獲取 IP 位址,下次開機後需要重新設定或是再使用 udhcpc 該指令.

# udhcpc -i eth0


Step 2. ifcfg-ethx 設定檔

以上的設定都是暫時性的,如要每次開機,或 #service network restart ,使用相同的設定.則必須執行指令 Setup ,選擇 Network configuration 但這個指令只能針對第一張網卡設定,若你有2張以上的網卡時必須使用修改設定檔,而設定檔存放在 /etc/sysconfig/network-scripts/ifcfg-ethx(ethx中的x代表地幾張網卡,0->第一張1->第二張)

ifcfg-ethx設定檔內容如下
使用固定 static IP

  • DEVICE=eth0                                 # 表示第幾張網卡
  • ONBOOT=yes                                #啟動時是否套用設定值
  • BOOTPROTO=static                      #使用固定IP
  • IPADDR=192.168.163.10
  • NETMASK=255.255.255.0
  • GATEWAY=192.168.163.254

使用 DHCP

  • DEVICE=eth1
  • ONBOOT=yes
  • BOOTPROTO=dhcp                    #使用DHCP來獲得的IP

執行下列的指令讓設定生效

[root@benjr ~]# service network restart

如果是要單純使用DHCP來重新獲得IP則需使用下列的指令

[root@benjr ~]# dhcpcd -n

如果不習慣手寫設定檔那還是有指令可以使用 #netconfig –device ethx ,其中的 –device ethx 就是你要設定哪一個網路卡.在 x-window 下有一個 #redhat-config-network (RedHat 3) #system-config-network(RHEL4 / 5 ) 也是可以來使用.

Step 3.如何看目前網路卡的速度
指令#ethtool ethx

[root@benjr ~]# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes:   10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
………..略……………
Speed: 100Mb/s
………..略……………

可以看到雖然是 1G 的網卡,卻執行在 100 的速度(因為我把他裝在 10/100的 switch 上),現在把他改到 1G 的 switch上

[root@benjr ~]# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes:   10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
………..略……………
Speed: 1000Mb/s
………..略……………

它的確變成 1G 的速度
ethtool 還可以看一些其他資訊,如版本,firmware 等資訊.只要使用參數 “i"就可了.

[root@benjr ~]# ethtool -i eth0

如果你的網卡有支援 WOL(Wake On Lan),這個 tool 也可以使用.

[root@benjr ~]# ethtool -s eth0 wol g

檢查一下看 wake-on LAN 的功能是否開啟.

[root@benjr ~]# ethtool eth0
wake-on=g

的確是有的.
通常網卡速度可以依自己需求做調整.透過 ethtool 可以設定網卡的速度

[root@benjr ~]# ethtool –s eth0 autoneg off speed 10 duplex full

Autoneg off -> 如果要自訂速度那第一步就要先將 auto negotiation 的功能關掉.auto negotiation 就是速度由網卡依據目前網路狀況自己來決定.
Speed 10 -> 除了 10 以外,還有 100M,1G,10G 等的速度
Duplex full -> 有半速 ( half ) 和全速 ( full) 可以選擇.

Step 4.其他設定檔
/etc/sysconfig/network

[root@benjr ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=dexter.com

這個檔案主要是設定 hostname (主機名稱)的地方,下次開機就會生效,如果要立即生效可以用指令 #hostname name 這只是暫時性的,下次開機還是會去讀 /etc/sysconfig/network 檔案來當成主機名稱.
/etc/sysconfig/network-scrips/ifcfg-ethx
說明如上
/etc/modules.conf
說明如上
/etc/resolv.conf

[root@benjr ~]# cat /etc/resolv.conf
nameserver 61.64.127.1

這個檔案就是要設定 DNS(名稱解析伺服器) 為哪一台的地方.我這邊設定了一台 61.64.127.1(So-NET 的 DNS)
/etc/hosts
這個檔案紀錄著 IP 與 主機名稱或電腦名稱的相對應.通常在做名稱解析時,會先看  /etc/hosts 如果找不到便會去詢問 DNS ,這順序可以自己定義的, 檔案 /etc/nsswitch.conf 中紀錄了名稱解析的順序.

[root@benjr ~]# cat /etc/nsswitch.conf
#hosts:      db files nisplus nis dns
hosts:        file dns

傳統的設定方式在新的 Linux 可能無法使用,要改成 Network Manager 的方式去設定:

網友的想法

  1. 自動參照通知: 硬體裝置 | Benjr.tw

發表迴響