انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: ایجاد یک کش سرور محلی squid ( توسط یک آماتور )  (دفعات بازدید: 39088 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین HardyLaity

  • Hero Member
  • *
  • ارسال: 730
درود به همگی

باز شنبه - یکشنبه شد و بیکاری فشار آورد افتادم به جون این اوبنتو  ;)

خوب یکی از مشکلاتی که ما تو ایران داریم پهنای بانده و خیلی از زمانهائی که پشت اینترنت هستیم به باز کردن وب سایتها میگذره (‌به قول دوستان وب گردی  :D )

من همیشه کش فایر فاکس رو زیاد میکنم مثلا روی ۱۰ گیگ ولی آنچنان تغییری احساس نمیکردم ( نمیدونم شاید توسط کش سرور آی اس پی زمان صفحات دستکاری میشه که مرتب دانلود کنم و باند مشغول باشه البته این یه حدس هستش از یه آدم آماتور )

خوب ابن کش سرور حالا به چه درد میخوره ، میدونم که همه شما این مطالبی که میخوام بگم رو استادین ولی شاید یکی مثل من باشه که ندونه

ببینید شبکه های بزرگ یه سرویسی رو برای کش سرور راه اندازی میکنند و یه میزان فضا رو بهش اختصاص میدن حالا یوزری میاد و یک صفحه رو میخواهند باز کنند این کش سرور به اینترنت مراجعه میکنه و اون صفحه رو میگیره یه نسخشو میده به شخص تقاضا کننده و یه نسخشو روی هارد خودش ذخیره میکنه . حالا اگر نفر دیگری بیاد و همون صفحه رو تقاضا کنه این صفحه روی هارد خودش موجوده اول میره و تاریخ و محتوای این صفحه رو با صفحه اصلی چک میکنه اگر اون صفحه تغییری نداشت همونی که روی هاردش هست رو میده به یوزر ( این یکی از قسمتهائی هستش که درآمد اصلی آی اس پی ها رو تشکیل میده )

حالا اگر ما یدونه از این کش سرورها روی سیستممون داشته باشیم چی میشه ؟ میزان دانلود ما هنگامی که داریم وب گردی میکنیم بخصوص هنگامی که صفحات تکراری رو باز میکنیم به شدت پائین میاد و سرعت باز شدن این صفحات فوق العاده زیاد میشه ( البته نه برای بار اول قرار نیست معجزه اتفاق بیافته  ;) )

اول از همه فروم رو یه سرچ کردن و مقاله فاراب عزیز و گرامی رو دانلود کردم ( که همینجا جا داره از ایشون بابت زحماتشون تشکر کنم ) و مطالب دیگه رو هم خوندم ولی اینها خیلی بیشتر از نیاز من بود من یه کش محلی (‌برای یک کامپیوتر ) میخواستم بعد رفتم سراغ گوگل عزیز  ;D سرتون رو درد نیارم بالاخره راهش انداختم اونم چه راه انداختنی  :o

بریم سراغ راه اندازی که خیلی هم آسونه .

مواد لازم :

۱ - squid3 ( یه حدود ۱ مگه کلش  :D )

۲ - هارد خالی به میزان دلخواه ( من خودم چون هاردم خالی بود ۱۰ گیگ براش گذاشتم که البته داینامیکه و فکر کنم تا آخر عمرم هم نتونم پرش کنم فکر کنم برای یه استفاده معمولی ۱ گیگ خیلی زیاد باشه )

مراحل کار :
۱ -  squid3 را نصب میکنیم

sudo apt-get install squid3
۲ - تنظیم کردن squid

sudo gedit /etc/squid3/squid.conf
( البته توضیح نداره برای kde کارا از کدوم ادیتور باید استفاده کنند چون اونا خودشون حرفه‌ایند  ;) )

حالا اینها رو به تهش اضافه کنید

http_port 3128 transparent
acl our_networks src 1.1.1.0/24
acl localnet src 127.0.0.1/255.255.255.255
http_access allow our_networks
http_access allow localnet

توجه کنید که در خط دوم 1.1.1.0 با توجه به آی پی شما بایستی تنظیم بشه برای من چون آی پیم 1.1.1.37 هستش اینجور تنظیم شده . برای اینکه بتونید آی پی تون رو به دست بیارید توی ترمینال از ifconfig استفاده کنید (‌فکر کنم دوستانی که از دایال آپ استفاده میکنند تا زمانی که از یک آی اس پی سرویس میگیرند نیاز نداشته باشند این آی پی رو عوض کنند اگر لطف کنند تست کنند و نتیجه رو اعلام کنند ممنون میشم )

حالا زمان اون رسیده که حجم و دایرکتوری کش سرورمون رو ست کنیم این خط رو پیدا کنید به صورت زیر تغییر بدین ( با سرچ cache_dir ufs میتونید پیداش کنید که البته اونی که # جلوش نیست خط اصلیه که باید تغییر بدین )

cache_dir ufs /home/nima/spool/squid3 10000 16 256
اینجا ۲ تا نکته داره اول اون دایرکتوریه که من ترجیح دادم توی home بسازمش چون چنتا لینوکس رو سیستمم دارم و همه از همین home استفاده میکنند اگر شما هم این دایرکتوری رو توی home ساختید باید پریمیشن رو برای این دایرکتوری عوض کنید وگرنه میتونید توی /var/ بسازیدش

دوم اینکه اون 10000 میزان کش به مگابایته شما بسته به میزان هاردتون عوضش کنید

حالا وقت اونه که اسکوئید رو ریستارت کنیم

sudo /etc/init.d/squid3 restart
این بایستی بدون باگ و وارنینگ دایرکتوریهاشو ایجاد کنه و شروع به کار کنه

شما حالا یه پورت 3128 دارید که توی مررو گرتون ست میکنید  و از زندگیتون لذت میبرید من که خیلی دارم لذت میبرم امیدوارم شما هم ببرید  ;)

اگر مشکلی بود و سواد اندکم کافی در خدمتم موفق باشید

پینوشت : اگر در مورد تنظیم پورت در فایر فاکس مشکل دارید به لینک زیر مراجعه کنید ( با تشکر فراوان از جناب حبیبی )

http://wiki.ubuntu-ir.org/Freegate#head-5f44bfad4e9ef661e462bef3589be24034b0ec4a

آفلاین Freeman

  • High Hero Member
  • *
  • ارسال: 2310
    • KDE Software Compilation
اقا ما نصب نمودیم توپ عالیه مرورگر شده فرفره ایکی ثانیه سایتا رو باز میکنه عجب چیزیه لامصب  \\:D/ \\:D/ \\:D/ \\:D/

آفلاین netsaba

  • Sr. Member
  • *
  • ارسال: 310
به نام خدا
سلام
عزیز جان شما می تونید اون تنظیماتی که باعث میشه ما  اسکویید را به صورت gateway داشته باشیم را بزنید. یعنی دیگه نری توی سیتینگ مرورگر و پراکسی بزنی بری روی سیستم  بلکه اینطور باشه که ip اسکویید را به صورت gateway بدی تا کار کنه منظورم همون دستورات iptables ?
متشکرم

آفلاین HardyLaity

  • Hero Member
  • *
  • ارسال: 730
به نام خدا
سلام
عزیز جان شما می تونید اون تنظیماتی که باعث میشه ما  اسکویید را به صورت gateway داشته باشیم را بزنید. یعنی دیگه نری توی سیتینگ مرورگر و پراکسی بزنی بری روی سیستم  بلکه اینطور باشه که ip اسکویید را به صورت gateway بدی تا کار کنه منظورم همون دستورات iptables ?
متشکرم


سلام والا دارم روش کار میکنم ولی هنوز نتونستم تیبل داخلی بسازم

اگر روی سرور بودیم مشکلی نبود خیلی راحت چون ۲ تا دیوایس داشتیم ری دارکش میکردم ولی هنوز لوکال نتونستم نتیجه بگیرم ( البته راستش هنوز هم بهش گیر ۳ پیچ ندادم )

به امید خدا هفته دیگه گیر بهش میدم باز  :D اگر زودتر هم شد مینویسم

پینوشت : انان که خاک را به نظر کيميا کنند .......  ( اساتید که کمکم نمیکنند  ;) باید خودم رو پائی بزنم تا یاد بگیرم . )
« آخرین ویرایش: 14 آبان 1387، 03:54 ب‌ظ توسط HardyLaity »

آفلاین netsaba

  • Sr. Member
  • *
  • ارسال: 310
به نام خدا
سلام
من خودم روی این موضوع کار کردم ولی . اینطور که من اومدم روی یه vmvare اوبونتو را نصب کردم و به اون با یه ای پی ولید اینترنت رو دادم. بعد اومدم اسکویید را نصب کردم و کدها را را زدم و به صورت پراکسی کار می کنه خیلی هم عالی کار می کنه طوری که وقتی به یکی از دوستانم که از مدیران فنی یک شبکه است نشون دادم از سرعت کشه تعجب می کرد  و می خواست برای امتحان اون رو بزاره زیر بار isp ولی به خاطر اینکه نتونستم اونو به صورت gatewaye  تعریف کنم نتونستم. ip  من 77.237.172.31

من یک سری کار کردم روش مثل:

من بعد از اینکه net.ipv4.ip_forward = 1 کردم و proc/sys/net/ipv4/ip_forward رو 1 کردم از این iptables  ها استفاده کردم:


iptables -A PREROUTING -p tcp -t nat -d <ip cache server> --dport 3128 -j DROP

iptables -A PREROUTING -p tcp -t nat -s 77.237.172.0/24 --dport 80 -j REDIRECT --to 3128

iptables -A PREROUTING -p tcp -t nat --dport 80 -j DROP

یا از این iptables  :

iptables -t nat -A PREROUTING -s 77.237.172.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

یا خیلی دیگه ولی هیچ کدام عمل نکر د یعنی وقتی من اینو به صورت gateway می دادم به سیستمم نه پینگ داشتم نه page

گفتم شاید این صحبتهای من بتونه کمکه بهت کنه.

آفلاین HardyLaity

  • Hero Member
  • *
  • ارسال: 730
به نام خدا
سلام
من خودم روی این موضوع کار کردم ولی . اینطور که من اومدم روی یه vmvare اوبونتو را نصب کردم و به اون با یه ای پی ولید اینترنت رو دادم. بعد اومدم اسکویید را نصب کردم و کدها را را زدم و به صورت پراکسی کار می کنه خیلی هم عالی کار می کنه طوری که وقتی به یکی از دوستانم که از مدیران فنی یک شبکه است نشون دادم از سرعت کشه تعجب می کرد  و می خواست برای امتحان اون رو بزاره زیر بار isp ولی به خاطر اینکه نتونستم اونو به صورت gatewaye  تعریف کنم نتونستم. ip  من 77.237.172.31

من یک سری کار کردم روش مثل:

من بعد از اینکه net.ipv4.ip_forward = 1 کردم و proc/sys/net/ipv4/ip_forward رو 1 کردم از این iptables  ها استفاده کردم:


iptables -A PREROUTING -p tcp -t nat -d <ip cache server> --dport 3128 -j DROP

iptables -A PREROUTING -p tcp -t nat -s 77.237.172.0/24 --dport 80 -j REDIRECT --to 3128

iptables -A PREROUTING -p tcp -t nat --dport 80 -j DROP

یا از این iptables  :

iptables -t nat -A PREROUTING -s 77.237.172.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

یا خیلی دیگه ولی هیچ کدام عمل نکر د یعنی وقتی من اینو به صورت gateway می دادم به سیستمم نه پینگ داشتم نه page

گفتم شاید این صحبتهای من بتونه کمکه بهت کنه.


آقا دستت درد نکنه چه ایده قشنگی دادی  ;)

و ممنون بابت اشتراک تجربیاتت .

بیشتر دوست دارم اگر بشه یه جورائی روی یک سیستم راه اندازی بشه تا برای همه قابل استفاده باشه چون ماشین مجازی نیاز به سخت افزار نسبتا قوی داره .

حالا اگر بعضی دوستان که نمیخوام اسم بیارم ( فاراب و علیرضای گرامی :D ) و اساتید دیگه یه راهنمائیهائی بکنند که خیلی عالی میشه  ;)

صورت مسئله رو یه بار دیگه میگم : میخوایم یه کش سرور squid روی دستکتاپ اکتیو کنیم که کل اینترنت رو کش کنه تا اینجاشو انجام دادیم حالا تیبل رو چجوری باید ست کنیم ؟

ممنون از توجه و همراهیتون

آفلاین علیرضا طالقانی

  • High Hero Member
  • *
  • ارسال: 2373
  • جنسیت : پسر
  • القدس لنا، والنصر لنا!
    • Take it easy
 :oops:

من این طوری متوجه مشکل شدم! می خواهید ی اسکوئید داشته باشید در شبکه اتون. بعد Gateway سایر کلاینت ها رو روی این اسکوئید سرور تنظیم کنید و حال ش رو ببرید.درسته؟

برای این کار کافیه ی که بخش http_port 80 رو اصلاح کنید.
ضمنا اگه  در همون فایل کافیگ گفته که اگه می خواهید اسکوئید سرور اتون از بیرون شبکه (وقتی پشت فایروال نباشید) مورد استفاده نباشه و یا ب زبان دیگه فقط برای سیستم های شبکه ی داخلی ای قابل استفاده باشه IP و Port شبکه ی داخلی رو تنظیم کنید. http_port Local-IP:80
قسمت اول رو تست کردم روی شبکه داخلی اوکی بود!  شد. دومی رو نه. حس ش نبود ! ;)
.ShayneIsTheOneWhoIsAlwaysAlone
terminal@world-server:~$ sudo aptitude remove --purge Israel

آفلاین netsaba

  • Sr. Member
  • *
  • ارسال: 310
:oops:

برای این کار کافیه ی که بخش http_port 80 رو اصلاح کنید.
ضمنا اگه  در همون فایل کافیگ گفته که اگه می خواهید اسکوئید سرور اتون از بیرون شبکه (وقتی پشت فایروال نباشید) مورد استفاده نباشه و یا ب زبان دیگه فقط برای سیستم های شبکه ی داخلی ای قابل استفاده باشه IP و Port شبکه ی داخلی رو تنظیم کنید. http_port Local-IP:80
قسمت اول رو تست کردم روی شبکه داخلی اوکی بود!  شد. دومی رو نه. حس ش نبود ! ;)

به نام خدا
سلام
1: این بخش http_port را باید در کجا اصلاح کرد یعنی این تگ را در در کدهای اسکویید اضافه کنیم.

آفلاین HardyLaity

  • Hero Member
  • *
  • ارسال: 730
:oops:

من این طوری متوجه مشکل شدم! می خواهید ی اسکوئید داشته باشید در شبکه اتون. بعد Gateway سایر کلاینت ها رو روی این اسکوئید سرور تنظیم کنید و حال ش رو ببرید.درسته؟

برای این کار کافیه ی که بخش http_port 80 رو اصلاح کنید.
ضمنا اگه  در همون فایل کافیگ گفته که اگه می خواهید اسکوئید سرور اتون از بیرون شبکه (وقتی پشت فایروال نباشید) مورد استفاده نباشه و یا ب زبان دیگه فقط برای سیستم های شبکه ی داخلی ای قابل استفاده باشه IP و Port شبکه ی داخلی رو تنظیم کنید. http_port Local-IP:80
قسمت اول رو تست کردم روی شبکه داخلی اوکی بود!  شد. دومی رو نه. حس ش نبود ! ;)

سلام علیرضا جان

نه عزیز شبکه‌ای در کار نیست  :D یک کامپیوتر متصل به اینترنت فقط همین من میخوام اسکوئید رو روی سیستم خودم راه اندازی کنم .

حالا ما اسکوئید رو دستا پا شکسته بر پا کردیم و یک پورت داریم حالا این پورت را با فایرفاکس ( مثلا ) باز میکنیم و از اسکوئید استفاده میکنیم

حالا میخواهیم که پورت ست نکنیم و ریدایرکت کنیم کل اینترنتمون رو روی اسکوئید  ;)

مشکل من الان اینه که iptables رو چه جوری حالیش کنم که اینترنتم رو از توی این پورت عبور بده

ممنون میشم راهنمائی کنی

آفلاین علیرضا طالقانی

  • High Hero Member
  • *
  • ارسال: 2373
  • جنسیت : پسر
  • القدس لنا، والنصر لنا!
    • Take it easy
اوهوم
این این یکی رو ی نگاهی بندازید.
ترنس-پرنت پروکسی

***
شرمنده یکمی درگیر ام! نمیرسم تست کنم. اما نتیجه اش رو حتما بهم بگید.


.ShayneIsTheOneWhoIsAlwaysAlone
terminal@world-server:~$ sudo aptitude remove --purge Israel

آفلاین netsaba

  • Sr. Member
  • *
  • ارسال: 310
 به نام خدا
سلام
آقا ما که کامل  خوندیم.  ::)  :o  ::)  :o
اما نتیجه نگرفتیم.  :'(  :'(  :'(   نمی دونم شاید من جایی رو اشتباه میرم. آخه من روی vmvare کار می کنم و در کدهایی که زده صحبت از eth0 و eth1 شده که چون من فقط eth0 رو دارم همه رو به اون فرستادم. البته تا اونجایی که من میدونم روی یک کارت شبکه توی لینوکس میشه هردو کار رو کرد.  ](*,)  ](*,)

آفلاین علیرضا طالقانی

  • High Hero Member
  • *
  • ارسال: 2373
  • جنسیت : پسر
  • القدس لنا، والنصر لنا!
    • Take it easy
IP های مجازی رو با صورت ethX:virtual-name میشه تعیین کرد.
البته روی vm-vare نمی دونم ک چطوری این NAT داخلی ایش رو راه اندازی کرد. ???
.ShayneIsTheOneWhoIsAlwaysAlone
terminal@world-server:~$ sudo aptitude remove --purge Israel

آفلاین یه انقلابی

  • Hero Member
  • *
  • ارسال: 951
  • جنسیت : پسر
    • یه‌انقلابی
با سلام
من اینترنت ذغالی دارم و خروجی ifconfig هم اینه:
mohammad@mohammad-desktop:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0f:ea:01:68:2f 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:16 Base address:0xa000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:541 errors:0 dropped:0 overruns:0 frame:0
          TX packets:541 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:153156 (149.5 KB)  TX bytes:153156 (149.5 KB)

ppp0      Link encap:Point-to-Point Protocol 
          inet addr:92.50.14.166  P-t-P:92.50.14.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:8150 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9475 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:6114142 (5.8 MB)  TX bytes:1255927 (1.1 MB)

mohammad@mohammad-desktop:~$
حالا سوال من اینه؟ IP من چیه؟
چون توی اینجا باید وارد کنم:
http_port 3128 transparent
acl our_networks src 1.1.1.0/24
acl localnet src 127.0.0.1/255.255.255.255
http_access allow our_networks
http_access allow localnet
یا علی
فعلا قصد ندارم اینجا بیام، شاید اصلا نیام.
انجمن‌های آزادتری هم خواهند بود برای آزاد بودن.
یا علی

آفلاین HardyLaity

  • Hero Member
  • *
  • ارسال: 730
با سلام
من اینترنت ذغالی دارم و خروجی ifconfig هم اینه:
mohammad@mohammad-desktop:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0f:ea:01:68:2f 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:16 Base address:0xa000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:541 errors:0 dropped:0 overruns:0 frame:0
          TX packets:541 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:153156 (149.5 KB)  TX bytes:153156 (149.5 KB)

ppp0      Link encap:Point-to-Point Protocol 
          inet addr:92.50.14.166  P-t-P:92.50.14.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:8150 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9475 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:6114142 (5.8 MB)  TX bytes:1255927 (1.1 MB)

mohammad@mohammad-desktop:~$
حالا سوال من اینه؟ IP من چیه؟
چون توی اینجا باید وارد کنم:
http_port 3128 transparent
acl our_networks src 1.1.1.0/24
acl localnet src 127.0.0.1/255.255.255.255
http_access allow our_networks
http_access allow localnet
یا علی


سلام

احتمالا باید 92.50.14.0  رو وارد کنید 

موفق باشید

آفلاین یه انقلابی

  • Hero Member
  • *
  • ارسال: 951
  • جنسیت : پسر
    • یه‌انقلابی
با سلام
ممنون فعلا که وقتی ff رو روی پورت ۳۱۲۸ گذاشتم دریافت داشتم .
در مورد  دایال‌آپ هم برای من که با دیسی شدن تغییری نمیکنه و ثابته.
 یا علی
فعلا قصد ندارم اینجا بیام، شاید اصلا نیام.
انجمن‌های آزادتری هم خواهند بود برای آزاد بودن.
یا علی