Скажем, у меня есть server
и client
. Мне нужно создать соединение из client
к website
через server
вроде это был прокси.
Можно ли это сделать с помощью SSH-туннеля или мне нужно установить прокси-сервис на server
?
Вы можете сделать это с помощью ssh
ssh -L 80:remotehost:80 user@myserver
Тогда у вас будет туннель от вашего локального порта 80 к порту удаленного хоста 80. Это не обязательно должно быть то же самое, что и myserver. Чтобы сделать это прозрачным, вы должны добавить запись в файл hosts. Если вы этого не сделаете, vhosts работать не будет. Если вам нужно соединение с SOCKS-прокси, вы также можете использовать
ssh -D 5000 user@myserver
Это создаст SOCKS-прокси на порту 5000 localhost, который направляет все запросы через myserver.
Да, это возможно.
Бегать ssh -D port user@host
и настройте своего клиента на использование вашего компьютера в качестве прокси-сервера SOCKS.
Если вам нужен конкретно HTTP-прокси, вы можете использовать Proxychains и маршрутизировать его через предыдущие SOCKS.
sshuttle работает как VPN, но через SSH.
Прозрачный прокси-сервер, работающий как VPN для бедняков. Пересылка по ssh. Не требует админа. Работает с Linux и MacOS. Поддерживает DNS-туннелирование.
Putty тоже неплохо справляется с этим.
В SSH перейдите к туннелям. Внизу поместите 8080 в порт, а для пункта назначения оставьте его черным и выберите переключатель «Динамический». Это все, что вам нужно сделать, теперь подключитесь к серверу с помощью Putty.
После подключения у вас есть прокси-сервер, работающий на вашем локальном хосте на порту 8080, который будет проксировать все запросы через ваш сервер.
Теперь используйте веб-браузер и настройте прокси, установив host = localhost и port = 8080, и убедитесь, что это прокси-сервер SOCKS, который вы выбрали. Я делаю это все время, поэтому, если вы используете Firefox, обязательно установите плагин FoxyProxy, поскольку он позволяет включать / выключать прокси одним щелчком мыши.
Внимание: имейте в виду, что по умолчанию ваши DNS-запросы не передаются через прокси. Таким образом, веб-сайт, который вы посещаете через прокси-сервер, все равно будет регистрироваться (если они регистрируют этот материал). Вы также можете настроить firefox для прокси DNS-запросов, но по умолчанию он этого не делает.
Чтобы позволить прокси-серверу запускать компьютер и разрешить другим клиентам подключаться к вам, вам понадобится опция -g. Так, например, вы можете запустить это на сервере с именем foo:
ssh -g -ND 9191 root@remotehost
Затем вы можете настроить прокси в браузере клиента на использование сервера foo и порта 9191 для прокси SOCKS. Клиенты также будут отправлять свои запросы foo, который, в свою очередь, перенаправит запрос через ssh на удаленный хост. В Интернете это будет выглядеть так, как будто они используют удаленный хост.
Если вы хотите также пересылать DNS-запросы с помощью firefox, отредактируйте about: config в firefox и установите для network.proxy.socks_remote_dns значение true.
Вы можете использовать SSHUTTLE, вот руководство по его использованию,
https://etherarp.net/sshuttle-a-vpn-for-the-lazy/
вот учебник, как настроить его для работы в качестве службы,
https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe