Bootstrap

VPN с помощью sshuttle

VPN с помощью sshuttle

На мой взгляд, это самое простое в использовании, и в тоже время, самое надёжное vpn решение для десктопа.

Всё, что требуется это иметь vps сервер с ip адресом той страны, которая вам нужна для работы с заблокированными сайтами.

1)Настроить ssh соединение между вашим хостом и сервером. (как настроить ssh)

2)И на хосте установить программу https://github.com/sshuttle/sshuttle

командой


sudo apt-get install sshuttle

При этом, на удалённой VPS-машине в большинстве случаев абсолютно ничего настраивать не нужно (достаточно, чтобы были установлены пакеты python и был активен сервер SSH). Вам не нужно устанавливать sshuttle на удалённый сервер; на удалённом сервере просто должен быть доступен python. sshuttle автоматически загрузит и запустит свой исходный код на удалённый интерпретатор Python.


3)после этого запуск vpn делается одной командой в терминале, вашего хоста:

Если вы также хотите, чтобы ваши DNS-запросы передавались через DNS-сервер сервера, к которому вы подключаетесь, что порой является необходимостью добавляется опция через двойной дефис (--dns):

если ваши данные сервера такие

IP адрес вашего сервера VPS: 111.111.111.111
логин: root
пароль: (пароль) или настроен доступ по ключу
порт ssh:22

то команда будет такой


sshuttle --dns -r root@111.111.111.111:22 0.0.0.0/0


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"



sshuttle -vvv -e 'ssh -i ~/.ssh/newname_rsa_key' --dns -r root@111.111.111.111:22 0.0.0.0/0

опция -vvv выводит подробности работы программы

При попытке настроить такой vpn в виртуальной машине, у меня возникла ошибка:

c : fatal: ssh connection to server (pid 302144) exited with returncode 255

Но добавив опцию -x 'тот же ip адрес сервера(без указания порта)', работает.

sshuttle -vvvv --dns -r root@111.111.111.111:3333 -x 111.111.111.111 0.0.0.0/0

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (2):

roman roman 24.09.2023 17:50:39

для того чтобы просто создать ssh тоннель, чтобы например с браузера на хосте войти, на localhost сервера нужно выполнить вот такую команду ssh -g -L 8001:localhost:8000 -f -N root@xxx.xxx.xxx.xxx указав вместо иксов ip адрес сервера. и тогда в браузере на хосте по адресу localhost:8001 откроется серверный localhost:8000

Ответить

admin admin 04.10.2023 07:31:03

Чтобы деактивировать 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

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: