Маршрутизация веб-сокета в сеть Tor с использованием веб-приложения Meteor - PullRequest
0 голосов
/ 04 октября 2019

Я делаю свою собственную сеть tor 2 для приложения meteor, которое работает как луковый сайт в сети tor. Итак, я зарегистрировал домен и настроил на нем nginx + privoxy с такой конфигурацией:

upstream onion {
    server 127.0.0.1:8118;
}


server {
        listen 443 ssl;
        server_name mydomain.com;

        ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
        include /etc/nginx/snippets/ssl.conf;



    location / {
            proxy_pass http://onion;
            proxy_set_header Host mydomain.onion;  

        proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";      
    }
}

Итак, nginx передает трафик 127.0.0.1:8118, который является privoxy службой, работающей на той же машине,Конфигурация privoxy:

user-manual /usr/share/doc/privoxy/user-manual
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action   # Main actions file
actionsfile user.action      # User customizations
filterfile default.filter
filterfile user.filter      # User customizations
logfile logfile
listen-address  127.0.0.1:8118
toggle  1
enable-remote-toggle  0
enable-remote-http-toggle  0
enable-edit-actions 0
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
forward-socks5   /              127.0.0.1:9050 .
forwarded-connect-retries  0
accept-intercepted-requests 1
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300

Маршрутизация работает, когда я захожу на mydomain.com, он загружает мое метеорное приложение в сеть tor, но веб-сокеты не подключаются:

Firefox can’t establish a connection to the server at wss://mydomain.com/sockjs/089/9br5we22/websocket.
5048fd7336fcaf90b39dbe9dd187dbbe37296e82.js:61:23114
The connection to wss://mydomain.com/sockjs/089/9br5we22/websocket was interrupted while the page was loading.
5048fd7336fcaf90b39dbe9dd187dbbe37296e82.js:61:23114

Иреактивность метеоров, похоже, потеряна. Может кто-то помочь, это вообще можно достичь? Как правильно перенаправить websocket на мой сайт tor, возможно, мне нужно изменить что-то в privoxy (или использовать другой прокси-сервер). Теперь из поисковика я обнаружил, что они спорили в списках рассылки, что это невозможно или что-то в этом роде. Кто-то сказал, что если privoxy принимает «CONNNECT», то все должно быть хорошо, но в моем случае это явно не так. Как я понимаю, privoxy принимает соединения по умолчанию, если я не укажу в конфигурации. Или, может быть, я сделал мой конфиг nginx неправильно? Также не работают картинки и анимация, они загружаются, но не работают. Итак, я добавлю к этому сообщению, могу ли я подавать изображения из clearnet с помощью nginx, чтобы прервать их загрузку из моего сервиса onion? Имея все это, я должен сказать, что из сети tor - если я загружаю свой луковый сайт в браузер tor, все работает нормально, веб-сокеты подключены, анимация работает и т. Д.

...