Как можно подключиться к 3proxy по внешнему ip, если запущен клиент adguardvpn-cli?
1.1) так работает.
На VirtualBox7 установлен Ubuntu 22.04 (на хосте win10).
Установлен 3proxy сервер на порт 3129 (установлен в убунту на вирталке).
(проброшен порт на модеме Ростелекома, например, 86.123.201.201:33129 на 192.168.0.14:33129).
(проброшен порт VirtualBox, например, 192.168.0.14:33129 на <:3129> или на <10.0.2.15:3129>).
подключаюсь на мобильном (сотовый оператор ТЕЛЕ2 или wifi от Ростелекома).
ПОДКЛЮЧАЕТСЯ ОТЛИЧНО.
и интернет на телефоне работает.
1.2) не работает через ВНЕШНИЙ
как только подключаю VPN клиент на убунту (например, adguardvpn-cli).
то 3proxy становиться не доступным через внешний ip (т.е. нельзя подключиться к прокси).
Если телефон уже был подключен к прокси, и уже после этого подключается соединение VPN, то на телефоне пропадает интернет.
2-1) так работает
если на телефон подключить wifi.
И прокси подключать по внутреннему ip 192.168.0.14:33129.
ПОДКЛЮЧАЕТСЯ ОТЛИЧНО.
и интернет на телефоне работает.
2-2) так работает не через внешний
включаем VPN-соединение (например, adguardvpn-cli на убунту).
ПОДКЛЮЧАЕТСЯ ОТЛИЧНО.
и интернет на телефоне работает.
Интернет на телефоне уже идет через VPN-соединение на убунту.
-------------
Уже полгода дома так работает. Когда подключаюсь к wifi:
через внутренний ip работает, и ВСЕ сайты доступны (хоть сразу на десяти телефонах)
через внешний ip не получается подключиться к 3proxy
-------- Подскажите, как настроить через внешний ip???
Т.е. охота подключаться находясь вне дома (и использовать "свой" VPN)
Возможно, посоветуете другой софт? (я совсем не привязываюсь к софту)
в клиенте socks5 использую dns (например, 8.8.8.8), но не использую настройки dns в конфиге 3proxy
default gateway нигде не прописывал
network.proxy.socks_remote_dns нигде не прописывал Не использовал и того, что напишу в скобках
{
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 ! -d 192.168.5.0/24 -o tun0 -j SNAT --to-source 10.8.0.5
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.
В этой команде:
-t nat — указывает на использование таблицы NAT.
-A POSTROUTING — добавляет правило в цепочку POSTROUTING, которая обрабатывает пакеты перед их выходом из интерфейса.
-o eth0 — указывает выходной интерфейс (в данном случае eth0 — это внешний интерфейс).
-j MASQUERADE — указывает действие — применить маскарадинг.
}
на этой же виртуалке (ubuntu) установлен nextcloud и еще с десяток сайтов. Все сайты работают на телефоне, даже если включено соединение VPN в ubuntu (т.е. все домены используют ВНЕШНИЙ ip). Но socks5 (3proxy) не подключается при включенном VPN-соединении (клиент(на андроиде) подключается к socks5 только при выключенном vpn-соединении на виртуалке с ubuntu)
# auth none
# включаем авторизацию по логину/паролю
auth strong
# Включаем авторизацию по логинам и паролям
# auth cache strong
users "myuser:CR:hash!!!!!!!"
# только этим пользователям разрешён доступ
allow myuser
# users — список пользователей: имя:CL:пароль (CL — пароль в чистом виде, можно использовать хэширование)
# auth cache strong
# CL – пароль пользователя укаывается в открытом виде
# CR зашифрованный пароль (md5), можно получить с помощью команды openssl passwd -1 -salt yourSalt2
# MD5 шифрование онлайн https://coding.tools/ru/md5
# можно хранить пользователей и пароли в отдельном файле, тогда укажите такую строку users $/etc/3proxy/.proxyauth
# parent
# weight - вес или вероятность выбора этого Ip,вес прокси,
# type - тип прокси (tcp - перенаправление соединения, может быть только последним в цепочке, http - синоним tcp, connect - HTTP CONNECT/HTTPS прокси, socks4 - SOCKSv4 прокси, socks5 - SOCKSv5 прокси),
# ip - IP адрес прокси,
# port - порт прокси,
# username - имя для авторизации на прокси ,
# password - пароль для авторизации на прокси.
# Логин и пароль можно не указывать если сервер их не требует.
# Добавим строку parent 1000 connect IP_proxy_Сервера_2 8085 для порта 4890 (внимание ip и порт разделяются пробелом а не ":" как обычно )
# parent 1000 connect IP_proxy_Сервера_2 8085
NAT не требуется,
надо сконфигурировать external 172.16.219.2 или -e172.16.219.2 в 3proxy
Если включен ip forwarding (для прокси он не нужен, но судя по описанию проблемы у вас он включен), то требуется настроить source routing чтобы пакеты с SRC адреса 172.16.219.2 уходили в tun0, а с адреса 10.0.2.15 в enp0s3 и сконфигурировать external 172.16.219.2 или -e172.16.219.2 в 3proxy (по умолчанию в Linux трафик с любого IP может лететь в любой интерфейс, а вам надо чтобы трафик в сторону клиента летел в один интерфейс, а трафик в сторону сервера назначения - в другой)
Либо можно source routing не конфигурировать, но указать внешний и внутренний интерфейсы для 3proxy, например
Я вначале, склонялся к первому решению (но мозгов не хватило).
Решил, что второй способ ничем не хуже - заработало сразу!
(e/i как только не крутил, а вот про параметры Di / De нигде не натыкался на просторах инета)