รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

Linux Server (CentOS) : แก้ไขชื่อ hostname เปลี่ยน IP Address

    หากเราต้องการแก้ไขชื่อ 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 ก็อาจเป็นวิธีที่ง่ายกว่า