Нарешті мені вдалося досягти цього ssh
лише:
- запустити локальний проксі-сервер SOCKS на клієнтській машині (за допомогою
ssh -D
)
- підключіться до віддаленого сервера та встановіть переадресацію зворотного порту (
ssh -R
) до локального проксі-сервера SOCKS
- налаштувати серверне програмне забезпечення для використання перенаправленого проксі
1. Запустіть локальний проксі-носок у фоновому режимі
Підключіться до localhost через SSH та відкрийте проксі-сервер SOCKS на порту 54321.
$ ssh -f -N -D 54321 localhost
-f
працює SSH у фоновому режимі.
Примітка: Якщо ви закриєте термінал, де ви запустили команду, процес проксі-сервера буде знищений. Також не забудьте прибрати за собою, закривши вікно терміналу, коли закінчите, або вбивши процес!
2. підключитись до віддаленого сервера та налаштувати переадресацію зворотного порту
Прив’яжіть віддалений порт 6666 до локального порту 54321. Це робить ваш локальний проксі-носок доступним для віддаленого сайту на порту 6666.
$ ssh root@target -R6666:localhost:54321
3. налаштуйте серверне програмне забезпечення для використання перенаправленого проксі
Просто налаштуйте yum, apt, curl, wget або будь-який інший інструмент, який підтримує SOCKS, щоб використовувати проксі 127.0.0.1:6666
.
Войла! Щасливого тунелювання!
4. Необов’язково: налаштувати серверне програмне забезпечення для використання перенаправленого проксі
Я виявив, що встановлення proxychains
на цільовий сервер значно полегшує справи.
Це дозволяє будь-якому програмному забезпеченню використовувати проксі-сервер SOCKS (навіть telnet
), використовуючи LD_PRELOAD
трюк для перенаправлення запитів TCP і DNS з довільних команд у проксі.
Налаштування /etc/proxychains.conf
для використання переадресованого проксі-шкарпетки:
[ProxyList]
# SSH reverse proxy
socks5 127.0.0.1 6666
Довільні інструменти тунелю (для яких використовується TCP) з proxychains
:
$ proxychains telnet google.com 80
$ proxychains yum update
$ proxychains apt-get update