VPN с помощью sshuttle
На мой взгляд, это самое простое в использовании, и в тоже время, самое надёжное vpn решение для десктопа.
Всё, что требуется это иметь vps сервер с ip адресом той страны, которая вам нужна для работы с заблокированными сайтами.
1)Настроить ssh соединение между вашим хостом и сервером. (как настроить ssh)
2)И на хосте установить программу https://github.com/sshuttle/sshuttle
командой
При этом, на удалённой VPS-машине в большинстве случаев абсолютно ничего настраивать не нужно (достаточно, чтобы были установлены пакеты python и был активен сервер SSH). Вам не нужно устанавливать sshuttle на удалённый сервер; на удалённом сервере просто должен быть доступен python. sshuttle автоматически загрузит и запустит свой исходный код на удалённый интерпретатор Python.
3)после этого запуск vpn делается одной командой в терминале, вашего хоста:
Если вы также хотите, чтобы ваши DNS-запросы передавались через DNS-сервер сервера, к которому вы подключаетесь, что порой является необходимостью добавляется опция через двойной дефис (--dns):
если ваши данные сервера такие
логин: root
пароль: (пароль) или настроен доступ по ключу
порт ssh:22
то команда будет такой
sshuttle --dns -r root@111.111.111.111:22 0.0.0.0/0
что значат опции, поможет sshuttle -help
-r [USERNAME[:PASSWORD]@]ADDR[:PORT], --remote [USERNAME[:PASSWORD]@]ADDR[:PORT]
ssh hostname (and optional username and password) of
remote sshuttle server
--dns capture local DNS requests and forward to the remote
DNS server
Вот результат успешно выполненной команды:
☯
Terminal:
⌕
≡
✕
user@mx:~ $ sshuttle --dns -r root@111.111.111.111:22 0.0.0.0/0 WARNING: Your system is configured to use an IPv6 DNS server but sshuttle is not using IPv6. Therefore DNS traffic your system sends to the IPv6 DNS server won't be redirected via sshuttle to the remote machine. c : Connected to server.
Вот и всё! Теперь ваш локальный компьютер может получить доступ к удалённой сети, как если бы вы были там. И если ваша «клиентская» машина является маршрутизатором, все в вашей локальной сети могут подключаться к вашей удалённой сети.
Это создает прозрачный прокси-сервер на вашем локальном компьютере для всех IP-адресов, соответствующих 0.0.0.0/0. (Вы можете использовать более конкретные IP-адреса, если хотите; используйте любое количество IP-адресов или подсетей, чтобы изменить, какие адреса будут проксироваться. Использование 0.0.0.0/0 проксирует все.)
Открывайте любые нужные сайты, по этому шифрованному тоннелю. Объеденяйте в одну локальную сеть разные хосты, в общем всё, что вам угодно, как и с любым другим vpn решением.
Eсли вы пожелаете изменить настройки установленные по умолчанию в ssh, например, если нужно указать другое имя ключа, то сделать это можно так: добавить опцию -e "ssh -i ~/.ssh/key_name"
опция -vvv выводит подробности работы программы
При попытке настроить такой vpn в виртуальной машине, у меня возникла ошибка:
Но добавив опцию -x 'тот же ip адрес сервера(без указания порта)', работает.
-
Создано 24.12.2022 15:37:56
-
Roman Sakhno

Комментарии (2):
для того чтобы просто создать ssh тоннель, чтобы например с браузера на хосте войти, на localhost сервера нужно выполнить вот такую команду ssh -g -L 8001:localhost:8000 -f -N root@xxx.xxx.xxx.xxx указав вместо иксов ip адрес сервера. и тогда в браузере на хосте по адресу localhost:8001 откроется серверный localhost:8000
Ответить
Чтобы деактивировать SSH туннель, который был создан с помощью команды "ssh -g -L 8080:localhost:8080 -f -N root@111.111.11.11", вам нужно выполнить следующие шаги: 1. Определите идентификатор процесса (PID) для туннеля, используя команду "ps aux | grep ssh". 2. Используйте команду "kill PID", где PID - это идентификатор процесса, чтобы остановить туннель. Например, если вы получили PID 12345 для туннеля, то команда для его остановки будет выглядеть так: kill 12345
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.