В прошлом году я работал в Китае несколько месяцев. Я так и не потрудился настроить настоящий VPN, а просто создал SSH-туннель и изменил настройки прокси-сервера в браузере, чтобы подключаться через него.
Все работало отлично (кроме вспышки, конечно), но это нормально.
Однако теперь я снова в Китае, но у меня возникли проблемы с этим подходом. Я делаю то же самое, что и в прошлый раз, и согласноhttps://ipcheckit.com/Мой IP-адрес действительно является IP моего (частного) сервера в США, и я вхожу на свой сервер, используя отпечаток пальца, который я создал задолго до поездки в Китай, так что MITM не должен быть возможен. Более того, сертификат от ipcheckit.com от GeoTrust - так что все должно быть в порядке
Однако я все еще не могу получить доступ к сайтам, которые заблокированы в Китае. Есть идеи, как это возможно?
решение1
Если вы используете linux или osx, вы можете попробовать использовать sshuttle для создания вашего ssh-туннеля. Это позволит убедиться, что все пакеты туннелируются.
https://github.com/apenwarr/sshuttle
./sshuttle -r имя_пользователя@sshserver 0/0 -vv
Дополнительно используйте публичный DNS-сервер, например Google или OpenDNS.
Также, если вы хотите проксировать свои DNS-запросы, команда будет такой.
./sshuttle --dns -vvr имя_пользователя@sshserver 0/0
Sshuttle прекрасно работает для меня на протяжении последних 2 лет, и я могу получить доступ ко всему, что заблокировано вьетнамскими интернет-провайдерами.
Единственным недостатком является то, что он поддерживает только аутентификацию на основе пароля (AFAIK).
решение2
При использовании SSH-прокси для обхода веб-сайтов, заблокированных DNS-фильтрацией, DNS-запросы могут не проходить через прокси-сервер, что приводит к утечке DNS и отправке DNS-запросов на цензурирующий DNS-сервер. Чтобы проверить, есть ли утечки, перейдите наhttps://ipleak.net/.
Чтобы устранить проблему при использовании настроек прокси-сервера Firefox, обязательно установите флажок «Прокси-DNS при использовании SOCKS v5».
Если ты хочешьвсепрограмм для использования прокси-DNS в Windows, это может быть немного сложнее.Это ТАК ответпредлагает запустить собственный DNS-сервер, который перенаправляет ваши DNS-запросы через прокси. Если у кого-то есть более простой метод, пожалуйста, дайте мне знать, и я обновлю этот ответ.
Я использовал системные настройки прокси-сервера на macOS, и, похоже, никаких утечек DNS там не обнаружено.
решение3
Попробуйте использоватьТОРчерез ваш туннель ssh используйте ваш туннель ssh в настройках прокси в TOR
решение4
Вот как можно туннелировать все через sshuttle, включая DNS, используя аутентификацию с открытым ключом.
sshuttle --dns -vr <remote username>@<remote IP address> 0/0 --ssh-cmd 'ssh -i <path to private key>'