Используйте proxychains в терминале

Вопрос или проблема

Я знаю, что использую прокси (tor) по точному ответу этой команды:

sudo proxychains sh -c 'apt update'

Однако, когда я делаю это в 2 шага, ответ команды не такой точный, как раньше: proxychains xfce4-terminal Жду появления окна терминала, затем ввожу:

sudo apt update

Почему?
Кроме того, если я удалю tor, метод из 2 шагов все равно работает; не должен же!

В приведенной выше команде вы используете proxychains для пользователя sudo. Однако, когда вы вызываете proxychains xfce4-terminal, вы создаете новую сессию с sudo $blah, которая больше не проксируется.

По сути, вы имеете дело с ошибкой разрешения прав пользователя. Среда пользователя sudo не наследует от $USER, если это не указано в конфигурации (Defaults_* в /etc/sudoers). Нет переменной окружения для поддержания туннеля proxychains.

Чтобы протестировать это дальше, вы можете попробовать

# Запустите это в терминале
proxychains xfce4-terminal
curl ipinfo.io
# Запустите это в терминале с sudo
sudo proxychains xfce4-terminal
curl ipinfo.io

Вышеуказанные команды вернут одинаковый (проксированный) результат, но это не сработает

proxychains xfce4-terminal
sudo curl ipinfo.io

Ответ или решение

Использование proxychains в терминале может быть несколько запутанным, особенно когда речь идет о работе с привилегиями суперпользователя (sudo). Давайте подробно рассмотрим вашу проблему.

Проблема

Когда вы запускаете команду:

sudo proxychains sh -c 'apt update'

вы явно используете proxychains для всей команды, включая права суперпользователя. Все запросы от apt update проходят через прокси (в данном случае Tor).

Однако, когда вы используете два шага:

proxychains xfce4-terminal

и затем в открывшемся окне терминала выполняете команду:

sudo apt update

вы не получаете ожидаемого результата по нескольким причинам.

Объяснение

  1. Права суперпользователя: Когда вы запускаете команду через sudo, оболочка, запущенная через xfce4-terminal, не наследует настройки proxychains. Это связано с тем, что sudo запускает новую сессию, и её окружение не включает сами прокси-настройки.

  2. Контекст пользователя: sudo не наследует значения переменных окружения, связанных с вашим текущим пользователем (например, переменные, связанные с proxychains), если они явно не указаны в конфигурации /etc/sudoers. Это может привести к тому, что команда, выполняемая с sudo, не будет использовать прокси.

Решение

Чтобы обеспечить использование proxychains с sudo в вашем терминале, вы можете сделать следующее:

  1. Всегда используйте proxychains с sudo: Используйте proxychains непосредственно перед командой, которую вы хотите выполнить с sudo. Например:

    sudo proxychains apt update
  2. Проверка работы прокси:
    Чтобы проверить, работает ли прокси, создайте временный запрос после открытия xfce4-terminal:

    proxychains xfce4-terminal
    curl ipinfo.io

    Это покажет ваш IP-адрес, и вы должны увидеть IP-адрес Tor.

  3. Альтернативный тест:
    Вы можете запустить еще один терминал через sudo, который протестирует работоспособность прокси напрямую:

    sudo proxychains xfce4-terminal

    И затем в этом терминале выполните:

    curl ipinfo.io
  4. Обратите внимание: Если вы отключите Tor, команда proxychains по-прежнему будет работать, если у вас настроены другие прокси (например, HTTP или SOCKS). Однако, если ни один прокси не настроен, proxychains не сможет отправить ваш трафик через прокси-сервер, и запросы будут поступать напрямую, что и объясняет, почему команда работает, даже если Tor удален.

Надеюсь, это помогло прояснить ситуацию с использованием proxychains и sudo!

Оцените материал
Добавить комментарий

Капча загружается...