Як встановити локальний проксі-сервер SOCKS, який тунелює трафік через SSH?


30

Припустимо, у мене є доступ до SSH-сервера, який підтримує тунелювання, і я перебуваю на ПК, на якому працює * ubuntu, як я можу налаштувати локальний проксі-сервер SOCKS, який тунелює трафік через цей SSH-сервер, перш ніж вийти в Інтернет?

Відповіді:


45

sshДвійковий файл , який використовується при підключенні до сервера з SSH підтримує роботу з SOCKS проксі з коробки з -Dпрапором. Приклад:

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337повідомляє sshзапустити локально сервер SOCKS на порт 1337.
  • -f виводить процес на другий план.
  • -C Включається стиснення.
  • -q вмикає "Тихий режим", оскільки мета тут полягає лише в тунелі, ми насправді не піклуємося про вихід помилок і подібне.
  • -Nповідомляє, sshщо команди не надсилатимуться ( -fскаржиться, якщо ми цього не вкажемо).
  • -pвказує, який порт використовувати; очевидно, що це значення за замовчуванням до 22, тому твердження вище безглуздо, але включене для ясності.

Коли ваш сервер SOCKS запущений, вам просто потрібно переконатися, що ваша програма (як правило, веб-браузер) намагається підключитися до локального проксі-сервера SOCKS, а не до звичайного Інтернету.

У Firefox 29 (пояснено тут як приклад), це досягається, перейшовши до меню (три ковбаски у верхньому правому куті), далі Параметри> Додатково> Мережа> (З'єднання)> Налаштування ... - переконайтеся, що ви тільки заповніть поле SOCKS! Оскільки ваш проксі-сервер знаходиться в одній і тій же системі, ви можете використовувати localhostабо 127.0.0.1вказувати назад на будь-який порт, який ви встановили в тій самій системі.

Якщо вам потрібні також тунельні запити DNS (якщо їх немає, ваші пошукові запити DNS розкриють, які веб-сайти ви намагаєтесь відвідати), ви можете просто перевірити "Віддалений DNS" або також виконати всю цю конфігурацію about:config. В останньому випадку відкрийте його та встановіть ці значення:

network.proxy.socks : 127.0.0.1
network.proxy.socks_port : 1337
network.proxy.socks.remote_dns : true
network.proxy.socks_version : 5
network.proxy.type : 1

Вам також може знадобитися цей параметр, щоб виключити певні домени чи сайти з тунелювання:

network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com

Ця відповідь була написана з Франції, але тунель через Швецію :)


Це працювало б лише на firefox.
Брайам

4
Це ніяким чином не Firefox, я включив розділ Firefox як сервіс, оскільки для цього зазвичай використовують SSH тунелювання, він буде працювати в будь-якій програмі, яка підтримує проксі-сервери SOCKS (ssh не хвилює).
pzkpfw

2
Якщо говорити про налаштування браузера для використання проксі. Якщо ви використовуєте google chrome, вам потрібно буде оголосити проксі-сервер у мережевих налаштуваннях ubuntu, оскільки саме цим буде користуватися google chrome. Неофіційні параметри CLI доступні для оголошення проксі без цього. Але станом на кілька тижнів тому це вже неможливо.
MadMike

Спасибі, ви вивели мене з пекла. І я потрапив туди лише тому, що не прочитав вашої відповіді близько 10 годин тому. Повинні були звернути увагу -Dі -pрозлучитися.
озера

Також простіше запам’ятати:ssh -D 1337 user@host
Алкалін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.