Web proxy in freeBSD with Squid

หาที่อยู่ Ports ก่อนครับ
>whereis squid
/usr/ports/www/squid
เข้าไปที่ Ports เพื่อติดตั้ง
>cd /usr/ports/www/squid
>make all
>make install
แก้ไข config ของ squid
> vi /usr/local/etc/squid/squid.conf
หาบรรทัดต่าง ๆ ต่อไปนี้

# http_port 3128 — เอา # ออก
# icp_port 3130 — เอา # ออก

#cache_dir ufs /usr/local/squid/var/cache 100 16 256 — เอา # ออก
#cache_access_log /usr/local/squid/var/logs/access.log — เอา # ออก
#cache_log /usr/local/squid/var/logs/cache.log — เอา # ออก
#cache_store_log /usr/local/squid/var/logs/store.log — เอา # ออก

http_access deny all — เปลี่ยนเป็น http_access allow all

ใส่ visible_hostname แล้วตามด้วยชื่อ host ของคุณ

ตัวอย่าง visible_hostname 192.168.1.1

จาก Path File ข้างบน Squid จะ Cache file ไว้ที่ /usr ซึ่งจะทำให้ Volume เต็มได้ ให้ทำการย้าย Path ทั้งหมดมาเก็บไว้ที่ /var แต่วิธีแก้ไขง่ายๆ คือทำ Link File ดังนี้

เราจะย้าย Path ตั้งแต่ /usr/local/squid ให้ไปอยู่ที่ /var/squid

สร้าง Directory squid
>mkdir /var/squid

>ln -s /var/squid /usr/local/squid

สร้าง directory cache และ file log ที่ /var/squid/

> mkdir /var/squid/cache
> chown -R nobody:nogroup /var/squid
> chmod -R 777 /var/squid/
> cd /var/squid/logs
> touch access.log cache.log store.log
> chmod 777 *

>/usr/local/sbin/squid -z * ถ้าเกิด error ให้กลับไปดู visible_hostname

run squid เป็น background

> /usr/local/squid/bin/RunCache &

ดูว่า squid ทำงานหรือไม่ โดย

> ps -ax grep RunCache

ถ้ามี process 13625 p0 I 0:00.00 /bin/sh ../bin/RunCache แบบนี้แสดงว่าทำงานแล้ว

ให้ squid ทำงานทุกครั้งเมื่อ reboot เครื่อง

> vi /etc/rc.local

ใส่ข้อความดังนี้เพิ่มเข้าไป/usr/local/squid/bin/RunCache &

จากนั้นให้ทำการทดสอบ โดย set Browser ของท่านให้ทำงานผ่าน Proxyโดยใส่ IP ของ server และ port 3128

#—————————-Debug——————————-
>/usr/local/squid/bin/RunCache & [1] 1071
> Running: squid -sY >> /usr/local/squid/var/squid.out 2>&1
Abort trap
Running: squid -sY >> /usr/local/squid/var/squid.out 2>&1
Abort trap
Running: squid -sY >> /usr/local/squid/var/squid.out 2>&1
Abort trap
Running: squid -sY >> /usr/local/squid/var/squid.out 2>&1
Abort trap
Running: squid -sY >> /usr/local/squid/var/squid.out 2>&1
Abort trap
Running: squid -sY >> /usr/local/squid/var/squid.out 2>&1
Abort trap
RunCache: EXITING DUE TO REPEATED, FREQUENT FAILURES

ให้ตรวจสอบ Permission , Directory ,File ใน /var/squid ว่า Set ถูกหรือไม่ หรือ

>more /usr/squid/squid.out ดู Error ก็ได้