วันศุกร์ที่ 11 ตุลาคม พ.ศ. 2556

วิธีการ Bypass บาง WebSite ไม่ให้ผ่าน Proxy

เนื่องจากว่า Proxy มีทั้งข้อดีและข้อเสีย

- ข้อดี คือ ทำให้เวปเร็วขึ้น
- แต่ข้อเสีย ก็คือ ทำให้เวปบางเวปช้าผิดปกติ หรือเข้าไม่ได้ หรือมีปัญหาเมื่อใช้งานผ่าน proxy

ยกตัวอย่างเช่น

การใช้งาน Web ข่าว www.thairath.co.th มาช้า หรือมาไม่ครบ ขาดๆ
หรือการเข้า Web www.icafeplus.net ไม่ได้  เป็นต้น

สามารถแก้ไขได้ดังนี้

ก่อนอื่นจะต้องทำการตรวจสอบก่อนว่า เวป ดังกล่าว มี ip อะไร

โดยใช้คำสั่ง nslookup จะได้ว่า

Name:    www.thairath.co.th
Address: 203.151.217.25, 203.151.217.76, 203.151.233.143

Name:   www.icafeplus.net
Address: 61.90.252.113

วิธีการคือ ให้เราทำการ -j ACCEPT ip ดังกล่าว ก่อนจะทำการ -j REDIRECT

โดยสามารถเข้าไปแก้ในไฟล์  /etc/init.d/tproxy.sh

โค๊ด:
#!/bin/bash

# This file is auto generate by xxxkung script

iptables -t nat -F TPROXY

### Bypass www.icafeplus.net
iptables -t nat -A TPROXY -i eth0 -d 61.90.252.113 -j ACCEPT

### Bypass www.thairath.co.th
iptables -t nat -A TPROXY -i eth0 -d 203.151.217.25 -j ACCEPT
iptables -t nat -A TPROXY -i eth0 -d 203.151.233.143 -j ACCEPT
iptables -t nat -A TPROXY -i eth0 -d 203.151.217.76 -j ACCEPT

### Redirect Trickster
iptables -t nat -A TPROXY -i eth0 -p tcp -d 61.90.203.0/24 --dport 5977 -j REDIRECT --to-port 8080
### Redirect Normal Web Port
iptables -t nat -A TPROXY -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

เป็นต้น

ลองนำไปทดลองกันดูนะครับ
[ความรู้ดีดีหาได้จาก] http://www.hadyaiinternet.com/index.php?topic=262.0

mii-tool คำสั่งในการตรวจสอบการเชื่อมต่อ

สำหรับคำสั่งที่ใช้ในการตรวจสอบ Link ต่าง ๆ ในการเชื่อมต่อระหว่าง LAN กับ Switch หรือ Router

ซึ่งจะได้ผลลัพธ์ ดังนี้

root@DSL-Gateway:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok
eth1: negotiated 1000baseT-HD flow-control, link ok
eth2: no link
eth3: no link
root@DSL-Gateway:~#

เป็นต้น

จะเห็นว่า
eth0 เชื่อมต่อแบบ 1000Mbps แบบ Full Duplex
eth1 เชื่อมต่อแบบ 1000Mbps แบบ Half Duplex
eth2 ไม่มีการเชื่อมต่อ
eth3 ไม่มีการเชื่อมต่อ

ลองศึกษาดูครับ

จะีมีประโยชน์สำหรับผู้ที่วาง Server ไว้คนละที่ หรือแอบๆไว้ ไม่ต้องก้มลงไปงมดูว่าสายต่ออยู่หรือไม่
=========================================================
เจอบทความดีดีจากพี่ๆทีมงานหาดใหญ่อินเทอร์เน็ทเลยโฟสเพื่อเก็บเอาไว้อ่าน
http://www.hadyaiinternet.com/index.php?topic=292.0

รวมคำสั่งพื้นฐานสำหรับผู้เริ่มต้นศึกษา Ubuntu

โครงสร้างของระบบ directory ของ Ubuntu

/  หรือ root directory
.../bin    เป็นไดเร็คทอรี่ที่ใช้เก็บไฟล์คำสั่งทั่วๆไป
.../boot  เป็นไดเร็คทอรี่ที่ใช้เก็บไฟล์ที่ใช้ในการ boot ระบบของ Ubuntu
.../dev    เป็นไดเร็คทอรี่ที่ใช้เก็บ device file ที่ใช้สำหรับการอ้างอิงไปยังอุปกรณ์ hardware ต่าง ๆ
.../etc     เป็นไดเร็คทอรี่ที่ใช้เก็บไฟล์ config ต่าง ๆ
.../home  เป็นไดเร็คทอรี่ home ของ user
.../lib       เป็นไดเร็คทอรี่ที่ใช้เก็บไฟล์ libary ต่าง ๆ
.../lost+found  เป็นไดเร็คทอรี่ที่ใช้เก็บ error ทั่วไปเกี่ยวกับ disk
.../media  เป็นไดเร็คทอรี่ที่ใช้เก็บ device file สำหรับอ้างอิงอุปกรณ์ media
.../proc    เป็นไดเร็คทอที่ใช้เก็บรายละเอียดของ process ต่างๆที่ทำงานอยู่
.../sbin    เป็นไดเร็คทอรี่ที่ใช้เก็บไฟล์คำสั่งของผู้ดูแลระบบ
.../tmp    เป็นไดเร็คทอรี่ที่ใช้เก็บไฟล์ชั่วคราว
.../usr     เป็นไดเร็คทอรี่ที่ใช้ในการ setup ระบบ
.../var     เป็นไดเร็คทอรี่ที่ใช้เก็บไฟล์ที่มีการเปลี่ยนแปลงตลอด เช่น logfile

=====================================================
คำสั่งเกี่ยวกับการจัดการไดเร็คทอรี่
- cd (change directory) เป็นคำสั่งที่เปลี่ยนไดเร็คทอรี่
- mkdir (make directoty) เป็นคำสั่งที่ใช้สร้างไดเร็คทอรี่
- pwd (print working directory) เป็นคำสั่งใช้แสดงไดเร็คทอรี่ที่กำลังใช้งานอยู่
- rmdir (remove directory) เป็นคำสั่งที่ใช้ลบไดเร็คทอรี่

ตัวอย่างการใช้งาน

- cd (change directory) เป็นคำสั่งที่เปลี่ยนไดเร็คทอรี่

cd
cd /etc
cd ..
cd -

- mkdir (make directoty) เป็นคำสั่งที่ใช้สร้างไดเร็คทอรี่

mkdir /var/spool/frox
mkdir /cow

- pwd (print working directory) เป็นคำสั่งใช้แสดงไดเร็คทอรี่ที่กำลังใช้งานอยู่

pwd

- rmdir (remove directory) เป็นคำสั่งที่ใช้ลบไดเร็คทอรี่

rmdir /tmp
=====================================================
คำสั่งเกี่ยวกับการจัดการไฟล์ข้อมูล
- ls (list) เป็นคำสั่งใช้แสดงไฟล์ข้อมูลและไดเร็คทอรี่ย่อย
- cp (copy) เป็นคำสั่งใช้ก๊อปปี้ไฟล์ข้อมูล
- mv (move) เป็นคำสั่งใช้ในการเปลี่ยนชื่อไฟล์ข้อมูล
- rm (remove) เป็นคำสั่งใช้ในการลบไฟล์ข้อมูล
- tar เป็นคำสั่งใช้ backup และ restore ข้อมูลต่าง ๆ

ตัวอย่างการใช้งาน
- ls (list) เป็นคำสั่งใช้แสดงไฟล์ข้อมูลและไดเร็คทอรี่ย่อย

ls
ls -l
ls -lash

- cp (copy) เป็นคำสั่งใช้ก๊อปปี้ไฟล์ข้อมูล

cp config.ini config.ini.backup
cp -R script /tmp/script

- mv (move) เป็นคำสั่งใช้ในการเปลี่ยนชื่อไฟล์ข้อมูล

mv config.ini.backup config.ini.backup2

- rm (remove) เป็นคำสั่งใช้ในการลบไฟล์ข้อมูล

rm config.ini.backup2
rm -Rf /tmp/script

- tar เป็นคำสั่งใช้ backup และ restore ข้อมูลต่าง ๆ

tar cvzf /home/multiwan multiwan.tar.gz
tar xvzf multiwan.tar.gz
 =====================================================
คำสั่งเกี่ยวกับสิทธิในการเข้าถึงข้อมูล

สิทธิ์ในการเข้าถึงข้อมูลจะแบ่งเป็น 3 ระดับคือ ระดับเจ้าของ (Owner) ระดับกลุ่ม (Group) ระดับบุคคลอื่น (Other)

สิทธิ์ในการกระทำกับข้อมูลแบ่งเป็น 3 ระดับคือ อ่าน (Read) เขียน (Write) ประมวลผล (Execute)

คำสั่งที่เกี่ยวข้องในการเปลี่ยนแปลงสิทธิ์เหล่านี้ได้แก่

- chgrp (change group)
- chown (change owner)
- chmod (change mode)

ตัวอย่างการใช้งาน

- chgrp (change group)

chgrp root /home/multiwan

- chown (change owner)

chown nobody.nogroup /var/spool/frox

- chmod (change mode)

chmod +x makeconfig.sh
 =====================================================

[ข้อมูลดีดีจาก]http://www.hadyaiinternet.com/index.php?topic=1481.0

วันพฤหัสบดีที่ 10 ตุลาคม พ.ศ. 2556

วิธีเพิ่ม hdd ใน linux

1. ปิดเครื่องแล้วใส่ hdd เข้าไป
2. ดูว่ามี hdd ที่เราใส่เข้าไปรึเปล่า
fdisk -l
จะได้แสดงข้อความประมาณนี้

Disk /dev/sda: 80.0 GB, 80000000000 bytes
255 heads, 63 sectors/track, 9726 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 9472 76083808+ 83 Linux
/dev/sda2 9473 9726 2040255 82 Linux swap / Solaris


Disk /dev/sdb: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table


3. ใช้คำสั่ง

fdisk /dev/sdb

ทำการสร้าง patition โดยการกด n
เสร็จแล้วให้กด w เพื่อ write สิ่งที่ทำ

(นึกไม่ออกให้กด m ดู help เอา)

4. ใช้คำสั่ง

mkfs.ext3 /dev/sdb1

เพื่อ format file system ของ partition ที่สร้าง

5. สร้าง folder ที่ต้องการเอามาใช้งาน
กรณีนี้ต้องการเอามาใช้เก็บ log ของ apache ก็ให้ใช้คำสั่ง

mkdir /var/log/httpd

6. ทดสอบการใช้งานโดยใช้คำสั่ง

mount -t ext3 /dev/hdb1 /test1

7. ตรวจสอบว่าถูกต้องหรือไม่โดยใช้คำสั่ง

df -h

จะแสดงผลดังตัวอย่าง

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 71G 64G 3.1G 96% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sdb1 74G 27G 44G 38% /var/log/httpd


8. หลังจากนั้นให้ทำการแก้ไขไฟล์ /etc/fstab โดยเพิ่มบรรทัดด้านล่างนี้

/dev/sdb1 /var/log/httpd ext3 defaults 1 2

9. restart เครื่องทีหนึ่งดูว่าทำการได้รึเปล่า ถ้าไม่มีปัญหาอะไรก็ถือว่าผ่าน


หมายเหตุ 1
คำอธิบายของ /etc/fstab

# device name   mount point     fs-type      options                 dump-freq pass-num
/dev/sdb1               /var/log/httpd          ext3    defaults        1 2


หมายเหตุ 2
ถ้า แก้ไข /etc/fstab แล้วเจอ error ว่าไฟล์ /etc/fstab มีปัญหาจะเข้าโหมด recover แล้วจะไม่สามารถแก้ไขไฟล์ /etc/fstab ได้ต้องใช้คำสั่ง

mount -n -o remount /

หรือถ้าต้องการระบุ hdd ก็ให้ใส่

mount -n -o remount -t ext2 /dev/sda2 /

(แค่ mount -n -o remount / ก็พอ)

คำสั่ง mount, umount

คำสั่ง mount, umount
: เชื่อมต่ออุปกรณ์ หรือ partition เช่น Diskette หรือ Handy drive
การใช้ mount เป็นสิ่งที่ผู้ดูแลระบบต้องเข้าใจหลักการให้ได้ เพราะเป็นช่องทางในการติดต่อกับอุปกรณ์ต่าง ๆ ล่าสุด ผมต่อ harddisk เข้าไปในเครื่อง server เพิ่มอีก 1 ตัว ซึ่งระบบมอง harddisk ตัวที่เพิ่มเข้าไปเป็น hdc ด้วยคำสั่ง fdisk -l เมื่อต้องการ partition ที่ 1 ของ hdc มาเป็นห้อง /x ก็เพียงแต่ใช้คำสั่งสร้างห้องคือ #mkdir /x สำหรับครั้งแรก แล้วใช้คำสั่ง #mount /dev/hdc1 /x ก็จะใช้ห้อง /x ซึ่งอยู่ใน harddisk อีกตัวหนึ่งได้ทันที
    คำสั่งที่เกี่ยวข้องกับคำสั่ง mount
      #cat /etc/fstab : ดู file system table เพื่อบอกว่ามีอะไร mount ไว้แล้วบ้าง
      #cat /etc/mtab : ดูรายละเอียดการ mount ในอีกรูปแบบหนึ่ง
      #cat /proc/mounts : บอกว่ามีอะไร mount ไว้แล้วบ้าง
      #cat /proc/partitions : บอกชื่อ และขนาดของแต่ละ partitions
      #cat /proc/filesystems : บอกประเภทของ filesystems ที่มีการสนับสนุน
      #/sbin/fdisk -l : แสดง partition จาก harddisk ทุกตัวที่เชื่อมต่อในเครื่องนั้น

    ตัวอย่างคำสั่ง และการใช้งาน
    #mount --bind /var/www /home/yourname/www
    #mount
    แสดงข้อมูลที่เคย mount ไว้ทั้งหมด

    วิธีใช้แผ่น Floppy Disk ใน linux
      #mkdir /floppy
      #mkfs -t ext3 /dev/fd0 1440
      #mount -t ext3 /dev/fd0 /floppy
      - or -
      #mkdir /floppy
      #mkfs -t msdos /dev/fd0 1440
      #mount -t msdos /dev/fd0 /floppy

      ต่อไปในห้อง /floppy ก็คือแผ่น disk ใน drive A ส่วน /dev/fd1 ก็คือ drive B แต่ต้องเริ่มทำใหม่นะครับ
    วิธีใช้ Handy Drive เช่น Apacer (ต้อง umount ก่อนดึง apacer ออกก่อนเสมอ)
      #mkdir /mnt/apacer (Just first time)
      #mount /dev/sda1 /mnt/apacer
      ...
      #cd /
      #umount /dev/sda1
      - and -
      #pico /etc/fstab Add: /dev/sda1 /mnt/apacer auto noauto,user 0 0
    วิธีเรียกใช้แฟ้มใน Partition อื่น เช่น WindowsXP
    cd / :: ย้ายตัวเองไปยัง root directory
    mkdir hd :: สร้างห้องชื่อ hd ซึ่งเป็นห้องเปล่าไม่มีอะไร
    fdisk -l :: ดูว่ามี partition อะไรในเครื่องบ้าง ที่ต้องการ mount เข้ากับ /hd
    mount /dev/hdb2 /hd :: ทำให้เรียกใช้ /dev/hdb2 จาก /hd ได้ เช่น cd /hd/etc ถ้าใน hdb2 มีห้องชื่อ etc
    umount /hd :: ยกเลิกการ mount /hd

    วิธีใช้ CDROM
    mount :: แสดงรายการอุปกรณ์ หรือห้องต่าง ๆ ที่ถูก mount ไว้แล้ว
    mount -t ext3 :: แสดงให้เห็นว่า partition แบบ ext3 มีอะไรถูก mount ไว้บ้าง
    mount -t vfat :: แสดงให้เห็นว่า partition แบบ vfat มีอะไรถูก mount ไว้บ้าง
    mount /dev/cdrom :: ใช้ติดต่อ CD ROM เมื่อเข้าไปใช้เช่น #cd /mnt/cdrom และใช้ #ls
    umount /dev/cdrom :: เพื่อเลิกใช้ CD ROM หรือต้องการดึงแผ่นออก แต่ท่านต้องออกมาก่อนด้วยคำสั่ง #cd / เป็นต้น
    eject :: ถ้าไม่ umount ด้านล่าง ก็สั่ง eject เพื่อดีด CD-ROM ออกได้เลยครับ และไม่ต้องสั่ง umount หรือออกจากห้องก่อนนะ

    ตัวอย่างผลการใช้คำสั่ง #mount ใน server ตัวหนึ่ง
    /dev/hda5 on / type ext3 (rw)
    none on /proc type proc (rw)
    /dev/hda1 on /boot type ext3 (rw)
    none on /dev/pts type devpts (rw,gid=5,mode=620)
    /dev/hda3 on /home type ext3 (rw)
    none on /dev/shm type tmpfs (rw)
    /dev/hda2 on /usr type ext3 (rw)
    /dev/hda6 on /var type ext3 (rw) 
    http://www.thaiall.com/isinthai/index.php?q=0219 
Android
in
Terminal Emulator
$mount
$umount
#mount
#umount

iftop คำสั่งดู Traffice

คำสั่งนี้ใช้ในการดู traffice ของ network


วิธีใช้งาน
iftop -i ethX ใช้ดู traffic ในวงขา Lan
iftop -i pppX ใช้ดู traffic ในวงขา WAN
 

นอกจากนั้นเรายังมี option เพิ่มเติม
-h display this message
-n don't do hostname lookups
-N don't convert port numbers to services
-p run in promiscuous mode (show traffic between other
hosts on the same network segment)
-b don't display a bar graph of traffic
-B Display bandwidth in bytes
-i interface listen on named interface
-f filter code use filter code to select packets to count
(default: none, but only IP packets are counted)
-F net/mask show traffic flows in/out of network
-P show ports as well as hosts
-m limit sets the upper limit for the bandwidth scale
-c config file specifies an alternative configuration file
แต่ที่เด็ดกว่านั้น ยังมี Filtering networks, hosts, and ports ที่ลุงชื่นชอบมากมาด้วย ดังนี้
1) dst host host
2) src host host
3) dst net net
4) src net net
5) dst port port
6) src port port
7) dst portrange start-end
8) src portrange start-end
9) gateway gateway
10) ip proto protocol
ตัวอย่าง
iftop -i eth0 -f “dst host linuxthai.com”
iftop -i eth0 -f “dst port 80″

 http://www.linuxthai.org/showthread.php?18635-iftop-%E0%B8%84%E0%B8%B3%E0%B8%AA%E0%B8%B1%E0%B9%88%E0%B8%87%E0%B8%94%E0%B8%B9-Traffice

ดักจับ Traffic ใน Network ด้วย tcpdump

tcpdump เป็นโปรแกรมประเภทเดียวกับ Sniffer, Wireshark คือใช้ในการดักจับ (capture) Traffic หรือ Packet ที่ รับ/ส่ง เข้า/ออก ระหว่างพอร์ตแลน (LAN) ของเซิรฟ์เวอร์เครื่องที่รันคำสั่ง และอุปกรณ์เครือข่าย (Router, Switch, HUB)
มีประโยชน์อย่างมาก เพื่อใช้ในการวิเคราะห์ ตรวจสอบ หรือแก้ปัญหาเกี่ยวกับ Network ได้
tcpdump ต้องรันด้วย root หรือเทียบเท่า และรันแบบ command line ติดตั้งมาเป็นดีฟอลต์บนลีนุกซ์เกือบทุกตระกูล เวอร์ชั่น จึงใช้งานได้สะดวก ไม่ต้องติดตั้งเพิ่มเติมเหมือนโปรแกรมอื่นๆ
ในที่นี้ขอแนะนำวิธีการใช้งานเบื้องต้นของ tcpdump


รันคำสั่ง tcpdump

ล็อกอินเป็น root แล้วพิมพ์คำสั่ง tcpdump
หมายเหตุ พอร์ตที่ใช้ในดักจับ packet ไม่จำเป็นต้องใส่ IP Address หรือเป็น IP ในกลุ่มเดียวกับ IP อื่นๆ ใน Network ที่ต้องการดักจับ ขอให้สถานะ Up พอ
หากไม่ระบุออปชั่นใดๆ เลย tcpdump จะเลือกดักจับ packet ที่เข้าออก พอร์ตแลนแรก โดยทั่วไปคือ eth0
ตัวอย่างการรันคำสั่งแบบไม่ระบุออปชั่น
[root@server ~]# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:15:53.948422 IP 192.168.1.102.jwalkserver > server.example.com.ssh: Flags [.], ack 1108, win 64623, length 0
09:15:53.955117 IP server.example.com.ssh > 192.168.1.102.jwalkserver: Flags [P.], seq 1108:1384, ack 1, win 8576, length 276
09:15:53.963948 IP server.example.com.ssh > 192.168.1.102.jwalkserver: Flags [P.], seq 1384:1548, ack 1, win 8576, length 164
09:15:53.964191 IP 192.168.1.102.jwalkserver > server.example.com.ssh: Flags [.], ack 1548, win 64183, length 0
09:15:53.972707 IP server.example.com.ssh > 192.168.1.102.jwalkserver: Flags [P.], seq 1548:1824, ack 1, win 8576, length 276
^C
102 packets captured
102 packets received by filter
0 packets dropped by kernel
กด [Ctrl-C] เพื่อออกจากคำสั่ง tcpdump ด้านล่างจะมีรายงานสรุปว่า ดักจับได้กี่ packet
ผลลัพธ์ที่แสดงจากคำสั่ง tcpdump จะแตกต่างกันไปขึ้นกับ Network Protocol ที่รับ/ส่ง เช่นถ้าเป็น IP Protocol (TCP, UDP) รูปแบบจะเป็น
  • เวลา
  • IP
  • [Source IP Address].[Source Port]
  • [Destination Address].[Destination Port]
  • IP, TCP, UDP Headers

เลือกพอร์ตที่ดักจับ

ระบุออปชั่น “-i” แล้วตามด้วยชื่อพอร์ต เช่น ต้องการจับ packet ที่เข้าออก eth1
[root@server ~]# tcpdump -i eth1
tcpdump: WARNING: eth1: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
ในที่นี้ พอร์ต eth1 ไม่มีการใส่ IP Address จึงขึ้นฟ้อง “WARNING: eth1: no IPv4 address assigned” แต่ก็ยังสามารถดักจับ Traffic ได้

ไม่ต้องแปลง IP เป็นชื่อ hostname

ผลลัพธ์ที่แสดงออกมา โปรแกรม tcpdump จะพยายามแปลง IP Address ทั้งต้นทาง ปลายทาง ของ packet ที่ดักจับได้ ให้เป็นชื่อ hostname โดยใช้ไฟล์ /etc/hosts หรือ บริการ DNS
ถ้าหาก traffic มีปริมาณมาก แนะนำให้ปิดคุณสมบัติการพยายามแปลง IP เป็น ชื่อ hostname ออกซะ ด้วยการระบุออปชั่น “-n” เพื่อลดโหลด DNS
[root@server ~]# tcpdump -i eth0 -l -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:31:10.322145 IP 192.168.1.1.ssh > 192.168.1.102.jwalkserver: Flags [P.], seq 1901277915:1901278111, ack 2244887520, win 8576, length 196
09:31:10.322752 IP 192.168.1.102.jwalkserver > 192.168.1.1.ssh: Flags [.], ack 196, win 65535, length 0
09:31:10.330843 IP 192.168.1.1.ssh > 192.168.1.102.jwalkserver: Flags [P.], seq 196:472, ack 1, win 8576, length 276
09:31:10.332785 IP 192.168.1.1.ssh > 192.168.1.102.jwalkserver: Flags [P.], seq 472:636, ack 1, win 8576, length 164
09:31:10.333209 IP 192.168.1.102.jwalkserver > 192.168.1.1.ssh: Flags [.], ack 636, win 65095, length 0
^C

ไม่ต้องแปลง Port Number เป็นชื่อ Port Name

หากต้องการแสดงชื่อพอร์ต (TCP, UDP ports) เป็นตัวเลข (ไฟล์ /etc/services)  ให้ระบุออปชั่น “-n” เพิ่มอีกหนึ่ง หรือระบุเป็น “-nn” เลย
[root@server ~]# tcpdump -i eth0 -l -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:39:38.800430 IP 192.168.1.102.1289 > 192.168.1.1.22: Flags [.], ack 196, win 65535, length 0
09:39:38.802793 IP 192.168.1.1.22 > 192.168.1.102.1289: Flags [P.], seq 196:456, ack 1, win 8576, length 260
09:39:38.805709 IP 192.168.1.1.22 > 192.168.1.102.1289: Flags [P.], seq 456:604, ack 1, win 8576, length 148
09:39:38.805963 IP 192.168.1.102.1289 > 192.168.1.1.22: Flags [.], ack 604, win 65127, length 0
09:39:38.808655 IP 192.168.1.1.22 > 192.168.1.102.1289: Flags [P.], seq 604:848, ack 1, win 8576, length 244
^C

ผลลัพธ์แบบสั้นๆ 

หากไม่สนใจ ข้อมูลใน IP, TCP, UDP Headers ต้องการรู้แค่ว่า IP อะไรคุยกัน ใช้พอร์ตอะไร แค่นั้นพอ ให้ระบุออปชั่น “-q”
[root@server ~]# tcpdump -i eth0 -l -nn -q
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:40:48.472427 IP 192.168.1.1.22 > 192.168.1.102.1289: tcp 196
09:40:48.473006 IP 192.168.1.102.1289 > 192.168.1.1.22: tcp 0
09:40:48.479252 IP 192.168.1.1.22 > 192.168.1.102.1289: tcp 164
09:40:48.487003 IP 192.168.1.1.22 > 192.168.1.102.1289: tcp 100
09:40:48.487311 IP 192.168.1.102.1289 > 192.168.1.1.22: tcp 0
^C

แสดงข้อมูล Layer 2 (MAC Address)

ระบุออปชั่น “-e”  หากต้องการแสดงข้อมูล Layer 2 หรือแสดง Source, Destination MAC Address ด้วย
[root@server ~]# tcpdump -i eth0 -l -nn -e -q
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:44:05.644395 00:11:22:33:44:55 > 00:55:66:77:88:99, IPv4, length 250: 192.168.1.1.22 > 192.168.1.102.1289: tcp 196
09:44:05.644959 00:55:66:77:88:99 > 00:11:22:33:44:55, IPv4, length 60: 192.168.1.102.1289 > 192.168.1.1.22: tcp 0
09:44:05.652121 00:11:22:33:44:55 > 00:55:66:77:88:99, IPv4, length 314: 192.168.1.1.22 > 192.168.1.102.1289: tcp 260
09:44:05.660897 00:11:22:33:44:55 > 00:55:66:77:88:99, IPv4, length 218: 192.168.1.1.22 > 192.168.1.102.1289: tcp 164
09:44:05.661173 00:55:66:77:88:99 > 00:11:22:33:44:55, IPv4, length 60: 192.168.1.102.1289 > 192.168.1.1.22: tcp 0
^C


save ผลลัพธ์เก็บในไฟล์

หากต้องการบันทึก (save) ผลลัพธ์ที่ดักจับได้ ให้เหมือนกับหน้าจอที่แสดงขึ้นมา ก็ใช้การ redirection
ตัวอย่าง การเก็บผลลัพธ์ลงไฟล์ ให้เหมือนกับที่แสดงขึ้นมา
[root@server ~]# tcpdump -i eth0 -l -nn -q > catpure-display.log
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
7 packets captured
7 packets received by filter
0 packets dropped by kernel
หากต้องการหยุด ก็กดปุ่ม [Ctrl-C] เหมือนกัน
ใช้คำสั่ง cat เพื่อดูเนื้อหาไฟล์ที่บันทึก
[root@server ~]# cat capture-display.log
09:57:08.118314 IP 192.168.1.1.22 > 192.168.1.102.1289: tcp 196
09:57:08.118515 IP 192.168.1.102.1289 > 192.168.1.1.22: tcp 0
09:57:09.138258 IP 192.168.1.102.1289 > 192.168.1.1.22: tcp 36
09:57:09.355761 IP 192.168.1.102.1289 > 192.168.1.1.22: tcp 36
09:57:09.356025 IP 192.168.1.1.22 > 192.168.1.102.1289: tcp 0
^C
 แต่ถ้าต้องการบันทึกแบบเต็มรูปแบบ ให้ใช้ออปชั่น “-w” แล้วตามด้วยชื่อไฟล์ โดยทั่วไปนิยมบันทึกเป็นไฟล์นามสกุล “.cap”
[root@server ~]# tcpdump -i eth0 -w capture-raw.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
24 packets captured
24 packets received by filter
0 packets dropped by kernel
ไฟล์ที่บันทึกด้วยออปชั่น “-w” สามารถนำมาเปิดย้อนหลังด้วยคำสั่ง tcpdump ตามด้วยออปชั่น “-r”  นอกจากนี้ ยังสามารถนำไปเปิดกับโปรแกรม Wireshark ได้อีกด้วย
[root@server ~]# tcpdump -r capture-raw.cap -l -nn
reading from file capture-raw.cap, link-type EN10MB (Ethernet)
10:00:14.959339 IP 192.168.1.102.1289 > 192.168.1.1.22: Flags [P.], seq 105:157, ack 236, win 65431, length 52
10:00:14.972070 IP 192.168.1.1.22 > 192.168.1.102.1289: Flags [P.], seq 236:288, ack 157, win 8576, length 52
10:00:15.137079 IP 192.168.1.102.1289 > 192.168.1.1.22: Flags [.], ack 288, win 65379, length 0
10:00:15.221339 IP 192.168.1.102.1289 > 192.168.1.1.22: Flags [P.], seq 157:209, ack 288, win 65379, length 52
10:00:15.227905 IP 192.168.1.1.22 > 192.168.1.102.1289: Flags [P.], seq 288:340, ack 209, win 8576, length 52
^C

ข้อมูลอ้างอิง