Friday, September 30, 2011

วิธี Configure IP Address บน Linux และ คำสั่งเกี่ยวกับ Network ที่น่าสนใจ

เมื่ออาทิตย์ที่แล้วผมต้องติดตั้ง Ubuntu 8.04 Server Edition ลงบนเครื่องเซิร์ฟเวอร์ Dell PowerEdge 200 ที่เพิ่งซื้อมาใหม่ทั้ง 3 เครื่อง สิ่งหนึ่งที่ผมต้องทำระหว่างติดตั้งก็คือการ Configure IP Address และการใช้คำสั่งเกี่ยวกับ Network บน command line...
ผมเห็นว่าวิธีการ Configure IP Address และการใช้ network command บน Linux จริง ๆ แล้วมันก็ไม่ได้น่ากลัวอะไร แต่ผู้ใช้มือใหม่ไม่กล้าใช้กัน ประกอบกับผมไปเจอบทความดี ๆ เข้า ก็เลยผมอยากแปลเพื่อเผยแพร่และรวมรวมคำสั่งเกี่ยวกับ network ต่าง ๆ ที่น่าสนใจ เพื่อที่จะได้เป็นประโยชน์กับผู้อื่นดีกว่า
หมายเหตุ: ระบบที่ผมทดลองคือ Ubuntu ดังนั้นคำสั่งบางคำสั่งอาจจะใช้ได้เฉพาะ Linux ตระกูล Debian เท่านนั้น

วิธีการกำหนด IP Addressให้ network adapter

Linux มีไฟล์หนึ่งที่ชื่อว่า /etc/network/interfaces ซึ่งใช้เก็บ configuration ของ network interfaces แต่ละอันในเครื่อง ดังนั้นหากเราจะ Configure IP Address ก็จะต้องแก้ไขไฟล์ดังกล่าว
วิธีการกำหนด IP Address โดยทั่วไปก็มีอยู่ 2 วิธี ได้แก่:
  1. Static IP Configuration - IP Address จะถูกกำหนดโดยผู้ดูแลระบบ ซึ่งมีวิธีการ configure ดังนี้:
    • เปิด network configuration file (/etc/network/interfaces) ด้วย Text Edition ที่คุณถนัด
      $ sudo vim /etc/network/interfaces
    • เพิ่ม Static IP Configuration สำหรับ network adapter สมมติว่าค่าต่าง ๆ ที่ผมต้องการคือ:
      • network adapter คือ eth0
      • IP Address คือ 192.168.0.70
      • Netmask คือ 255.255.255.0
      • Network คือ 192.168.0.0
      • Broadcast IP Address คือ 192.168.0.255
      • Gateway คือ 192.168.0.1
      ผมก็เติมบรรทัดเหล่านี้เข้าไปในไฟล์ /etc/network/interfaces
      iface eth0 inet static address 192.168.1.70 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
    • บันทึกไฟล์และปิด Text Editor แล้วจึง restart networking services
      $ sudo /etc/init.d/networking restart
  2. DHCP network configuration - IP Address จะถูกกำหนดโดย DHCP Server ที่อยู่ใน network ซึ่งมีวิธีการ configure ดังนี้:
    • เปิด network configuration file (/etc/network/interfaces) ด้วย Text Edition ที่คุณถนัด
      $ sudo vim /etc/network/interfaces
    • เพิ่ม DHCP network Configuration สำหรับ network adapter เข้าไปในไฟล์ /etc/network/interfaces
      iface eth0 inet dhcp
    • บันทึกไฟล์และปิด Text Editor แล้วจึง restart networking services
      $ sudo /etc/init.d/networking restart

วิธีการกำหนด DNS Server

เราสามารถเพิ่มลด DNS Server ที่เราใช้ในการ look-up IP Address ได้โดยการแก้ไขไฟล์ /etc/resolv.conf
สมมติว่าคุณต้องการเพิ่ม 203.144.207.49 เป็น Primary DNS Server
  • เปิดไฟล์ /etc/resolv.conf ด้วย Text Edition ที่คุณถนัด
    $ sudo vi /etc/resolv.conf
  • เพิ่มบรรทัดต่อไปนี้เข้าไปก่อนหน้าบรรทัดอื่น ๆ ที่ขึ้นต้นด้วยคำว่า nameserver
    nameserver 203.144.207.49
หมายเหตุ: ในการ resolve IP Address นั้นจะเริ่มจาก name server ตัวแรกที่ปรากฎในไฟล์ก่อน แล้วค่อยไปค้นหาใน name server ตัวต่อ ๆ ไป

วิธีการ Resolve IP address

$ host www.yannarak.net

วิธีการจับคู่ IP Address กับ Hostname ด้วย Hosts file

ในบางกรณี คุณไม่สามารถใช้ DNS Server ในการ resolve IP ได้ ยกตัวอย่างเช่น localhost เป็นต้น ดังนั้นในระบบปฎิบัติการจึงต้องมีวิธีการที่ใช้ในการจับคู่ระหว่าง IP Address กับ Host name แบบ static โดยไม่ใช้ DNS Server ด้วย สำหรับ Linux มีไฟล์ที่ชื่อว่า /etc/hosts ซึ่งใช้ในการทำงานดังกล่าว
ตัวอย่างไฟล์/etc/hosts
127.0.0.1 localhost pegasus 192.168.1.35 www.mywebsite.com
รูปแบบของไฟล์ /etc/hosts คือ IP address เป็นฟิลด์แรก และ ฟิลด์ต่อ ๆ ไป คือ hostname ที่จะจับคู่กับ IP ดังกล่าว แต่ละฟิลด์จะคั่นด้วย white-space character ดังนั้น จากไฟล์ตัวอย่าง เราสามารถแทน IP 127.0.0.1 ได้ด้วย 2 hostname คือ localhost และ pegasus ส่วน IP 192.168.1.35 เราสามารถแทนได้ด้วย hostname เพืยงอันเดียวคือ www.mywebsite.com เป็นต้น

วิธีการแสดงสถานะของ network adapter

หลังจากที่เราได้ configure IP address ให้กับ network adapter แล้ว หากเราต้องการตรวจสอบสถานะของ network adapter นั้น ๆ ตรงตามที่เราต้องการหรือไม่เราก็สามารถตรวจสอบได้โดยใช้ คำสั่ง ifconfig ดังตัวอย่างต่อไปนี้:
$ ifconfig eth0
ต่อไปนี้เป็นตัวอย่าง ผลลัพธ์ที่ได้จากคำสั่งดังกล่าว
eth0 Link encap:Ethernet HWaddr 00:1e:37:ab:cd:ef inet addr:192.168.0.70 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::21e:37ff:fe8e:7ae1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:353 errors:0 dropped:0 overruns:0 frame:0 TX packets:442 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:191447 (186.9 KB) TX bytes:128793 (125.7 KB) Base address:0x1840 Memory:fe000000-fe020000
ถ้าหากต้องการให้แสดงสถานะของ network interface ทุกอันในเครื่อง ก็ทำได้ง่ายเพียงแค่สั่งคำสั่ง ifconfig เฉย ๆ โดยไม่ต้องส่ง parameter ใด ๆ

วิธีการเปลี่ยน IP Address และ Netmask

คำสั่ง ifconfig นอกจากจะใช้ในการแสดงสถานะของ network adapter แล้ว ยังสามารถใช้ในการเปลี่ยน IP Address และ Netmask ของ network adapter ได้อีกด้วย
สมมติว่าเราต้องการเปลี่ยน IP Address ของ eth0 ให้เป็น 10.10.13.64 และ Netmask เป็น 255.255.0.0 ก็ทำได้ด้วยคำสั่งต่อไปนี้:
$ sudo ifconfig eth0 10.10.13.64 netmask 255.255.0.0 up

วิธีการเปิด/ปิด การทำงานของ network adapter

นอกจากนี้ คำสั่ง ifconfig ก็ยังเป็นคำสั่งที่ใช้ในการเปิด/ปิด network adapter อีกด้วย
คุณสามารถเปิดการใช้งาน network adapter ด้วยคำสั่ง:
$ sudo ifconfig eth0 up
หรือ
$ sudo ifup eth0
คุณสามารถปิดการใช้งาน network adapter ด้วยคำสั่ง:
$ sudo ifconfig eth0 down
หรือ
$ sudo ifdown eth0

วิธีการแสดง routing table

คุณสามารถใช้คำสั่งต่อไปนี้ในการแสดง routing table ได้
$ /sbin/route
หรือ
$ /sbin/route -n
ตัวอย่างผลลัพธ์ของคำสั่ง route
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.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 1000 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

วิธีการกำหนด Default Gateway

$ sudo route add default gw 172.16.236.0
ถ้าหากเครื่องที่คุณต้องการกำหนด Default Gateway ได้ถูกกำหนด Default Gateway ไว้แล้วคุณต้องลบ route สำหรับ Default Gateway อันเดิมก่อนด้วยคำสั่งต่อไปนี้ก่อนที่จะเรียกคำสั่งด้านบน
$ sudo route del default

วิธีการแสดงรายการ Active Internet Connections (ทั้ง server และ connection ที่เชื่อมต่อเรียบร้อยแล้ว)

$ netstat -nat

วิธีการแสดงว่า Port อะไรกำลังเปิดอยู่บ้าง

$ sudo netstat -tulp
หรือ
$sudo netstat -tulpn

วิธีการแสดงข้อมูลสถิติของแต่ละ network adapter

$sudo netstat -i
ที่มา: Howto: Ubuntu Linux convert DHCP network configuration to static IP configuration

0 comments:

Post a Comment

 
Design by GURU