# bez-zapreta

> Dynamic socks5 server

Latest version **0.1.6** (published 2022-06-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install bez-zapreta
pnpm add bez-zapreta
yarn add bez-zapreta
bun add bez-zapreta
```

Provides the commands `bezzapreta`, `bez-zapreta`.

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.6 |
| Published | 2022-06-28 |
| First published | 2022-06-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 53.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | yes |
| GitHub stars | 0 |
| Author | Avin Lambrero |
| Maintainers | carcinogen75 |
| Keywords | rkn.gov.ru, роскомнадзор, roskomnadzor, proxy, socks5, tor |

## Links

- npm: https://www.npmjs.com/package/bez-zapreta
- Repository: https://github.com/avin/bez-zapreta
- Homepage: https://github.com/avin/bez-zapreta#readme
- Issues: https://github.com/avin/bez-zapreta/issues
- npm.io page: https://npm.io/package/bez-zapreta

## Dependencies (5)

- [ssh2](https://npm.io/package/ssh2.md) ^1.11.0
- [yargs](https://npm.io/package/yargs.md) ^17.5.1
- [netmask](https://npm.io/package/netmask.md) ^2.0.2
- [socksv5](https://npm.io/package/socksv5.md) ^0.0.6
- [patch-package](https://npm.io/package/patch-package.md) ^6.4.7

## Alternatives

- [@regle/core](https://npm.io/package/@regle/core.md) — 47.0K weekly downloads
- [typeof-arguments](https://npm.io/package/typeof-arguments.md) — 12.5K weekly downloads
- [@lokalise/projects-engine-contracts](https://npm.io/package/@lokalise/projects-engine-contracts.md) — 978 weekly downloads
- [@osjwnpm/nam-laboriosam-quibusdam](https://npm.io/package/@osjwnpm/nam-laboriosam-quibusdam.md) — 70 weekly downloads
- [@oridune/validator](https://npm.io/package/@oridune/validator.md) — 16 weekly downloads

## Recent versions

- 0.1.6 (latest) — 2022-06-28
- 0.1.5 — 2022-06-27
- 0.1.4 — 2022-06-26
- 0.1.3 — 2022-06-26
- 0.1.2 — 2022-06-25
- 0.1.1 — 2022-06-25
- 0.1.0 — 2022-06-25

## README

# Bez-Zapreta

Socks5 прокси сервер, который проверяет, находится ли запрашиваемый ресурс в черных списках и только в этом случае использует обходной путь.
В случае если ресурса нет в списках - трафик на него пойдет напрямую.

## Установка и запуск

Установите выполнив команду (нужно предварительно установить Node.js):

```sh
npm i -g bez-zapreta
```

Положите в домашнюю директорию файл `.bez-zapreta.js` с настройками обхода блокировки (примеры настроек см. ниже) и запускайте сервер:

```sh
bez-zapreta
```

После этого пропишите в браузере адрес socks5 прокси (по умолчанию это 127.0.0.1:1080). Наслаждайтесь!

## Примеры настроек

Для работы программы необходимо задать способ обход блокировки. Доступные способы: `socks5`; `ssh`;

Общие необязательные параметры:

```js
module.exports = {
  // Хост для socks5 сервера (по умочанию '127.0.0.1')
  host: '127.0.0.1',

  // Порт для socks5 сервер (по умочанию 1080)
  port: 1080,

  // Список доменов для которых будет применяться обходной путь
  domains: ['wixmp.com'],

  // Список IP для которых будет применяться обходной путь
  ips: ['95.66.188.0/24'],

  // Ссылки на файлы со списком IP адресов для которых будет применяться обходной путь
  ipsUrls: ['https://antifilter.download/list/allyouneed.lst'],

  // Ссылки на файлы со списком доменов для которых будет применяться обходной путь
  domainsUrls: ['https://community.antifilter.download/list/domains.lst'],

  // Автоматически применять правила для субдоменов из списка доменов (по умолчанию true)
  // Например если у вас в списках доменов есть 'wixmp.com', то правила будут применены ко всем субдоменам '*.wixmp.com'
  withSubdomains: true,
  
  // ... тут обязательные настройки обхода блокировки (см. ниже) ...
};
```

Нужно добавить хотя бы один список, иначе программа будет работать в холостую. Рекомендуем начать с

```js
ipsUrls: ['https://antifilter.download/list/allyouneed.lst'];
```

и добавлять другие списки по мере необходимости.

### Обходные пути:

#### Через Socks5

```javascript
module.exports = {
  // ... тут необязательные настройки (см. выше) ...
  
  method: 'socks5',
  socks5: {
    host: 'mysocks.com', // Тут сервер через который будем пропускать запросы на заблокированные ресурсы
    port: 1080,

    // username: 'login', // Если сервер требует авторизацию
    // password: 'password',
  },
};
```

#### Через SSH

SSH сервер должен поддерживать port forwarding

```javascript
const os = require('os');
const path = require('path');
const fs = require('fs');

module.exports = {
  // ... тут необязательные настройки (см. выше) ...
  
  method: 'ssh',
  socks5: {
    host: 'myssh.com', // Тут сервер через который будем пропускать запросы на заблокированные ресурсы
    port: 22,

    username: 'root',
    password: 'password_here',

    // privateKey: fs.readFileSync(path.resolve(os.homedir(), ".ssh", "id_rsa")),
    // passphrase: "passphrase_of_key_here",

    // ... полный список доступных настроек ssh-соединения смотрите тут:
    // https://github.com/mscdex/ssh2#client-methods (настройки `connect`)
  },
};
```

#### Через Tor

Tor клиент умеет поднимать socks5 сервер. Используйте его в настройках Socks5

#### Через PPTP/L2TP и другие VPN

Ничего не выйдет.

---
_Source: https://npm.io/package/bez-zapreta · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
