88 lines
6.3 KiB
JavaScript
88 lines
6.3 KiB
JavaScript
export function instructionBlocks({ isGateway, host, port }) {
|
||
const httpProxy = `http://${host}:${port}`;
|
||
const socksProxy = `socks5://${host}:${port}`;
|
||
|
||
return [
|
||
{
|
||
id: 'about',
|
||
label: 'Основы',
|
||
title: isGateway ? 'Gateway и прокси' : 'Что такое прокси',
|
||
summary: isGateway
|
||
? 'Два способа направить трафик через это устройство.'
|
||
: 'Способ направить трафик выбранного приложения через VPN.',
|
||
paragraphs: isGateway
|
||
? [
|
||
`Gateway (${host}) заменяет основной шлюз устройства и проводит через VPN весь его интернет-трафик.`,
|
||
`Gateway Proxy (${host}:${port}) работает точечно: его указывают в браузере, редакторе или другом приложении. Если приложение не умеет работать с прокси, можно использовать ProxyBridge.`,
|
||
]
|
||
: [
|
||
`Локальный прокси (${host}:${port}) не перенаправляет приложения автоматически. Каждое приложение должно использовать этот адрес само — напрямую или через ProxyBridge.`,
|
||
'HTTP обычно проще для браузеров и редакторов. SOCKS5 подходит приложениям и инструментам, которым нужен более универсальный транспорт.',
|
||
],
|
||
},
|
||
{
|
||
id: 'proxybridge',
|
||
label: 'Приложения',
|
||
title: 'ProxyBridge',
|
||
summary: 'Направляет через прокси отдельные приложения, даже если у них нет своей настройки.',
|
||
steps: [
|
||
{
|
||
link: ['Установите ProxyBridge', 'https://interceptsuite.com/download/proxybridge'],
|
||
after: ' с официальной страницы проекта.',
|
||
},
|
||
`Добавьте прокси типа SOCKS5: сервер ${host}, порт ${port}.`,
|
||
'Создайте правило, выберите нужное приложение и действие Proxy.',
|
||
'Включите ProxyBridge и запустите приложение заново.',
|
||
],
|
||
note: 'Не добавляйте в правило сам ProxyBridge и VPN-клиент: это может создать прокси-цикл.',
|
||
},
|
||
{
|
||
id: 'switchyomega',
|
||
label: 'Браузер',
|
||
title: 'SwitchyOmega',
|
||
summary: 'Переключает прокси-профили только для браузера.',
|
||
steps: [
|
||
{
|
||
link: ['Установите расширение', 'https://chromewebstore.google.com/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif'],
|
||
after: ' и откройте его настройки.',
|
||
},
|
||
'Создайте профиль Proxy Profile.',
|
||
`Выберите HTTP, укажите сервер ${host} и порт ${port}.`,
|
||
'Создайте профиль Auto Switch, выберите созданный прокси для нужных сайтов, а для остальных оставьте Direct.',
|
||
'Если сайт не загрузился, откройте SwitchyOmega: расширение покажет проблемные ресурсы. Добавьте домен текущего сайта в Auto Switch и назначьте ему прокси-профиль.',
|
||
],
|
||
note: 'Проект больше не поддерживается. Используйте его только если расширение уже подходит вашему браузеру.',
|
||
},
|
||
{
|
||
id: 'vscode',
|
||
label: 'Редактор',
|
||
title: 'Visual Studio Code',
|
||
summary: 'VS Code использует системный прокси или адрес, переданный при запуске.',
|
||
steps: [
|
||
'Если прокси уже настроен в системе, полностью перезапустите VS Code — обычно он подхватит настройку автоматически.',
|
||
'Для отдельного запуска через SOCKS5 используйте команду ниже.',
|
||
{
|
||
link: ['Документация VS Code', 'https://code.visualstudio.com/docs/setup/network'],
|
||
after: ' описывает также системный прокси, HTTP и параметры исключений.',
|
||
},
|
||
],
|
||
code: `code --proxy-server="${socksProxy}"`,
|
||
note: `VS Code не поддерживает логин и пароль для SOCKS5. Здесь прокси ${host}:${port} локальный и без авторизации, поэтому этот вариант подходит. HTTP-адрес ${httpProxy} остаётся альтернативой.`,
|
||
},
|
||
...(isGateway ? [{
|
||
id: 'router',
|
||
label: 'Вся сеть',
|
||
title: 'Заменить Gateway в роутере',
|
||
summary: 'Роутер будет выдавать этот Gateway устройствам как основной шлюз.',
|
||
steps: [
|
||
`Закрепите за Gateway постоянный адрес ${host} в настройках DHCP роутера.`,
|
||
'Откройте настройки локальной сети или DHCP. Не меняйте шлюз WAN/интернет-подключения.',
|
||
`В поле Default Gateway, Router или Основной шлюз укажите ${host}.`,
|
||
'Сохраните настройки и переподключите устройства к сети, чтобы они получили новый маршрут.',
|
||
`Для отката верните в это поле локальный адрес самого роутера вместо ${host}.`,
|
||
],
|
||
note: 'Gateway и устройства должны находиться в одной локальной сети. Сначала проверьте настройку на одном устройстве вручную.',
|
||
}] : []),
|
||
];
|
||
}
|