Firefox 149 поставляется с бесплатным VPN

сейчас обновил лису до 151.0.4, счетчик потраченного трафика у аккаунта сбросился и снова 50 гигов доступно.

upd: оказалось, что в графике какой-то баг и счетчик не меняется по трафику.

неделю уже впн лисы у меня шейпится до 1 мб/с

IPv6 есть? У меня, например, по ipv6 плохой маршрут.

Спойлер
ping -6 p.m1.fastly-masque.net
Обмен пакетами с p.m1.fastly-masque.net [2a04:4e41:8001::11] с 32 байтами данных:
Ответ от 2a04:4e41:8001::11: время=244мс
Ответ от 2a04:4e41:8001::11: время=243мс
Ответ от 2a04:4e41:8001::11: время=244мс
Ответ от 2a04:4e41:8001::11: время=245мс

ping -4 p.m1.fastly-masque.net
Обмен пакетами с p.m1.fastly-masque.net [23.235.42.11] с 32 байтами данных:
Ответ от 23.235.42.11: число байт=32 время=56мс TTL=57
Ответ от 23.235.42.11: число байт=32 время=57мс TTL=57
Ответ от 23.235.42.11: число байт=32 время=58мс TTL=57
Ответ от 23.235.42.11: число байт=32 время=55мс TTL=57

что за провайдер такой лютый? проверял недавно на мобильных операторах в своих свердловских пердях замедления нет.

@Xunlei @Incos
Cделал авторизацию в firefox-proxy через sessionToken из браузера, инструкция:
запустить Firefox с ключом -P firefox.exe -P, создать временный профиль, открыть accounts.firefox.com, авторизоваться, включить vpn (browser.ipProtection.enabled = true в about:config), открыть консоль (F12), очистить ее, вставить скрипт ниже (ввести “разрешить вставку”, чтобы код вставился) и нажать Enter.

Спойлер
console.log("=== Поиск sessionToken ===");

function deepSearch(obj, path = "") {
    if (!obj || typeof obj !== "object") return;

    // Проверяем текущий уровень
    if (obj.sessionToken) {
        console.log("%c✅ НАЙДЕН sessionToken!", "color: green; font-weight: bold; font-size: 14px");
        console.log("sessionToken:", obj.sessionToken);
        console.log("%cСкопируй токен выше ↑", "color: lime");
    }

    // Рекурсивный поиск по всем свойствам
    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            const newPath = path ? `${path}.${key}` : key;
            deepSearch(obj[key], newPath);
        }
    }
}

// Запускаем поиск по всем хранилищам
console.log("Поиск в localStorage...");
Object.keys(localStorage).forEach(key => {
    try {
        const value = localStorage.getItem(key);
        const parsed = JSON.parse(value);
        deepSearch(parsed, key);
    } catch(e) {}
});

Скопировать полученный токен и запустить клиент с ключом -session-token:
proxy.exe -session-token "abcd1234"
Сохраненный refresh token будет в файле tokens.json рядом с exe.

firefox-proxy.zip (2,7 МБ)

Firefox VPN убрали ограничение в 50 гб/мес до конца лета (31 августа), а так же добавили новых выходных точек в самом браузере, на выбор теперь 20 стран на выбор.

Но добавили теперь ограничение по скорости, а именно 100мбит на upload, на download вроде все так же скорость приличная.

Отлично, а на android нет gui клиента по типу этого? Оперу же сделали, firefox искал на гитхабе, не нашел

Если прям хочется, то просто собери под андроид бинарь и в termux запусти, и через любой клиент впн подключись к socks

Придумать бы еще что-нибудь, чтобы пинг (задержка) была у firefox-vpn (go version) как в браузщере

В браузере оно на сишке вроде и пинг вообще не поднимается под нагрузкой, разница прям сильно ощутимая и по скорости и по пингу.

В браузере стабильный пинг, в firefox-vpn он поднимается за 1000

Это можно исправить, Claude вроде пару идей подкинул, можно попробовать. Если сделать несколько upstream коннектов, то и скорости можно поднять.
Screenshot_3

Браузер не пуллит апстрим коннекты и у него проблем с этим нет, надо профилировать и смотреть где проблемы проявляются

Не вызовет ли это сиб. блок?

Пришлось повозиться, но в итоге зарегил новую учетку. Спасибо.

Добавил аргумент session-token в свою сборку. Хотел скрипт для Violentmonkey сделать, но на сайте аккаунта не работает расширение из-за неотключаемых политик.

В блоге fastly вышел пост о firefox VPN - We Built the Proxy Behind Firefox's New Built-In VPN — Here's How It Works | Fastly , если вдруг кому-нибудь интересно. Статья за геоблоком, открывается только через VPN.

TCP представляет собой надёжный упорядоченный поток байтов, и если даже один пакет теряется или задерживается, TCP приостанавливает доставку всего, что находится за ним в очереди, до тех пор, пока этот пакет не будет повторно передан и подтверждён.

При потоковой передаче видео в середине экрана появляется индикатор буферизации. Это означает, что в TCP отсутствует один или несколько пакетов, и данные удерживаются на уровне TCP, поскольку протокол не может передавать данные на прикладной уровень в неправильном порядке.

Расплывчатая формулировка. Приостанавливает доставку клиентскому приложению. На сетевой стороне следующие пакеты продложают приходить и отправляются в буфер. Как забавно выразился ИИ:

Пакеты, следующие за потерянным, не пропадают, они копятся на принимающей стороне и ждут потерянный собрата.

Далее:

Мультиплексирование соединений в QUIC означает, что по одному соединению могут проходить несколько независимых потоков без блокировки в начале очереди, что крайне важно для браузерного трафика, генерирующего десятки параллельных запросов при каждой загрузке страницы.

В многопользовательской игре постоянно одновременно передаются различные типы данных: координаты игроков, обновления здоровья, сообщения в чате, звуковые события, изменения инвентаря, регистрация попаданий. При использовании протокола TCP все эти потоки делят между собой один упорядоченный канал.

По моему, путают тёплое с мягким. А что мешает открыть несколько TCP соедининений? Но вообще да, в QUIC с этим получше.

И ещё они смешали end-to-end encryption с CONNECT:

Ключевым фактором здесь является сквозное шифрование. Без протокола CONNECT прокси-серверу приходится расшифровывать и заново шифровать HTTPS-трафик для его пересылки (по схеме «человек посередине»). При использовании CONNECT обмен данными TLS происходит напрямую между клиентом и конечным сервером. Прокси-сервер никогда не видит открытый текст. Прокси знает только имя хоста и порт назначения, но ничего не знает о том, что именно передаётся. Поскольку CONNECT создаёт «сырой» TCP-туннель, через него может проходить что угодно.

Прекрасно видит. Если клиент не использует шифрование (хоть это и редкость). Сам CONNECT ничего не шифрует, тем более E2E. А MITM вообще в основном только у корпорастов встречается или при локальных тестах.

Странная статья.

Пишут, MASQUE (QUIC) будет использоваться в конце года, но уже хвалятся им. Это правда?

Есть переписанный на python клиент, в котором HTTP/3 уже работал. Я сам лично не проверял, у кого есть желание - покопайтесь.

FirefoxVPN.zip (15,8 КБ)