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 的方式去設定:
One thought on “Linux – 設定 NIC 裝置”