linux training in Thailand
| Home | Articles | Download | Free Linux Tips | Resources | Training | Web Link | Linux Training English|
| Courses | Schedule | Price & Promotion | Map | Customer Ref. | Instructors | Certification | FAQ | Registration Form |
สถาบันฯ ขอแจ้งปิดทำการระหว่างวันที่ 27 -31 กรกฏาคม 2558 และเปิดทำการปกติวันที่ 3 สิงหาคม 2558
We are on vacations 5 days in July 27-31, 2015 Please contract Line ID : nok_fly or e-mail : info@itdestination.com
ITDestination จะปิดปรับปรุงเว็บไซต์ ตั้งแต่วันที่ 7 - 9 มิถุนายน 2556
อาจจะทำให้ใช้งานไม่ได้ในบริการ Webboard Freetips และ E-Learning จึงขออภัยในความไม่สะดวกมา ณ ที่นี้
สถาบันฯ ขอแจ้งปิดทำการวันที่ 22-28 กุมภาพันธ์ 2560 และจะเปิดทำการปกติในวันที่ 1 มีนาคม 2560
กรณีติดต่อส่งข้อความมาที่ Facebook: LinuxITDestination หรือ e-mail: info@itdestination.com ซึ่งจะติดต่อกลับประมาณ 17.00 น.
ผู้ลงทะเบียนอบรมสามารถทำข้อสอบ online ในช่วงที่มาอบรมเพื่อทบทวนความรู้ ทำได้ไม่จำกัดจำนวนครั้ง มีข้อเฉลยที่ถูกต้องแนะนำ
สอบถามรายละเอียดโทร 089 890-5494 >>> อ่านรายละเอียด... คลิ๊ก

ทางเลือกใหม่ที่จะเข้าสู่อินเตอร์เน็ตด้วย Linux


โดย ธีรภัทร มนตรีศาสตร์


         ในปัจจุบัน Linux เป็นระบบปฏิบัติการที่กำลังได้รับความสนใจเพิ่มขึ้นอย่างมาก เนื่องจากมีการแจกจ่าย
ให้แก่ผู้ใช้โดยไม่เสียค่าใช้จ่าย นอกจากนี้ยังมีซอฟต์แวร์ประเภทต่าง ๆ สนับสนุนเป็นจำนวนมาก จึงมีการนำลีนุกซ์
มาใช้ประโยชน์ในด้านต่าง ๆ อย่างกว้างขวาง ทั้งในงานด้านเดสทอป และระบบเครือข่าย
         การเชื่อมต่อเข้าสู่อินเตอร์เน็ตเป็นการนำลีนุกซ์มาใช้ประโยชน์ได้ทั้งในฐานะเครื่องเดสทอป คือ ใช้งาน
อินเตอร์เน็ตทั่วไป หรือในฐานะของเซิร์ฟเวอร์ เช่น คอนเน็คเข้าสู่อินเตอร์เน็ตเพื่อรับส่งอีเมล์ หรือเป็นอินเตอร์เน็ต
เกตเวย์ ซึ่งสามารถทำได้หลายวิธี 
         เนื่องจากมีโปรแกรมที่ช่วยจัดการเกี่ยวกับการเชื่อมต่อเข้าสู่อินเตอร์เน็ตนี้เป็นจำนวนมาก เช่น การใช้โปรแกรม 
Linuxconf , โปรแกรม kppp ที่มาพร้อมกับ KDE หรือ RH3 ทีมาพร้อมกับ GNOME ซึ่งโปรแกรมทั้งหลายเหล่านี้
ล้วนแล้วแต่ช่วยอำนวยความสะดวกให้แก่ผู้ใช้ โดยมีลักษณะเป็นเมนู หรือไดอะล๊อกช่วยให้สามารถคอนฟิกได้ง่าย และ
รวดเร็ว 
         แต่ในที่นี่จะเสนออีกวิธีหนึ่ง โดยใช้โปรแกรมในระดับ Console คือ โปรแกรม wvdial ( ออกเสียงว่า "วีฟไดอัล" )
การเชื่อมต่อเข้าสู่ ISP ด้วย wvdial
          ในกรณีที่ต้องการเชื่อมต่อเข้าสู่ Internet Service Provider โดยการใช้โมเด็ม จะต้องทำการสั่งงาน
       โมเด็มผ่าน Daemon ชื่อ pppd ซึ่งจะควบคุมการสื่อสารกับฝ่ายตรงกันข้าม ด้วยโปรโตคอล PPP
          การสั่งงาน pppd สามารถกระทำได้หลายวิธี เช่น การใช้โปรแกรม kppp ซึ่งเป็นซอฟต์แวร์ที่รันบน KDE 
     จึงต้องอาศัยการทำงานบนระบบ X Window ทำให้ไม่เหมาะสมกับการสั่งให้เชื่อมต่อเข้าสู่อินเตอร์เน็ตจาก 
     Console ,จาก Script หรือแบบตั้งเวลาไว้ล่วงหน้า
โปรแกรม wvdial - Dial-up Networking for Linux
           โปรแกรม wvdial เป็นโปรแกรมที่ทำหน้าที่ควบคุมการติดต่อกับ ISP ผ่าน pppd โดยสั่งงานผ่าน
       Text Console และการเขียน Script ได้ มีส่วนประกอบ 2 ส่วน คือ
         1. ส่วนตัวโปรแกรม wvdial เอง ซึ่งจะอยู่ที่ /usr/bin/wvdial และ /usr/bin/wvdialconf
         2. Configuration File ของ wvdial คือ  /etc/wvdial.conf   

เราสามารถตรวจสอบการติดตั้งโปรแกรม wvdial นี้ได้ด้วยคำสั่ง rpm ดังนี้
rpm -qi wvdial
      ก่อนที่จะใช้งาน wvdial จะต้องเตรียมการต่าง ๆ เสียก่อน ดังนี้
         1. ติดตั้งโมเด็มเข้ากับเครื่องคอมพิวเตอร์ และเปิดโมเด็มไว้ด้วย
         2. ล๊อกอินเข้าระบบในฐานะ root แล้วเรียกโปรแกรม wvdialconf 
             เพื่อสร้าง Configuration File ขึ้นดังนี้
wvdialconf /etc/wvdial.conf
          โปรแกรม wvdialconf จะทำการตรวจค้นหาโมเด็มที่ต่ออยู่ที่พอร์ตอนุกรม แล้ววิเคราะห์หาค่า 
       Initialize String ที่เหมาะสมโดยอัตโนมัติ จากนั้นจะสร้างแฟ้ม /etc/wvdial.conf ขึ้นเอง
Scanning your serial ports for a modem
port scan <*1> :  S0
tty S1 <*1>  :  ATQ0  V1   E1  -  -   OK
tty S1 <*1>  :  ATQ0  V1   E1   Z -  -   OK		
tty S1 <*1>  :  ATQ0  V1   E1   S0=0  -  -   OK
tty S1 <*1>  :  ATQ0  V1   E1  S0=0&C1  -  -   OK
tty S1 <*1>  :  ATQ0  V1   E1  S0=0&D2  -  -   OK
tty S1 <*1>  :  ATQ0  V1   E1  S0=0&C1  S11  = 55  - -   OK
tty S1 <*1>  :  ATQ0  V1   E1  S0=0&C1 S11  = 55  +FCLASS  -  -   OK
ttyS1<*1>    :  Modem  Identifier  :  ATI - - 336
ttyS1<*1>    :  speed  	2400  :  AT  -  -  OK 
ttyS1<*1>    :  speed  	4800  :  AT  -  -  OK
ttyS1<*1>    :  speed  	9600  :  AT  -  -  OK
ttyS1<*1>    :  speed  	19200  :  AT  -  -  OK
ttyS1<*1>    :  speed  	38400  :  AT  -  -  OK
ttyS1<*1>    :  speed  	57600  :  AT  -  -  OK
ttyS1<*1>    :  speed  	115200  :  AT  -  -  OK
ttyS1<*1>    :  Max speed is 115200 ;  that should be safe.
ttyS1<*1>    :  AT Q0  V1  E1  S0=Q &C1  &D2  S11 = SS   +  FCLASS =0 - - OK
Port Scan <*1>  :  S3
Found a modem  on  /dev/ttyS1
/etc/wvdial  conf  :  Can't  read config file  /etc/wvdial.conf  :  No such file or 
directory
ttyS1 < Info >  :  speed 115200;  init  "ATQ0 V1 E1 S0=0  &C1  &D2  S11=55  + FCLASS=0"

      3. ใช้ Text Editor เช่น pico เปิดแฟ้ม /etc/wvdial.conf ขึ้น จะเห็นข้อความภายในดังนี้
pico /etc/wvdial.conf

ข้อความที่ wvdialconf สร้างขึ้นในแฟ้ม wvdial.conf
[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
; Phone = 
; Username = 
; Password = 

     4.  แก้ไขข้อความส่วนที่เกี่ยวกับ Username ,Password และ Phone 
          ให้ตรงกับ Internet Account ที่ต้องการใช้งาน
[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
Phone = 5516000
Username = myloginname
Password = secretword

     5. เมื่อต้องการใช้งานให้เรียกคำสั่ง wvdial จาก Console ได้โดยตรง
wvdial
     wvdial จะเริ่มสั่งให้โมเด็มโทรออกไปยังเลขหมายที่กำหนดไว้ในแฟ้ม wvdial.conf 
     และทำการเชื่อมต่อเข้ากับทางผู้ให้บริการอินเตอร์เน็ต ดังรูป
- - > WwDial  :  Internet dialer version 1.41
- - > Initializing  modem
- - > sending  :  ATZ
ATZ
OK
- - > sending  :  ATQ0   V1  E1  S0=0  &C1  &D2  S11=55  +FCLASS=0
ATQ0  V1  E1  S0=Q  &C1  &D2   S11=55  +FCLASS=0
OK
- - >  Modem  initialized.
- - >  sending:ATDT   5516000
- - >  Waiting  for  carrier.
ATDT  5516000
CONNECT  115200/V42BIS
- - > Carrier  detected.  Waiting  for  prompt .
Welcome  to  INTERNET  KSC 
Username:
- - >  Looks  like  a  login   prompt .
- - >  sending  :  nutnok
nutnok1
password: 
- - > Looks  like  a  password  prompt . 
- - > Sending  :  ( Password )
- - > Don't  know what to do !  Starting  pppd  and  hoping for the best . 
- - > Starting  pppd at Mon Mar 26  17:34:56  2001
     6. เมื่อเชื่อมต่อได้สำเร็จแล้ว ให้เปิด Virtual Terminal ขึ้นใหม่ โดยกด Alt-F2 จะเป็นการเปิด tty2 
         แล้วล๊อกอินเป็น root
     7. ทดลองใช้คำสั่ง route -n เพื่อตรวจสอบการทำงานของ pppd หาก pppd ทำงานจะเห็น route 
         ของ device ที่ชื่อ ppp0 ปรากฏขึ้นดังรูป
Kernel IP routing table
Destination     	Gateway         	Genmask         	Flags    Metric       Ref    Use    Iface
192.168.0.1     	0.0.0.0         	255.255.255.255 	UH      	0        	0        0      eth0
203.155.35.227  	0.0.0.0         	255.255.255.255 	UH       	0    	0        0      ppp0
192.168.0.0     	0.0.0.0         	255.255.255.0   	U          	0        	0        0      eth0
127.0.0.0       	0.0.0.0         	255.0.0.0       	U          	0        	0        0        lo
0.0.0.0         	203.155.35.227  	0.0.0.0         	UG        	0        	0        0      ppp0
     8. เนื่องจากการท่องไปในเครือข่ายอินเตอร์เน็ตจำเป็นต้องอาศัยการ resolve ชื่อโดเมนเนมจากโดเมนเนมเซิร์ฟเวอร์
         ( DNS Server ) จึงต้องกำหนดค่าไอพีแอดเดรสของโดเมนเนมเซิร์ฟเวอร์ของผู้ให้บริการอินเตอร์เน็ตให้แก่ลีนุกซ์
         ด้วย โดยใส่ใว้ในแฟ้ม /etc/resolv.conf  ดังนี้
pico /etc/resolv.conf
nameserver 203.155.33.1
nameserver 202.44.144.33
         จากตัวอย่างเป็นหมายเลขไอพีแอดเดรสของ DNS Server ของ KSC

     9. หลังจากบันทึกแฟ้ม /etc/resolv.conf แล้ว ให้ทดสอบโดยการ ping ไปยังเว็ปไซต์อะไรก็ได้ เช่น 
         www.yahoo.com เป็นต้น
ping www.yahoo.com -i15

PING www.yahoo.akadns.net (204.71.200.74) from 203.155.129.178 : 56(84) bytes of data.
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=0 ttl=242 time=929.3 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=1 ttl=242 time=839.9 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=2 ttl=242 time=930.0 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=3 ttl=242 time=869.9 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=4 ttl=242 time=920.0 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=5 ttl=242 time=869.9 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=6 ttl=242 time=920.0 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=7 ttl=242 time=919.9 ms

--- www.yahoo.akadns.net ping statistics ---
9 packets transmitted, 9 packets received, 0% packet loss
round-trip min/avg/max = 839.9/902.0/930.0 ms

         เนื่องจากคำสั่ง ping จะกระทำอย่างต่อเนื่อง ดังนั้นจึงเป็นการช่วยให้เกิดการติดต่อไปยังผู้ให้บริการ
         อินเตอร์เน็ตอย่างต่อเนื่อง เปรียบเสมือนการใช้โปรแกรมประเภท Stay Connect ซึ่งช่วยให้ปัญหาที่
         คอนเน็คชั่นจะถูกตัดลดน้อยลงได้

     10. ในขณะนี้การเชื่อมต่ออินเตอร์เน็ตได้เสร็จสมบูรณ์แล้ว พร้อมที่จะใช้งานได้ หากต้องการใช้งานใน 
        X Window ก็สามารถเข้าสู่ X Window ด้วยคำสั่ง startx และใช้งาน Netscape Communicator 
        ได้ทันที


การปรับแต่งให้มีตัวเลือกในการเชื่อมต่อผู้ให้บริการอินเตอร์เน็ต
        หากมี Internet Account จำนวนมากกว่า 1 แห่ง และต้องการเลือกใช้งานได้ สามารถแบ่งคอนฟิกของ 
        wvdial.conf ออกเป็น section ย่อย ๆ ได้ดังนี้
[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
[ KSC ]
Phone = 5516000
Username = myloginname
Password = secretword
[ LOXINFO ]
Phone = 7329999
Username = anothername
Password = secretkey
        จากตัวอย่าง แสดงให้เห็นว่ามี 2 Internet Account ชื่อ KSC และ Loxinfo ซึ่งสามารถเลือกใช้งานได้จาก
        การระบุชื่อของ section ต่อท้ายคำสั่ง wvdial เช่น หากต้องการเชื่อมต่ออินเตอร์เน็ตด้วย KSC ให้เรียกคำสั่ง
wvdial ksc
	เมื่อต้องการเชื่อมต่อด้วย Loxinfo ให้เรียกคำสั่ง
wvdial loxinfo
การยกเลิกการทำงานของ wvdial
        การยกเลิกการเชื่อมต่อกับผู้ให้บริการอินเตอร์เน็ต หรือออกจากโปรแกรม wvdial สามารถทำได้โดย
        กด Ctrl-C เพื่อออกจากโปรแกรม หรือ จะใช้วิธี Kill Process ที่ wvdial กำลังทำงานอยู่ก็ได้ 
killall wvdial
       หลังจากที่ได้ทดลองใช้งาน wvdial แล้ว จะเห็นได้ว่ามีความสะดวกในการคอนฟิกพอสมควร รวมทั้งยังมี
       ความแม่นยำในการคอนเน็คดีกว่า kppp ของ KDE และข้อสำคัญคือมีความยืดหยุ่นในการประยุกต์ใช้งานมากกว่า 
       เนื่องจากสามารถเรียกใช้งานได้จาก script ที่เราเขียนขึ้นได้นั่นเอง