ifconfig 指令是Linux網路組態設定的主要系統管理命令。以下我們說明如何手動設定這些網路組態:
- IP
- gateway
- netmask
- DNS
- broadcast
設定 IP
例如,要將系統的 IP 設定為 59.120.22.215,則執行以下命令:
linux# ifconfig eth0 59.120.22.215同時請將 loopback device 也加上去:
linux# ifconfig lo 127.0.0.1直接執行 'ifconfig' 不加任何參數的話,可以看到目前的網路組態設定:
lo 是所謂的 loopback 界面,eth0 就是我們剛剛設定好的乙太網路界面,有了這層界面後,才能連上 Internet。這 個動作必須在成功載入網路卡的驅動程式後才能執行。eth0 Link encap:Ethernet HWaddr 00:13:D4:C4:0D:ED inet addr:59.120.22.215 Bcast:59.120.22.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1768542 errors:0 dropped:0 overruns:0 frame:0 TX packets:2411565 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:216276166 (206.2 Mb) TX bytes:2221236364 (2118.3 Mb) 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:453762 errors:0 dropped:0 overruns:0 frame:0 TX packets:453762 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:959840798 (915.3 Mb) TX bytes:959840798 (915.3 Mb)
別忘了,我們還沒替 eth0 界面設定好 gateway 與broadcast。gateway 是閘訊通,正確設定閘訊通才能連接外面的網路,否則只能連接區域網路內的主機,broadcast 是廣播位址,有了這個位址才能廣播封包到區域網路內的所有主機,例如要設定 gateway 與 broadcast 分別為 59.120.22.254 與 59.120.22.255。
設定 broadcast
執行:
linux# ifconfig eth0 broadcast 59.120.22.255再執行 ifconfig 就可以發現 eth0 的 broadcast 位址已經被改變了。
設 定 Netmask
例如,要將 eth0 的 netmask 設定成 255.255.255.0,則執行:
linxu# ifconfig eth0 netmask 255.255.255.0其它組態的設定方法
設 定 Gateway
修改 Gateway 設定:
linux# route del default我們先刪除 default 再加入新的 gateway 位址,不過這個刪除的動作也可以省略不做。
linux# route add default gw 59.120.22.254
此時我們已經加入了一個預 設的 gateway,直接執行 'route' 不加任何參數,便能看到目前的 gateway 設定:
設定 DNSlinux# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 59.120.22.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 59-120-22-254.H 0.0.0.0 UG 0 0 0 eth0
最後要設定的是 DNS,DNS 負責 Domain Name與 IP 位址之間的轉換,例如我們打 embedded.jollen.org,經由查詢 DNS,得知其 IP 位址為 59.120.22.215,有了 IP 位址才得以和遠端的主機連線,因此正確設定一台可用的 DNS是很重要的。
設定 DNS 的方法很簡單,只要編輯 /etc/resolv.conf 即可,以下是一個範例:
第一行是設定網域名稱搜尋,第二、三行則是設定 DNS server。search 通常用在區域網路,例如我們的主機位於 jollen.org 的網域,則設定 search jollen.org 的話,只要打主機名稱:search jollen.org nameserver 163.14.192.1 #第一個 nameserver 意同 primary DNS nameserver 168.14.1.1 #第二個 nameserver 意同 secondary DNS
linux# telnet www效果跟
linux# telnet www.jollen.org是相同的。如果設定多個 domain 的話,則依序搜尋到一個合法的位址為止,例如:
search jollen.org xxx.com若 telnet www 的話,會先找 www.jollen.org,如果失敗會接著找 www.xxx.com。
nameserver 是設定 DNS,這裡的 DNS 必須是 IP 位址,系統會依序向這些名稱伺服器做查詢,向第一個 DNS 做查詢若失敗,則往下向第二個 DNS 做查詢,依此類推。
/etc/hosts
我們可以把常用的 domain name 編輯到 /etc/hosts 裡,然後設定好 host.conf,如此一來當我們使用這些常用的 domain name 時就可以不必再經由 DNS 的查詢程序,進而提升速度,例如以 www.jollen.org 為例,只要在 /etc/hosts 加上:
59.120.22.215 www.jollen.org jollen這樣一來執行 "telnet jollen" 就等於是 "telnet 59.120.22.215"。
/etc/hosts.conf
設定好 /etc/hosts 後還要檢查一下 /etc/hosts.conf 的設定,確定名稱查詢時會先查詢 /etc/hosts,請檢查 /etc/hosts.conf 是否有一行:
order hosts,bind表示先查詢 /etc/hosts,失敗的話再向 DNS 主機查詢。
沒有留言:
張貼留言