1

Я использую Debian Lenny и хочу туннелировать rtorrent только через туннель OpenVPN.

У меня работает туннель, файл конфигурации выглядит так:

client
dev tun
proto udp
remote openvpn.xxx.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/xxx/keys/ca.crt
cert /etc/openvpn/xxx/keys/client.crt
key /etc/openvpn/xxx/keys/client.key
tls-auth /etc/openvpn/xxx/keys/tls.key 1
ns-cert-type server
comp-lzo
verb 3
auth-user-pass
script-security 3
reneg-sec 0

Моя идея заключается в том, что я могу запустить прокси-сервер sockd внутри, который перенаправляет трафик в туннель openvpn. Я мог бы использовать приложение * nix "proxifier" "tsocks", чтобы позволить rtorrent подключаться через этот прокси (так как rtorrent не поддерживает прокси).

У меня проблемы с настройкой sockd, так как мой IP внутри VPN меняется каждый раз, когда я подключаюсь. Это файл конфигурации, который кто-то сказал, поможет:http://ircpimps.org/sockd.conf Поскольку мой IP-адрес меняется при каждом подключении, я не знаю, что добавить в этот файл конфигурации. У меня нет контроля над файлом конфигурации на стороне хоста.

Любая помощь хотела. Любой другой метод очень приветствуется.

4 ответа4

1

Вы должны как-то пометить пакеты для этого приложения. Самый простой способ сделать это будет следующим:

  • Запустите rtorrent как собственный пользователь
  • Используйте iptables для пометки соединений от пользователя rtorrent (-m owner --uid-owner rtorrent)
    • В качестве альтернативы вы также можете сопоставить PID (--pid-owner)
  • Используйте политику маршрутизации, чтобы маршрутизировать эти соединения не так, как ваша "обычная" таблица маршрутизации.

Подробное объяснение было бы бесполезным, если бы оно было написано здесь, но в нем должно быть достаточно ключевых слов для поиска в Google

0

Другим способом решения этой проблемы может быть использование socks ower ssh (номер ssh -D portnumber), который отлично работает с tsocks.

0

SOCKS-прокси, вероятно, не лучший инструмент для этой работы. Я настроил это так:

  1. Запустите rtorrent от имени конкретного пользователя
  2. Используйте iptables для пересылки трафика от этого пользователя через VPN

Вопрос, в основном, заключается в том, хотите ли вы запустить rtorrent от имени другого пользователя. Скорее всего, вы запускаете его внутри экрана, и экран не является большим поклонником обращения к его пользователю. Это выполнимо, но вам нужно еще кое-что выяснить.

Исследуя этот точный вопрос для моей установки, я обнаружил, что чрезвычайно трудно ограничить OpenVPN на уровне процесса. Если вы можете найти способ заставить его работать, мне, безусловно, будет интересно.

-1

Скажите rtorrent прослушивать только tun0 или любой другой IP-адрес, назначенный ему. Это должно заботиться о входящих соединениях.

Я не знаю, что такое "sockd", но tsocks конфигурации tsocks - /etc/tsocks.conf IIRC. Но вам нужно приложение с поддержкой носков на другой стороне, а OpenVPN - нет.

Похоже, вы можете сказать rtorrent ограничить порты, которые он использует для исходящих соединений, в определенном диапазоне. Сделайте это, а затем используйте iptables для REDIRECT исходящего трафика на эти порты с eth0 на tun0 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .