სერვერზე ნებადართული SSH წვდომით OpenSSH-ს შეუძლია თქვენს კომპიუტერში SOCKS მსმენელი შექმნას. SSH კავშირი გადამისამართებულ ტრაფიკს ატარებს, ხოლო დისტანციური სერვერი დანიშნულებას უკავშირდება.

მსმენელი მხოლოდ loopback-ზე

ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]

შეცვალეთ ანგარიში და ჰოსტის სახელი. SSH სერვერი გადამისამართებას უნდა უშვებდეს; ადმინისტრატორს შეუძლია გადამისამართება და დანიშნულებები შეზღუდოს ანგარიშში შესვლისგან დამოუკიდებლად.

-D დინამიკურ გადამისამართებას ქმნის, ხოლო აშკარა loopback მისამართი მსმენელს ამ კომპიუტერზე ზღუდავს. -N დისტანციურ ბრძანებას არ ასრულებს, -T კი ფსევდოტერმინალს არ გამოყოფს. ControlPath=none არსებულ გაზიარების master-ს არ იყენებს, ხოლო ForkAfterAuthentication=no ამ გაშვებას წინა პლანზე ტოვებს.

პროქსის გამოყენებისას პროცესი გაშვებული დატოვეთ. თუ პორტი 1080 დაკავებულია, სხვა თავისუფალი მაღალი პორტი აირჩიეთ და კლიენტი განაახლეთ. ExitOnForwardFailure=yes SSH-ს ასრულებს, თუ მსმენელი ვერ შეიქმნა.

SOCKS ბოლო წერტილის გამოყენება

curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/

ეს მოთხოვნა დანიშნულების სახელის დამუშავებას SOCKS5-ით გადააბარებს. სხვა აპლიკაციებს საკუთარი SOCKS პარამეტრები სჭირდება; HTTP პროქსის ველი ამ მსმენელთან SOCKS-ით ვერ ისაუბრებს.

პორტის მფლობელი პროცესის შესამოწმებლად:

ss -ltnp 'sport = :1080'

განზრახულ SSH პროცესს loopback მსმენელი უნდა ეკუთვნოდეს. მისით მოთხოვნა ამოწმებს, დისტანციური სერვერიც აღწევს თუ არა სამიზნეს. გამოიყენეთ თქვენი კონტროლქვეშ მყოფი დანიშნულება, როცა დაკვირვებული გასასვლელი უნდა შეამოწმოთ.

სესიის სიცოცხლის ხანგრძლივობა

Ctrl-C ხურავს SSH პროცესს, მსმენელსა და გადამისამართებულ კავშირებს. SSH კავშირის გაწყვეტაც პროქსის მიუწვდომელს ხდის.

ExitOnForwardFailure საწყის მოწყობას ამოწმებს. ის SSH-ს არ ასრულებს ყოველი მოგვიანო დანიშნულების კავშირის ჩავარდნისას; ცალ-ცალკე შეამოწმეთ სესია, ადგილობრივი პორტი და დანიშნულების მოთხოვნა.

დაკავშირებული სტატიები