PROXYTUNNEL(1)   PROXYTUNNEL(1)

proxytunnel - برنامه‌ای برای ایجاد تونل اتصال از طریق یک پراکسی استاندارد HTTPS

proxytunnel [OPTION...]

برنامه proxytunnel ابزاری برای ایجاد تونل اتصال از طریق یک پراکسی استاندارد HTTPS و دور زدن سازوکارهای فیلترینگ استاندارد HTTP است. این ابزار بیشتر به‌عنوان پس‌بند برای ProxyCommand در OpenSSH و همچنین به‌عنوان پس‌بند پراکسی برای Putty استفاده می‌شود. همچنین می‌تواند برای سایر مقاصد گذر از پراکسی مانند proxy bouncing مورد استفاده قرار گیرد.

-i, --inetd

اجرا از طریق inetd (پیش‌فرض: غیرفعال).

-a, --standalone=[address:]port

اجرا به‌صورت دیمن مستقل روی address و port مشخص‌شده. address می‌تواند یک آدرس IPv4، یک آدرس IPv6 داخل کروشه، یا ترکیبی درون کروشه از آدرس IPv6، '%' و نام رابط شبکه (interface) باشد. قالب اخیر تنها برای آدرس‌های IPv6 از نوع link-local الزامی است. در صورتی که address تعیین نشود، دیمن روی تمام آدرس‌ها شنود خواهد کرد.

مثال‌ها

22, 123.45.67.89:22, [2001:db8::123:4567:89ab:cdef]:22, [2001:db8::123:4567:89ab:cdef%eth0]:22

-p, --proxy=host:port

استفاده از host و port به‌عنوان پراکسی محلی (اصلی) برای اتصال؛ در صورت عدم تعیین، از مقدار متغیر محیطی HTTP_PROXY (در صورت تنظیم بودن) استفاده خواهد شد. تعیین این گزینه یا متغیر محیطی الزامی است.

-r, --remproxy=host:port

استفاده از host و port به‌عنوان پراکسی دوردست (ثانویه) برای برقراری اتصال.

-d, --dest=host:port

استفاده از host و port به‌عنوان مقصد تونل. استفاده از این گزینه الزامی است.

-e, --encrypt

رمزنگاری داده‌ها با SSL میان پراکسی محلی و مقصد.

-E, --encrypt-proxy

رمزنگاری داده‌ها با SSL میان کلاینت و پراکسی محلی.

-X, --encrypt-remproxy

رمزنگاری داده‌ها با SSL میان پراکسی محلی و پراکسی دوردست (ثانویه).

-z, --no-check-certificate

هنگام برقراری یک اتصال SSL، گواهی SSL کارساز را اعتبارسنجی نکنید. به‌طور پیش‌فرض، گواهی SSL کارساز اعتبارسنجی می‌شود و نام میزبان هدف در برابر subject alternative names (نام‌های جایگزین موضوع) گواهی کارساز در صورت وجود، یا در صورت نبود آن‌ها در برابر common name (نام متداول) بررسی می‌شود.

-C, --cacert=filename/directory

یک فایل گواهی CA (یا دایرکتوری حاوی گواهی‌های CA) را برای اعتماد هنگام اعتبارسنجی گواهی SSL کارساز مشخص کنید. اگر یک دایرکتوری ارائه شود، باید با ابزار c_rehash متعلق به OpenSSL آماده شده باشد (پیش‌فرض: /etc/ssl/certs، مگر اینکه در زمان کامپایل با استفاده از گزینه‌های DEFAULT_CA_FILE یا DEFAULT_CA_DIR تغییر یافته باشد).

-4, --ipv4

اجبار به استفاده از IPv4 هنگام اتصال به پروکسی محلی.

-6, --ipv6

اجبار به استفاده از IPv6 هنگام اتصال به پروکسی محلی.

-F, --passfile=filename

استفاده از filename برای خواندن نام کاربری و گذرواژه جهت احراز هویت در پروکسی HTTPS؛ این فایل از همان قالب .wgetrc استفاده می‌کند و می‌تواند با wget به اشتراک گذاشته شود. برای پنهان کردن گذرواژه از دید سایر کاربران، از این گزینه یا متغیرهای محیطی استفاده کنید.

-P, --proxyauth=username:password

استفاده از username و password به‌عنوان اطلاعات کاربری جهت احراز هویت در یک پروکسی HTTPS محلی؛ نام کاربری و گذرواژه را می‌توان در متغیرهای محیطی PROXYUSER و PROXYPASS نیز مشخص کرد تا از سایر کاربران پنهان بمانند. اگر password حذف شود و هیچ متغیر محیطی PROXYPASS تنظیم نشده باشد، proxytunnel گذرواژه را درخواست خواهد کرد.

-R, --remproxyauth=username:password

استفاده از username و password به‌عنوان اطلاعات کاربری جهت احراز هویت در یک پروکسی HTTPS دوردست (ثانویه)؛ نام کاربری و گذرواژه را می‌توان در متغیرهای محیطی REMPROXYUSER و REMPROXYPASS نیز تعیین کرد تا از سایر کاربران پنهان بمانند. اگر password حذف شود و هیچ متغیر محیطی REMPROXYPASS تنظیم نشده باشد، proxytunnel گذرواژه را درخواست خواهد کرد.

-c, --cert=filename

تعیین نام فایل حاوی گواهی کلاینت SSL برای احراز هویت با گواهی کلاینت در برابر پروکسی محلی، پروکسی دوردست یا مقصد. این فایل باید در قالب PEM باشد. علاوه بر این، ممکن است شامل یک یا چند گواهی میانی باشد که در سمت کارساز موجود نیستند، و عملاً یک زنجیره گواهی تشکیل می‌دهند. علاوه‌بر این، نیازمند تعیین -k, --key است. اگر هیچ‌یک از گزینه‌های -e, --encrypt یا -E, --encrypt-proxy یا -X, --encrypt-remproxy داده نشده باشند، نادیده گرفته می‌شود.

-k, --key=filename

تعیین نام فایل حاوی کلید کلاینت SSL برای احراز هویت با گواهی کلاینت در برابر پروکسی محلی، پروکسی دوردست یا مقصد. فایل باید در قالب PEM باشد. علاوه‌بر این، نیازمند تعیین -c, --cert است. اگر هیچ‌یک از گزینه‌های -e, --encrypt یا -E, --encrypt-proxy یا -X, --encrypt-remproxy داده نشده باشند، نادیده گرفته می‌شود.

-N, --ntlm

استفاده از احراز هویت مبتنی بر NTLM.

-t, --domain=STRING

مشخص کردن دامنه NTLM (پیش‌فرض: تشخیص خودکار).

-H, --header=STRING

افزودن سرآیندهای HTTP اضافی برای ارسال به پروکسی.

-o, --host=host[:port]

ارسال یک سرآیند Host سفارشی. در اتصالات SSL مقدار host به‌عنوان SNI نیز ارسال می‌شود.

-x, --proctitle=STRING

استفاده از یک عنوان فرآیند (process title) متفاوت.

-I, --no-sni

غیرفعال‌سازی SNI.

-v, --verbose

فعال‌سازی حالت پرگو (نمایش با جزئیات بیشتر).

-q, --quiet

پنهان‌سازی پیام‌ها (حالت بی‌صدا).

-h, --help

نمایش راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

بسته به شرایط خود ممکن است بخواهید هر یک از کارهای زیر را انجام دهید:

•اتصال از طریق یک پروکسی محلی به سیستم خانگی روی درگاه ۲۲
$ proxytunnel -v -p proxy.company.com:8080 -d system.home.nl:22
•اتصال از طریق یک پروکسی محلی (همراه با احراز هویت) به سیستم خانگی
$ proxytunnel -v -p proxy.company.com:8080 -P username:password -d system.home.nl:22
•اتصال از طریق یک پروکسی محلی (همراه با احراز هویت) با پنهان کردن گذرواژه
$ export PROXYPASS=password
$ proxytunnel -v -p proxy.company.com:8080 -P username -d system.home.nl:22
•اتصال از طریق یک پروکسی محلی به یک پروکسی دوردست و جهش به هر سیستمی
$ proxytunnel -v -p proxy.company.com:8080 -r proxy.athome.nl:443 -d system.friend.nl:22
•اتصال با استفاده از SSL از طریق یک پروکسی محلی به سیستم خانگی
$ proxytunnel -v -E -p proxy.company.com:8080 -d system.home.nl:22

برای استفاده از این برنامه به همراه OpenSSH جهت اتصال به یک میزبان، یک فایل ~/.ssh/config با محتوای زیر ایجاد کنید:

Host system.athome.nl
    ProxyCommand proxytunnel -p proxy.company.com:8080 -d %h:%p
    ServerAliveInterval 30

نکته

دستورالعمل ServerAliveInterval تضمین می‌کند که اتصالات غیرفعال توسط دیواره‌های آتش میانی که نشست‌های فعال را به شکل تهاجمی قطع می‌کنند، بسته نشوند. اگر متوجه قطع شدن اتصال خود شدید، مقدار آن را باز هم کاهش دهید.

برای استفاده از قابلیت فوروارد پورت پویا (SOCKS) در کلاینت SSH، می‌توانید دستورالعمل DynamicForward را در فایل ssh_config خود مانند زیر مشخص کنید:

Host system.athome.nl
    DynamicForward 1080
    ProxyCommand proxytunnel -p proxy.company.com:8080 -d %h:%p
    ServerAliveInterval 30


مهم

بیشتر پروکسی‌های HTTPS اجازه دسترسی به پورت‌هایی غیر از HTTPS (tcp/443) و SNEWS (tcp/563) را نمی‌دهند. در این حالت، برای عبور باید اطمینان حاصل کنید که دیمن SSH یا پروکسی دوردست روی سیستم مقصد به یکی از پورت‌های tcp/443 یا tcp/563 گوش می‌دهد.

می‌توان با تنظیم متغیرهای محیطی زیر بر رفتار proxytunnel تأثیر گذاشت:

HTTP_PROXY

در صورت تنظیم این متغیر محیطی، اگر گزینه‌های -p یا --proxy ارائه نشده باشند، proxytunnel از آن به عنوان پروکسی محلی استفاده خواهد کرد.

PROXYUSER

در صورت تنظیم این متغیر محیطی، proxytunnel از آن به عنوان نام کاربری جهت احراز هویت در پروکسی استفاده خواهد کرد، مگر اینکه با گزینه -P یا --proxyauth مشخص شده باشد.

PROXYPASS

در صورت تنظیم این متغیر محیطی، proxytunnel از آن به عنوان گذرواژه جهت احراز هویت در پروکسی استفاده خواهد کرد، مگر اینکه با گزینه -P یا --proxyauth مشخص شده باشد.

REMPROXYUSER

در صورت تنظیم این متغیر محیطی، proxytunnel از آن به عنوان نام کاربری جهت احراز هویت در پروکسی دوردست (ثانویه) استفاده خواهد کرد، مگر اینکه با گزینه -R یا --remproxyauth مشخص شده باشد.

REMPROXYPASS

در صورت تنظیم این متغیر محیطی، proxytunnel از آن به عنوان گذرواژه جهت احراز هویت در پروکسی دوردست (ثانویه) استفاده خواهد کرد، مگر اینکه با گزینه -R یا --remproxyauth مشخص شده باشد.
ssh(1), ssh_config(8)

این نرم‌افزار بدون باگ است، حداقل ما دوست داریم این‌طور فکر کنیم. اگر با ما هم‌نظر نیستید، لطفاً مدرک آن را با گزارش دوستانه خود در https://github.com/proxytunnel/proxytunnel/issues ارسال کنید :)

این صفحه راهنما در ابتدا توسط Loïc Le Guyader <loic.leguyader@laposte.net[1]> برای سیستم Debian GNU/Linux نوشته شد، در asciidoc توسط Dag Wieërs <dag@wieers.com[2]> بازنویسی شد و اکنون توسط توسعه‌دهندگان Proxytunnel نگهداری می‌شود.

صفحه‌های وب در https://proxytunnel.sourceforge.io و https://github.com/proxytunnel/proxytunnel

1.
loic.leguyader@laposte.net
mailto:loic.leguyader@laposte.net
2.
dag@wieers.com
mailto:dag@wieers.com
2026-05-31   1.13.0