Щоб робити те, що ви хочете, я рекомендую sshuttle .
Ви використовуєте його так:
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
Він автоматично тунелює весь ваш TCP-трафік. Ви можете додати --dns
аргумент, щоб він також тунелював ваш DNS-трафік. На віддаленому сервері потрібно встановити лише Python.
Якщо ви хочете лише тунелювати конкретні програми, я рекомендую проксі-ланцюги .
Після його встановлення запустіть проксі-сервер ssh socks таким чином:
ssh -fND 127.0.0.1:<local port> username@sshserver
Це розпочне прослуховування проксі-сервера "SOCKS" на <local port>.
Потім відредагуйте /etc/proxychains.conf, щоб вказати на той самий порт, що і <local port>.
Нарешті запустіть програму, яку ви хочете, як проксі:
proxychains <program name>
Це має просто працювати. Однак у кількох програм виникнуть проблеми з роботою з проксі-ланцюгами. Також майте на увазі, що за допомогою Firefox вам потрібно змінити додаткові елементи в розділі about: config, щоб змусити його робити пошук DNS через проксі, а не обминати його.
Як додаткова примітка - у веб-браузерах. Якщо вони підтримують проксі-носки шкарпеток, вам не потрібно робити нічого додаткового, щоб змусити їх використовувати вищезгаданий ssh-тунель, просто введіть 127.0.0.1 для проксі-сервера SOCKS та <local port> для проксі-порту.
РЕДАКЦІЯ 3/29/16
Оскільки ця публікація все ще бачить деякі оновлення, я подумав, що я б її оновив. Проксічани все ще знаходяться в більшості репонів Linux і досі працюють у Linux. Однак проект фактично відмовляється і не працює на OSX. Для Linux або OSX я настійно рекомендую перейти на збережений форк: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Окрім роботи в Linux та OSX, її легко компілювати, а також набагато краща підтримка тунелінгу DNS.
Я також повинен згадати ще один варіант - це червоні шкарпетки. Він працює аналогічно проксі-ланцюгам (-ng), і також є ймовірним у вашому dist repo: https://github.com/darkk/redsocks