หลังการ ติดตั้ง CentOS 6.2 : ใส่ชื่อ hostname และคอนฟิกเน็ตเวิร์ค
หากเราต้องการแก้ไขชื่อ hostname หรือ เปลี่ยน IP Address ของเครื่องสามารถทำได้สองวิธี
- ใช้โปรแกรม system-config-network
- แก้ไขไฟล์ในไดเร็คทอรี /etc/sysconfig/network-scripts โดยตรง
ล็อกอินด้วย root
ชื่อเครื่อง hostname
ใช้คำสั่ง hostname เพื่อดูชื่อเครื่อง
[root@cent6 ~]# hostname cent6.example.com
หมายเหตุ โดยดีฟอลต์ เชลล์ (shell) หรือพร้อมต์ (prompt) จะขึ้นชื่อเครื่องด้วย เช่นในที่นี้คือ cent6
คำสั่ง ifconfig เพื่อดู IP, Netmask ของพอร์ตแลน
ใช้คำสั่ง ifconfig เพื่อดูคอนฟิกเน็ตเวิร์ก เช่น IP Address, Netmask ชองพอร์ตแลน (LAN) ได้
พอร์ตแลนของ CentOS หรือลีนุกซ์ส่วนใหญ่ ที่ใช้รับส่งข้อมูล จะมีชื่อขึ้นต้นด้วย eth แล้วตามด้วยตัวเลขแสดงลำดับพอรต์ โดยเริ่มจากเลข 0
เช่น พอร์ตแลนแรก ชื่อ eth0 พอร์ตที่สองก็จะเป็น eth1 ตามลำดับ
ส่วน lo เป็นพอร์ตพิเศษคือ (loopback) มี IP เป็น 127.0.0.1 ใช้สำหรับติดต่อส่งข้อมูลภายในเครื่องลีนุกซ์เอง เราไม่ต้องแก้ไขอะไร
ตัวอย่างการใช้คำสั่ง ifconfig
ในตัวอย่าง พอร์ตแลนแรก eth0 มีคอนฟิกเน็ตเวิร์กดังนี้
- IP Address: 192.168.5.62
- Netmask: 255.255.255.0
[root@cent6 ~]# ifconfig eth0 Link encap:Ethernet HWaddr ... inet addr:192.168.5.62 Bcast:192.168.5.255 Mask:255.255.255.0 inet6 addr: ... Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:436 errors:0 dropped:0 overruns:0 frame:0 TX packets:200 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:113770 (111.1 KiB) TX bytes:32038 (31.2 KiB) 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:26 errors:0 dropped:0 overruns:0 frame:0 TX packets:26 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2254 (2.2 KiB) TX bytes:2254 (2.2 KiB)
คำสั่ง netstat -rn เพื่อดู Routing Table
ใช้คำสั่ง netstat -rn หรือ route -n เพื่อดู routing table ของลีนุกซ์ได้ ตัวอย่าง
[root@cent6 ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.5.1 0.0.0.0 UG 0 0 0 eth0
โปรแกรม system-config-network เพื่อเปลี่ยน IP Address
พิมพ์คำสั่ง system-config-network เพื่อเข้าสู่โปรแกรม
[root@cent6 ~]# system-config-network
ในหน้าจอ “Select Action” ใช้ปุ่มลูกศร (cursor) ขึ้นลง เลือกที่ “Device Configuration” แล้วกด [Enter]
หน้าจอ “Select A Device” แสดงพอร์ตแลน ที่มีอยู่ เลือกที่ “eth0” แล้วกด [Enter]
หน้าจอแสดงคอนฟิกเน็ตเวิร์กของพอร์ตแลน eth0 ใช้ลูกศรขึ้น ลง หรือกดปุ่ม [Tab] เพื่อเลื่อนไปยังช่องต่างๆ
คำเตือน ไม่แนะนำให้เปลี่ยน Name: eth0 และ Device: eth0
- Use DHCP L หากต้องการเลือกคอนฟิกแบบ DHCP ให้เลื่อน มาที่บรรทัดนี้แล้วกดปุ่ม [Spacebar] เพื่อเลือก [*]
- Static IP : IP Address ของพอร์ต
- Netmask : Netnmask ของพอร์ต
- Default gateway IP : default gateway ของเครื่อง
- Primary DNS Server : IP Addrss ของ DNS Server ตัวหลัก
- Secondary DNS Server : IP Addrss ของ DNS Server ตัวสำรอง (ถ้ามี)
เมื่อใส่เรียบร้อยแล้ว ให้เลื่อนมาที่ปุ่ม [Ok] แล้วกด [Enter]
หน้าจอจะกลับมาที่หน้า “Select A Device” กดปุ่ม [Tab] มาที่ปุ่ม [Save] แล้วกด [Enter]
หน้าจอจะกลับมาที่หน้า “Select Action” กดปุ่ม [Tab] เลื่อนมาที่ [Save&Quit] แล้วกด [Enter]
โปรแกรม system-config-network จะเข้าไปเปลี่ยนไฟล์คอนฟิกใน /etc/sysconfig/network-scripts/ เช่นเมื่อแก้ไข IP Address ของ eth0 โปรแกรมจะเปลี่ยนไฟล์
[root@cent6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 NM_CONTROLLED=yes ONBOOT=yes HWADDR=... TYPE=Ethernet BOOTPROTO=none IPADDR=192.168.5.162 PREFIX=24 GATEWAY=192.168.5.1 DNS1=192.168.5.1 DOMAIN=example.com DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" UUID=... NETMASK=255.255.255.0 USERCTL=no
แทนที่จะรันโปรแกรม system-config-network เราก็สามารถเข้ามาเปลี่ยนไฟล์นี้โดยตรงได้
หลังจากรันโปรแกรม หรือแก้ไขไฟล์ ifcfg-eth0 แล้ว ลองใช้คำสั่ง ifconfig ดู จะเห็นว่า IP Address ของพอร์ตแลน ยังคงเหมือนเดิม
[root@cent6 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr ...
inet addr:192.168.5.62 Bcast:192.168.5.255 Mask:255.255.255.0
ต้องรันคำสั่ง service network restart เพื่อให้อ่านคอนฟิกในส่วนเน็ตเวิร์กใหม่
คำเตือน หากมีการเปลี่ยน IP Address ของเครื่อง เช่นในตัวอย่างนี้ แนะนำให้ทำหน้าเครื่อง หรือจอคอนโซลของเครื่อง
ใช้คำสั่ง ifconfig เพื่อดู IP Address ของพอร์ต จะเห็นว่าเปลี่ยนเป็น IP ใหม่แล้ว
[root@cent6 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr ...
inet addr:192.168.5.162 Bcast:192.168.5.255 Mask:255.255.255.0
ใช้โปรแกรม system-config-network เพื่อเปลี่ยน hostname
พิมพ์คำสั่ง system-config-network เพื่อเข้าสู่โปรแกรม
[root@cent6 ~]# system-config-network
ในหน้าจอ “Select Action” ใช้ปุ่มลูกศร (cursor) ขึ้นลง เลื่อนมาที่ “DNS configuration” แล้วกด [Enter]
หน้าจอ “DNS configuration” แสดงคอนฟิก หากต้องการเปลี่ยนชื่อเครื่อง ก็แก้ไขในช่อง Hostname เช่นเปลี่ยนเป็น cent62.example.com
เมื่อแก้ไขเรียบร้อยแล้ว เลื่อนมาที่ปุ่ม [Ok] แล้วกด [Enter]
หน้าจอจะกลับมาที่หน้า “Select Action” กดปุ่ม [Tab] เลื่อนมาที่ [Save&Quit] แล้วกด [Enter]
หลังจากออกจากโปรแกรมแล้ว เช่นเดียวกับการเปลี่ยน IP คือคอนฟิกใหม่ยังไม่มีผล
[root@cent6 ~]# hostname
cent6.example.com
การแก้ไขชื่อ hostname นี้ โปรแกรมจะเข้าไปแก้ไขไฟล์ /etc/sysconfig/network
[root@cent6 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=cent62.example.com
เพื่อจะให้ชื่อ hostname ใหม่ (ไม่สามารถใช้คำสั่ง service network restart ได้ เพื่อเปลี่ยนชื่อได้)
มีผลทันที สามารถทำได้สองวิธี
- ใช้คำสั่ง shutdown -r now เพื่อรีบู๊ตเครื่องใหม่
- ใช้คำสั่ง hostname เพื่อเปลี่ยนชื่อใหม่เลย
ตัวอย่างการใช้คำสั่ง hostname เพื่อเปลี่ยนชื่อเครื่อง
[root@cent6 ~]# hostname cent6.example.com [root@cent6 ~]# hostname cent62.example.com [root@cent6 ~]# hostname cent62.example.com
ลอง logout แล้ว login ใหม่ด้วย root
จะสังเกตว่า พร็อมต์ เปลี่ยนไปเป็นขื่อใหม่แล้ว
[root@cent62 ~]# hostname
cent62.example.com
หมายเหตุ การเปลี่ยนชื่อ hostname อาจมีผลต่อโปรแกรมอื่นๆ ที่ใช้ชื่อ hostname ในการทำงาน เช่น X window หรือ แม้กระทั่ง syslog อาจมีปัญหาในการใช้งานได้ ต้องตามแก้เป็นโปรแกรมไป
สำหรับการหัดใช้ การรีบู๊ตเครื่องใหม่ หลังจากการเปลี่ยน hostname ก็อาจเป็นวิธีที่ง่ายกว่า