-
سلام خسته نباشید
توی سرور لینوکس چطوری میشه یه تونل ایجاد کرد که کل ترافیک بین کاربر و سایت مقصد اول از سرور لینوکس رد بشه سپس از یه پ..روکسی سرور با ip:port مشخص؟
user => my server => proxy server (ex: 159.226.71.138:1170 ) => site
سایت های مقصد سایتهایی مثه ieee و sciencedirect هستن که دانشجوهای داخل ایران به سختی بهشون دسترسی دارن ، ولی بعضی دانشگاههای خارجی اکانت یه سالشو میخرن، بعد یه سرور راه میندازن که از طریق اون دانشجوهاشون بتونن به ieee دسترسی داشته باشن
این پروکسی سرورها پینگ بالایی دارن و سرعتشون کنده، من میخواستم ترافیک رو از سور خودم رد کنم که با سرعت بالایی به این پروکسی ها دسترسی داشته باشم
اول اینکه این حرف من امکان پذیره ، اگه میشه راهنمایی کنین لطفا :)
-
روی سرور خودتون یک Proxy با Squid راه میاندازید و توی تنظیمات Squid تمامی درخواستها رو به Proxy بعدی میفرستید.
-
اگر سرور شما قابلیت port forwarding داشتهباشه میتونید forward کنید. البته مطمئن نیستم که تاثیری روی سرعت داشتهباشه. البته گمان من این هست که تاثیری نداره.
چون با این روش ارتباط بین شما و سرور دانشگاه برقرار میشه و سرورتون تنها یک واسط خواهد بود و نه افزایش دهنده سرعت.
توضیح بیشتر: سرور دانشگاه بعد از هر پیام به شما، منتظر پاسخ شما خواهد بود:
you-->server ---> university
university--->server--->you
university(listening)
you--->server--->university
.
.
یعنی به هر حال در طول مدت ارتباط، کامپیوتر شما درگیر ارتباط خواهد بود و سرعت هیچ تغییری نخواهد کرد.
اما روش دیگر این است که شما نوعی از پروکسی داشتهباشید که به پورت دانشگاه متصل شود، اطلاعات را بگیرد، و سپس برایتان بفرستد.
-
روی سرور خودتون یک Proxy با Squid راه میاندازید و توی تنظیمات Squid تمامی درخواستها رو به Proxy بعدی میفرستید.
مرسی از پاسختون
من squid با webmin نصب کردم، با چه دستوراتی (یا به کمک webmin) درخواستها رو به proxy سرور بعدی بفرستم؟
ایا با این روش من با سرعت بیشتری به سایت مقصد دسترسی دارم؟
-
اگر سرور شما قابلیت port forwarding داشتهباشه میتونید forward کنید. البته مطمئن نیستم که تاثیری روی سرعت داشتهباشه. البته گمان من این هست که تاثیری نداره.
چون با این روش ارتباط بین شما و سرور دانشگاه برقرار میشه و سرورتون تنها یک واسط خواهد بود و نه افزایش دهنده سرعت.
توضیح بیشتر: سرور دانشگاه بعد از هر پیام به شما، منتظر پاسخ شما خواهد بود:
you-->server ---> university
university--->server--->you
university(listening)
you--->server--->university
.
.
یعنی به هر حال در طول مدت ارتباط، کامپیوتر شما درگیر ارتباط خواهد بود و سرعت هیچ تغییری نخواهد کرد.
اما روش دیگر این است که شما نوعی از پروکسی داشتهباشید که به پورت دانشگاه متصل شود، اطلاعات را بگیرد، و سپس برایتان بفرستد.
روش اول رو امتحان کردم سرعت تغییری نکرد ، اگه امکانش هست در مورد روش دوم توضیح بیشتر بدین :)
-
من squid با webmin نصب کردم، با چه دستوراتی (یا به کمک webmin) درخواستها رو به proxy سرور بعدی بفرستم؟
ایا با این روش من با سرعت بیشتری به سایت مقصد دسترسی دارم؟
توی تنظیمات Squid باید cache_peer رو تنظیم کنید. بهتره که بجای Webmin، بصورت مستقیم اینکار رو انجام بدید.
در شرایط خاصی ممکنه سرعتتون بالا بره، ولی عموما به دلیل سربارها سرعت کمتر میشه.
-
البته یه راه ساده برای port forwarding استفاده از ssh هست که باهاش خیلی راحت می شه این کارو انجام داد.
از صفحه راهنمای ssh:
-D [bind_address:] port
Specifies a local ``dynamic'' application-level port forwarding. This works by allocating a socket to listen to port on the local side, optionally bound
to the specified bind_address. Whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application pro‐
tocol is then used to determine where to connect to from the remote machine. Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act
as a SOCKS server. Only root can forward privileged ports. Dynamic port forwardings can also be specified in the configuration file.
IPv6 addresses can be specified by enclosing the address in square brackets. Only the superuser can forward privileged ports. By default, the local
port is bound in accordance with the GatewayPorts setting. However, an explicit bind_address may be used to bind the connection to a specific address.
The bind_address of ``localhost'' indicates that the listening port be bound for local use only, while an empty address or `*' indicates that the port
should be available from all interfaces.
اطلاعات بیشتر:
SSH/OpenSSH/PortForwarding (https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding#Dynamic_Port_Forwarding)
-
من squid با webmin نصب کردم، با چه دستوراتی (یا به کمک webmin) درخواستها رو به proxy سرور بعدی بفرستم؟
ایا با این روش من با سرعت بیشتری به سایت مقصد دسترسی دارم؟
توی تنظیمات Squid باید cache_peer رو تنظیم کنید. بهتره که بجای Webmin، بصورت مستقیم اینکار رو انجام بدید.
در شرایط خاصی ممکنه سرعتتون بالا بره، ولی عموما به دلیل سربارها سرعت کمتر میشه.
cache_peer رو بصورت زیر توی کامفیگ وارد میکنم ولی آی پی سرور تغییری نمیکنه:
cache_peer 165.98.16.10 parent 8080 0 default
-
never_direct هم تنظیم کنید که مستقیم وصل نشه.
-
never_direct هم تنظیم کنید که مستقیم وصل نشه.
never_direct allow all
all یا هر ac l دیگه که میزنم squid از کار میفته
همه جوره امتحانش کردم دیگه گیج شدم!
-
خوب نشون میده سرورتون در وصل شدن به اون Proxy دیگه مشکل داره یا توی تنظیمات دیگه مشکلی هست.
-
خوب نشون میده سرورتون در وصل شدن به اون Proxy دیگه مشکل داره یا توی تنظیمات دیگه مشکلی هست.
درستش کردم ، گفتین در شرایط خاصی ممکنه سرعتتون بالا بره ، چه شرایطی؟!
-
در شرایطی که ارتباط سرور شما با Proxy به اضافه سربار ارتباط، سرعت بیشتری از ارتباط شما به صورت مستقیم با Proxy باشه. این شرایط گاهی به دلیل Peeringها یا ارتباط خاص سرورها ممکنه پیش بیاد.
-
سرعت که تغییری نکرد امافک کنم بشه یه کلکی زد که سایتهای ieee و ... گول بخورن!!!
با ACL ها نمیشه کاری کرد که ieee هویت کاربرهارو از طریق proxy دانشگاهی تشخیص بده ولی لود صفحات از طریق proxy خودم انجام بشه؟؟ منظورم اینه که ieee و ... فقط در ابتدای ارتباط چک میکنن که ip کاربر چیه و متناسب با اون دستوراتی صادر می کنن. ولی وقتی ما از cache_peer استفاده میکنیم تمام ارتباطات از پروکسی دانشگاهی رد میشه
مثلا من یه فایلو میخواستم از ieee دانلود کنم، واسه شروع دریافت فایل از پروکسی دانشگاهی استفاده کردم ، به نصفه که رسید دانلود رو pause کردم و پروکسی رو قطع کردم، بعد دوباره resume زدم اما دانلود تا آخر ادامه پیدا کرد.
-
پس باید با بنزین روشن کرد، بعد بذاریم رو گاز :)
-
افزونهای مثل FoxyProxy رو نصب کنید و تنظیم کنید که تنها برای یک سری سایتهای خاص از Proxy استفاده کنه.
-
افزونهای مثل FoxyProxy رو نصب کنید و تنظیم کنید که تنها برای یک سری سایتهای خاص از Proxy استفاده کنه.
نه بحثمون کلا روی سایت ieee
میخوام که احراز هویت کاربر با پروکسی دانشگاهی انجام بشه ولی ادامه لود سایت با پروکسی خودم،
چنین چیزی امکان پذیره؟
-
شاید بشه.
-
ایده ای ندارین؟!
-
نیاز به بررسی داره و فکر نکنم ارزشش رو داشته باشه که روش وقت بذارید. همون با Proxy اون کار رو انجام بدید کارتون سریعتر راه میفته.
غیر از اینکه دلیل خاصی برای اون کار داشته باشید (حتی علاقه به انجام این کار میتونه دلیل موجهی باشه!)، ولی برای اون دیگه باید خودتون ببینید اونها چطور اینکار رو انجام میدن، سعی کنید دستی اون کارها رو انجام بدید و وقتی که روشش رو پیدا کردید، اون روش رو در سرورتون مکانیزه کنید.
-
خب میگم که این پروکسی های دانشگاهی از سرعت جالبی ندارن اما خب هدف اصلیم یادگیریه دوس دارم به یه جایی برسونمش!
ایده ای که به ذهن خودم میرسه اینه که داده های ارسالی از سرور دانشگاهی بگذره اما داده های دریافتی فقط از پروکسی خودم:
user => my server => proxy server (ex: 159.226.71.138:1170 ) => site
user <= my server <= site
این دیگه شدنیه اما نمیدونم دنبال چی بگردم!
-
به این سادگی که فکر میکنید نیست. پیشنهاد میکنم ابتدا پایههای TCP/IP رو یاد بگیرید. کتابهای +Network میتونه برای شروع خوب باشه.
-
به این سادگی که فکر میکنید نیست. پیشنهاد میکنم ابتدا پایههای TCP/IP رو یاد بگیرید. کتابهای +Network میتونه برای شروع خوب باشه.
اول از اینکه اینهمه وقت گذاشتین و جواب سوالاتمو دادین تشکر کنم :)
دوم : یعنی هیچ acl نیست که داده های ارسالی به سمت سایت مقصد رو از داده هایی که برمیگرده به سمت سرور جدا کنه؟؟
تو کتابی که معرفی کردین دنبال چی باید بگردم؟
-
دوم : یعنی هیچ acl نیست که داده های ارسالی به سمت سایت مقصد رو از داده هایی که برمیگرده به سمت سرور جدا کنه؟؟
تو کتابی که معرفی کردین دنبال چی باید بگردم؟
میتونم خیلی راحت با خیر جواب بدم، ولی دقیقا مشکل همینجاست و کلا سوال اشتباهه. شما هنوز TCP/IP رو بدرستی نمیشناسید، در نتیجه بر اساس فرضیاتی که دارید میخواید اینکار رو انجام بدید. یک شناخت درست از TCP/IP میتونه این مشکل رو حل کنه و براتون مشخص کنه که اصلا باید دنبال چی بگردید.
دنبال چیز خاصی نگردید، کل کتاب رو بخونید و تنها وقتی اون رو تموم کردید، سراغ کتابی مثل Squid: The Definitive Guide برید. ولی دوباره میگم، اول کتابی برای یادگیری TCP/IP بخونید و بعد سراغ Squid بیاید، وگرنه قسمت زیادی از کتاب براتون گنگ خواهد بود و نمیتونید به صورت عملی از اون استفاده کنید.
-
دوم : یعنی هیچ acl نیست که داده های ارسالی به سمت سایت مقصد رو از داده هایی که برمیگرده به سمت سرور جدا کنه؟؟
تو کتابی که معرفی کردین دنبال چی باید بگردم؟
میتونم خیلی راحت با خیر جواب بدم، ولی دقیقا مشکل همینجاست و کلا سوال اشتباهه. شما هنوز TCP/IP رو بدرستی نمیشناسید، در نتیجه بر اساس فرضیاتی که دارید میخواید اینکار رو انجام بدید. یک شناخت درست از TCP/IP میتونه این مشکل رو حل کنه و براتون مشخص کنه که اصلا باید دنبال چی بگردید.
دنبال چیز خاصی نگردید، کل کتاب رو بخونید و تنها وقتی اون رو تموم کردید، سراغ کتابی مثل Squid: The Definitive Guide برید. ولی دوباره میگم، اول کتابی برای یادگیری TCP/IP بخونید و بعد سراغ Squid بیاید، وگرنه قسمت زیادی از کتاب براتون گنگ خواهد بود و نمیتونید به صورت عملی از اون استفاده کنید.
یه کتاب 300 صفحه ای کار با squid توی انجمن بود چند بار خوندمش :) کتاب فارسی سراغ ندارین واسه TCP/IP سریع راه بیفتم؟ یه هفته بیشتر وقت ندارم :(
-
دقیقا برای همین گفتم اول TCP/IP و بعد Squid، چون در غیر اینصورت نتیجه خوبی نمیگیرید.
کتاب فارسی نمیشناسم و پیشنهاد هم نمیکنم. بهتره کتاب رو انگلیسی بخونید که وقتی توی جاهای دیگه (مثلا توی همون تنظیمات Squid) به اون کلمات برخورد میکنید، به راحتی ارتباط اونها رو متوجه بشید. یا وقتی چیزی رو متوجه نشدید، با استفاده از کلمات کلیدی بتونید توی اینترنت دنبال اون موضوع بگردید.
با یک هفته احتمالا به جایی نمیرسید، روی ۳ ماه حساب کنید.
-
مرسی ممنون
سه تا سوال دارم اگه کمک کنین عالی میشه:
1) با cache_peer رو روی یکی از سرورهام به یکی از پروکسی های دانشگاهی متصل شدم ، ولی رو یه سرور دیگه (با دقیقا همون کانفیگ) جواب نمبده اصلا! روی اون سرور چندتا یوزر هست و فایروال هم فک کنم فعاله ، cache_peer رو که تنظیم می کنم روی اون سرور آی پی اصلا تغییر نمی کنه!!
2) روی همون سرور اولی به کمک round-robin به دو تا پروکسی دانشگاهی کانکت میشم ،به پروکسی اولی و یا دومی کانکت میشه اما بعضی وقتا آی پی اصلا تغییر نمیکنه، مشکل از کجاس؟
اینم دستوراتش:
cache_peer ip1 parent port1 0 no-query round-robin
cache_peer ip2 parent port2 0 no-query round-robin
cache_peer_access ip1 allow journals
cache_peer_access ip2 allow journals
never_direct allow journals
3) اگه بخوام طوری تنظیم کنم که به پروکسی ای که پینگش پایینتره کانکت بشه به جای round-robin چی بذارم؟
تشکر قبلی :)