แก้ไขชื่อ hostname เปลี่ยน IP Address ของ CentOS 6.2

หลังการ ติดตั้ง 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 ได้ เพื่อเปลี่ยนชื่อได้)

มีผลทันที สามารถทำได้สองวิธี

  1. ใช้คำสั่ง shutdown -r now เพื่อรีบู๊ตเครื่องใหม่
  2. ใช้คำสั่ง 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 ก็อาจเป็นวิธีที่ง่ายกว่า

 

Leave a Reply

Your email address will not be published.