ด้วยแบ็กเอนด์ 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 helper ที่เข้ากันได้กับ OpenBSD อยู่แล้ว OpenSSH จะเรียกใช้มันในเครื่องเพื่อสร้างการเชื่อมต่อ SOCKS5 ไปยังปลายทาง SFTP ตัวแทนตำแหน่งจะให้โฮสต์และพอร์ตที่ SSH เลือก สำหรับการเข้าถึงเซิร์ฟเวอร์ SFTP สาธารณะผ่านตัวกลางสาธารณะที่ได้รับอนุญาต ให้เลือกปลายทางที่ไม่ต้องใช้บัญชีจากรายการพร็อกซี SOCKS5สำหรับ helper นั้นจะต้องอนุญาตปลายทาง SSH และพอร์ตดังกล่าว

ขอบเขตของอาร์กิวเมนต์สำคัญ: -o เป็นอาร์กิวเมนต์หนึ่งตัว และการกำหนด ProxyCommand ทั้งหมดเป็นอาร์กิวเมนต์ถัดไป พารามิเตอร์ more ของ Net::SFTP::Foreign ไม่ได้ถือว่าสตริงใด ๆ ที่มีอาร์กิวเมนต์ SSH หลายตัวเป็นอาร์เรย์โดยอัตโนมัติ

แอปพลิเคชันยังสามารถเก็บ ProxyCommand ไว้ในการกำหนดค่า SSH Host ตามปกติและส่งชื่อแทนโฮสต์นั้นให้ Net::SFTP::Foreign ใช้การกำหนดค่าของแบ็กเอนด์ OpenSSH ได้ทั้งสองรูปแบบ แบ็กเอนด์อื่นอย่าง Plink มีไวยากรณ์ตัวเลือกของตนเอง

บทความที่เกี่ยวข้อง