با بک‌اند OpenSSH در Net::SFTP::Foreign، مسیریابی پروکسی را می‌توان به‌صورت یک گزینه SSH بیان کرد. پارامتر مستند more در این ماژول آرایه‌ای از آرگومان‌های فرمان را می‌پذیرد:

use Net::SFTP::Foreign;

my $sftp = Net::SFTP::Foreign->new(
    'files.example.net',
    user => 'operator',
    more => [
        '-o',
        'ProxyCommand=nc -X 5 -x proxy.example.net:1080 %h %p',
    ],
);

die $sftp->error if $sftp->error;

این فرض می‌کند یک ابزار کمکی nc سازگار با OpenBSD از قبل وجود دارد. OpenSSH آن را به‌صورت محلی اجرا می‌کند تا اتصال SOCKS5 به مقصد SFTP برقرار شود. جای‌نگهدارها میزبان و پورتی را که SSH انتخاب کرده تأمین می‌کنند. برای رسیدن به یک سرور عمومی SFTP از طریق یک واسط عمومی مجاز، برای این ابزار یک نقطه پایانی بدون حساب از فهرست پروکسی SOCKS5 انتخاب کنید؛ باید آن مقصد و پورت SSH را مجاز کند.

مرز آرگومان‌ها مهم است: -o یک آرگومان است و کل انتساب ProxyCommand آرگومان بعدی. پارامتر more در Net::SFTP::Foreign رشتهٔ دلخواهی را که چند آرگومان SSH دارد به‌طور خودکار آرایه نمی‌بیند.

یک برنامه می‌تواند همچنین ProxyCommand را در پیکربندی معمول Host در SSH نگه دارد و آن نام مستعار میزبان را به Net::SFTP::Foreign بدهد. پیکربندی بک‌اند OpenSSH را به هر یک از دو شکل به کار ببرید؛ بک‌اند دیگری مانند Plink نحو گزینه‌های خودش را دارد.

مقالات مرتبط