---
title: 'Управлять проксированием трафика устройства мобильной фермы'
sidebar_label: 'Управлять проксированием трафика'
sidebar_position: 6
description: 'Как подготовить проксирование трафика устройства мобильной фермы, начать проксирование и закончить его'
---

import Formbricks from '@theme/MDXComponents/Formbricks';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { TabItemLabel } from '@selectel/docux/components';
import CopyIcon from '@selectel/docux/icons/copy';
import TrashIcon from '@selectel/docux/icons/trash';
import CheckIcon from '@selectel/docux/icons/check';
import KeyIcon from '@selectel/docux/icons/key';
import KeyOffIcon from '@selectel/docux/icons/key-off';

# Управлять проксированием трафика устройства мобильной фермы

При проксировании трафик устройств мобильной фермы направляется через ваше устройство, например сервер или ноутбук.
Для связи устройств вы создаете между ними защищенное TLS-соединение — туннель.
Исходящий трафик устройства мобильной фермы можно фильтровать с помощью правил встроенного файрвола.
Подробнее о файрволе в инструкции [Управлять правилами файрвола для проксирования трафика устройств мобильной фермы](/mobile-farm/manage/manage-firewall.mdx).

:::note

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

:::

Для начала работы проксирование нужно [подготовить](#prepare-proxy).
Это достаточно сделать один раз, после этого вы можете [начинать](#start-proxying-traffic) и [заканчивать проксирование трафика](#stop-proxying-traffic), когда необходимо.

## Подготовить проксирование трафика \{#prepare-proxy}

1. [Добавьте Proxy-ключ](#add-proxy-key).
2. [Настройте файрвол](#configure-firewall).
3. [Скачайте файл с утилитой для обратного прокси на ваше устройство](#download-reverse-proxy-utility).

### 1. Добавить Proxy-ключ \{#add-proxy-key}

Proxy-ключ можно добавить в свой профиль или в профиль другого пользователя, а затем использовать его для проксирования трафика устройств мобильной фермы.
Если вы настраиваете проксирование для проведения автотестов, добавьте Proxy-ключ для сервисного пользователя.

Ключ будет доступен во всех проектах, в которые добавлен пользователь.

<Tabs queryString="add-public-proxy-key">
  <TabItem value="own-profile" default>
    <TabItemLabel>
      В свой профиль
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/profile/access/proxy-keys) в правом верхнем углу откройте меню (номер аккаунта) и выберите **Профиль**.
    2. Перейдите в раздел **Доступ** → вкладка **Proxy-ключи**.
    3. Нажмите **Добавить ключ**.
    4. Введите имя ключа.
    5. Нажмите **Сгенерировать ключ**.
    6. В поле **Ключ** нажмите <CopyIcon /> и сохраните ключ в безопасном месте — после закрытия окна его нельзя будет просмотреть.
  </TabItem>

  <TabItem value="other-user-profile">
    <TabItemLabel>
      В профиль другого пользователя
    </TabItemLabel>

    Добавлять ключи другим пользователям может [Владелец аккаунта](/access-control/user-types.mdx#account-owner) и пользователи с ролью [iam.admin](/access-control/role-reference.mdx#iam-admin).

    1. В [панели управления](https://my.selectel.ru/iam/service-users) в верхнем меню нажмите **IAM**.

    2. Перейдите в раздел с нужным [типом пользователей](/access-control/user-types.mdx):

       * **Пользователи панели** — для пользователей с доступом в панель управления;
       * **Сервисные пользователи** — для [сервисных пользователей](/access-control/user-types.mdx#service-users).

    3. Откройте страницу пользователя → вкладка **Доступ**.

    4. В блоке **Proxy-ключи** нажмите **Добавить ключ**.

    5. Введите имя ключа.

    6. Нажмите **Сгенерировать ключ**.

    7. В поле **Ключ** нажмите <CopyIcon /> и сохраните ключ в безопасном месте — после закрытия окна его нельзя будет просмотреть.
  </TabItem>
</Tabs>

### 2. Настроить файрвол \{#configure-firewall}

Правила файрвола применятся, только когда вы [начнете проксирование трафика](#start-proxying-traffic).

Весь входящий трафик разрешен, изменить это нельзя.

Весь исходящий трафик по умолчанию запрещен.
Вы можете настроить правила для исходящего трафика — добавить правила или разрешить весь трафик.
Правила применятся ко всем протоколам.

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

:::info

Например, вы добавили правило, чтобы разрешить трафик по IP-адресу `1.1.1.1`. Если вы делаете запрос на `example.com`, который ассоциирован с IP-адресом `1.1.1.1` на вашем устройстве, это правило не применится. При прохождении файрвола IP-адрес и доменное имя еще не ассоциированы. Правило применится к этому запросу, только если вы разрешите трафик для `example.com`.

:::

<Tabs queryString="configure-firewall">
  <TabItem value="add-rules" default>
    <TabItemLabel>
      Добавить правила
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/mobile-farm/) в верхнем меню нажмите **Продукты** и выберите **Мобильная ферма**.

    2. Убедитесь, что вы находитесь в нужном проекте. Если нужно изменить проект, откройте меню проектов (название текущего проекта) и выберите проект.

    3. Перейдите в раздел **Файрвол**.

    4. Нажмите **Создать правило**.

    5. Выберите действие для правила.

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

       Чтобы правило применялось ко всем адресам, нажмите **Все адреса**.

    7. Введите один порт или диапазон портов.

       Чтобы правило применялось ко всем портам, нажмите **Все порты**.

    8. Нажмите <CheckIcon />. Правило будет добавлено в начало списка.

    9. Чтобы добавить еще одно правило, повторите шаги 4–8.

    10. Опционально: чтобы изменить порядок правил, перетащите правило на нужное место.

    Правила выполняются по порядку в списке — сверху вниз.
    Срабатывает первое подходящее правило.
    Если первое правило разрешает прохождение трафика, то трафик будет разрешен, даже если в правилах ниже настроен запрет.
  </TabItem>

  <TabItem value="allow-all">
    <TabItemLabel>
      Разрешить весь трафик
    </TabItemLabel>

    1. В [панели управления](https://my.selectel.ru/mobile-farm/) в верхнем меню нажмите **Продукты** и выберите **Мобильная ферма**.
    2. Убедитесь, что вы находитесь в нужном проекте. Если нужно изменить проект, откройте меню проектов (название текущего проекта) и выберите проект.
    3. Перейдите в раздел **Файрвол**.
    4. Нажмите **Разрешить весь трафик**.
  </TabItem>
</Tabs>

### 3. Скачать файл с утилитой для обратного прокси на ваше устройство \{#download-reverse-proxy-utility}

1. На вашем устройстве, которое вы соединяете туннелем с устройством мобильной фермы, скачайте [файл с утилитой для обратного прокси](https://s3.mobfarm.selectel.ru/proxy/index.html).

2. Опционально: проверьте оригинальность файла с утилитой:

   2.1. Скачайте файл с хеш-суммой в ту же директорию, в которую вы скачали файл с утилитой. Название файла с хеш-суммой должно совпадать с названием файла с утилитой, но с расширением `.sha256`.

   2.2. Откройте CLI.

   2.3. Убедитесь, что хеши совпадают:

   ```bash
   sha256sum -c <file_name>
   ```

   Укажите `<file_name>` — название файла с расширением `.sha256`, который вы скачали на шаге 2.1.

3. Сохраните название файла с утилитой для обратного прокси, который вы скачали на шаге 1. Для Windows название файла включает расширение `.exe`.

4. Если ваше устройство на ОС macOS, снимите ограничения встроенной системы безопасности для файла с утилитой:

   4.1. Сделайте файл с утилитой исполняемым:

   ```bash
   chmod +x <file_name>
   ```

   Укажите `<file_name>` — название файла с утилитой, который вы сохранили на шаге 3.

   4.2. Снимите метку карантина с файла с утилитой:

   ```bash
   xattr -d com.apple.quarantine <file_name>
   ```

   Укажите `<file_name>` — название файла с утилитой, который вы сохранили на шаге 3.

## Начать проксирование трафика \{#start-proxying-traffic}

Единовременно на одном вашем устройстве можно запустить один туннель.
К этому туннелю можно подключить несколько устройств мобильной фермы.
Для этого на каждом устройстве мобильной фермы надо включить проксирование трафика.

1. [Запустите туннель на вашем устройстве](#start-tunneling).
2. [Включите проксирование трафика на устройстве мобильной фермы](#enable-proxy).

### 1. Запустить туннель на вашем устройстве \{#start-tunneling}

1. На вашем устройстве, на которое вы скачали файл с утилитой, откройте CLI.

2. Запустите туннель.

   ```bash
   <file_name> start --token <proxy-key>
   ```

   Укажите:

   * `<file_name>` — название файла, который вы сохранили при [скачивании файла с утилитой для обратного прокси на ваше устройство на этапе 3](#download-reverse-proxy-utility) на шаге 3. Для Windows название файла включает расширение `.exe`.
   * `<proxy-key>` — Proxy-ключ, который вы сохранили при [подготовке проксирования на этапе 1](#add-proxy-key). Proxy-ключ можно использовать для открытия только одного туннеля. При [включении проксирования](#enable-proxy) на устройстве мобильной фермы туннель можно идентифицировать по использованному Proxy-ключу.

### 2. Включить проксирование трафика на устройстве мобильной фермы \{#enable-proxy}

1. В [панели управления](https://my.selectel.ru/mobile-farm/) в верхнем меню нажмите **Продукты** и выберите **Мобильная ферма**.

2. Убедитесь, что вы находитесь в нужном проекте.
   Если нужно изменить проект, откройте меню проектов (название текущего проекта) и выберите проект.

3. Перейдите в раздел **Устройства**.

4. В строке устройства нажмите на производителя и модель устройства.

5. Нажмите **Начать использование**.

6. На панели инструментов над окном управления устройством нажмите <KeyOffIcon />.
   Если у вас один открытый туннель, то сразу же будет запущено проксирование трафика.

7. Если у вас несколько открытых туннелей, выберите Proxy-ключ, который вы использовали для [запуска нужного туннеля на этапе 1](#start-tunneling).

## Закончить проксирование трафика \{#stop-proxying-traffic}

Проксирование трафика будет закончено, если:

* будет [закрыт туннель](#tunnel-closing);
* или вы [выключите проксирование на устройстве мобильной фермы](#disable-proxy).
  Используйте, если вы продолжите использовать устройство и вам нужен выход в интернет или если вы [завершаете работу с устройством](/mobile-farm/manage/finish-working-with-device.mdx).

### Закрытие туннеля \{#tunnel-closing}

После закрытия туннеля трафик устройства мобильной фермы не будет никуда идти.
Выхода в интернет на устройстве не будет, пока вы не [выключите проксирование на устройстве мобильной фермы](#disable-proxy).

Туннель можно закрыть самостоятельно или он может закрыться автоматически.

Чтобы закрыть туннель:

* в терминале вашего устройства нажмите **Ctrl + C**;
* или закройте терминал вашего устройства;
* или выключите ваше устройство.

Туннель может закрыться автоматически, если:

* в течение 30 минут к туннелю не подключено ни одно устройство мобильной фермы;
* удален Proxy-ключ, который использовали для запуска туннеля.

Если вам нужно продолжить проксирование трафика после закрытия туннеля, заново [запустите туннель на вашем устройстве](#start-tunneling).

### Выключить проксирование трафика на устройстве мобильной фермы \{#disable-proxy}

1. В [панели управления](https://my.selectel.ru/mobile-farm/) в верхнем меню нажмите **Продукты** и выберите **Мобильная ферма**.

2. Убедитесь, что вы находитесь в нужном проекте.
   Если нужно изменить проект, откройте меню проектов (название текущего проекта) и выберите проект.

3. Перейдите в раздел **Устройства**.

4. В строке устройства нажмите на производителя и модель устройства.

5. Нажмите **Начать использование**.

6. На панели инструментов над окном управления устройством нажмите <KeyIcon />.

<Formbricks />
