Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Вопросы, комментарии, багрепорты и запросы фич #8 #561

Open
z3APA3A opened this issue Nov 26, 2020 · 514 comments
Assignees
Labels

Comments

@z3APA3A
Copy link
Collaborator

z3APA3A commented Nov 26, 2020

Запросы фич и багрепорты создавайте как issue, по-русски или по-английски.
Комментарии и вопросы можно создавать как issue или отправлять на 3proxy@3proxy.ru

Пожалуйста, прочитайте FAQ, How To и руководства прежде, чем задавать вопрос:
https://3proxy.ru/doc/
https://3proxy.ru/documents/

Начало в
#468 #394 #332 #274 #245 #169 #12

@freeacetone
Copy link

Возможна ли переадресация на локальный прокси по домену, например ".onion" в 127.0.0.1:9050, ".i2p" в 127.0.0.1:4447? Подобная функция реализована в tinyproxy (upstream), было бы замечательно видеть ее тут.

Также не получилось настроить external по подсетям, например 10.0.0.0/8 на eth1, ff:abcd::/20 на eth2, а всё остальное, что не подошло под фильтры отправлять eth0. Возможно ли это реализовать?

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Dec 3, 2020

Возможна ли переадресация на локальный прокси по домену, например ".onion" в 127.0.0.1:9050, ".i2p" в 127.0.0.1:4447? Подобная функция реализована в tinyproxy (upstream), было бы замечательно видеть ее тут.

allow * * *.onion
parent 1000 ....

Также не получилось настроить external по подсетям, например 10.0.0.0/8 на eth1, ff🔡:/20 на eth2, а всё остальное, что не подошло под фильтры отправлять eth0. Возможно ли это реализовать?

можно выбирать внешний адрес через parent extip, а интерфейс уже выбирать по ip через source routing. Либо делать несколько прокси с разным внешним интерфейсом и парентом перенаправлять в соответствующий прокси, но я бы так настоятельно не рекомендовал, лучше использовать source routing, хотя бы потому, что это не требуется запускать 3proxy с правами root.

@subaric
Copy link

subaric commented Dec 3, 2020

Привет. После перезагрузки машины прокси умирает(

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Dec 3, 2020

Какой машины, как устанавливался прокси, как он запускается?

@subaric
Copy link

subaric commented Dec 5, 2020

На PVS,
apt-get update && apt-get upgrade -y;
apt-get install --allow-unauthenticated software-properties-common -y
apt-get install wget make gcc -y
git clone https://github.com/z3apa3a/3proxy
ln -s Makefile.Linux Makefile
make
sudo make install
echo -n > /etc/3proxy/conf/3proxy.cfg

echo "nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
users $/conf/passwd
daemon
auth cache strong
proxy -n -a -p50000
socks -p50001" >> /etc/3proxy/conf/3proxy.cfg
#https proxy на 50000 порту, socks5 на 50001

echo "user:CL:password" >> /etc/3proxy/conf/passwd

iptables -I INPUT -p tcp -m tcp --dport 50000 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 50001 -j ACCEPT
iptables -I INPUT -p udp -m udp --dport 50001 -j ACCEPT

service 3proxy restart

Работает 3proxy до перезагрузки VPS, после перезагрузки не работает.
Ставил на ubuntu 16 и 18

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Dec 6, 2020

@subaric, попробуй переустановить текущую версию или поправь руками файл для systemd (3proxy.service), удали там &, скорей всего у тебя вот это:
07603ce#diff-6e060557a7f5ddc225f0c7d84c96acf70371621f40be6450f7e9502c6155f6fc

@weselow
Copy link

weselow commented Dec 25, 2020

@z3APA3A привет)
можешь подсказать?
connlim 100 0 * 192.168.0.1,192.168.0.2
разрешит каждому ip по 100 одновременных подключений или поделит их между указанными ip?

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Dec 25, 2020

это лимит по всему трафику соответствующему критериям, т.е. поделит. Чтоба задать по каждому надо правило по каждому.

@VasiliPupkin256
Copy link

Is it possible to route parent proxy requests from a particular external ip? I want it to connect to a parent proxy while establishing connections from a particular external ip. It seams that when I set external ip in a .cfg file it ignores parent directive. I've tried to put external directive before and after parent but it doesn't work.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Dec 26, 2020

Add 'parent extip' to the chain. E.g.

allow *
parent 1000 extip EXTERNAL_IP 0
parent 1000 socks SOCKS_IP SOCKS_PORT SOCKS_USERNAME SOCKS_PASSWORD

'external' is applied to the whole service, e.g. proxy or socks, it is not part of the ACL.

@pistoganza
Copy link

Хотел закинуть донат на рубли - https://yasobe.ru/na/3proxy не работает.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Dec 29, 2020

Спасибо, унес сбор на https://www.tinkoff.ru/sl/P223p57JPc

@fortaran
Copy link

fortaran commented Dec 31, 2020

ДД.
хочу использовать 3прокси для бесшовных мобильных прокси
есть 2 модема 4g которые меняют ip через определенный интервал, на момент смены ip, модем не доступен.

  1. при смене ip у модема 1, подменить его 2ым на момент смены адреса.
    monitor "C:\3proxy\bin64\3proxy.cfg" timeouts 1 5 30 60 180 1800 15 60 auth strong users admin:CL:admin allow admin proxy -n -a -p50001 -i192.168.88.5 -e192.168.102.100 proxy -n -a -p50002 -i192.168.88.5 -e192.168.102.100
    2 затем вернуть обратно как первый модем сменит ip
    monitor "C:\3proxy\bin64\3proxy.cfg" timeouts 1 5 30 60 180 1800 15 60 auth strong users admin:CL:admin allow admin proxy -n -a -p50001 -i192.168.88.5 -e192.168.101.100 proxy -n -a -p50002 -i192.168.88.5 -e192.168.102.100
    3 далее при смене ip у модема 2, подменить его 1ым на момент смен адреса.
    monitor "C:\3proxy\bin64\3proxy.cfg" timeouts 1 5 30 60 180 1800 15 60 auth strong users admin:CL:admin allow admin proxy -n -a -p50001 -i192.168.88.5 -e192.168.101.100 proxy -n -a -p50002 -i192.168.88.5 -e192.168.101.100
    4 и вернуть обратно
    monitor "C:\3proxy\bin64\3proxy.cfg" timeouts 1 5 30 60 180 1800 15 60 auth strong users admin:CL:admin allow admin proxy -n -a -p50001 -i192.168.88.5 -e192.168.101.100 proxy -n -a -p50002 -i192.168.88.5 -e192.168.102.100

написана программа автоматического замена конфига в нужный момент. почему смена не получается бесшовной?
Где я мог допустить ошибку? лаг присутствует все равно. толи какой то кэш браузера мешает, толи команда monitor в конфиге 3proxy мониторит файл не ежесекундно, а например раз в 15 секунд, тем самым не заметив смену конфига моментально, отдавая параметры прокси которые уже не актуальны. (во время смены ip одного из модемов)

@VasiliPupkin256
Copy link

VasiliPupkin256 commented Jan 6, 2021

The parent feature is completely counteractive. I've even hacked this project itself but I feel like an idiot trying to make it work. All I need is to setup a local proxy on port 2000 that will connect to an external socks proxy through a particular interface ip. It didn't work and I've simplified the config to just a single proxy that will pass connection to another local socks proxy and even this simple config fails.

auth none
allow *
parent 1000 socks5+ 127.0.0.1 1081
proxy -i127.0.0.1 -p2000

What is wrong with it? It doesn't use a socks proxy and connects directly.

@ezbik
Copy link

ezbik commented Jan 7, 2021

The parent feature is completely counteractive

Ofc it is not. RTFM says:

auth none : Disables both authentication and authorization. You can not use ACLs.

Your mistake is auth none. parent extends latest allow. In your case allow is ignored because of auth none.

Try that.

auth iponly
allow * *
parent 1000 http  127.0.0.1 1081
proxy -i127.0.0.1 -p2000

@VasiliPupkin256
Copy link

@ezbik it worked. But holy crap how this is counterintuitive!

The second question, how to incorporate this into a working config and use direct connection and parent redirections from the same config? If I write

auth iponly
allow *
parent 1000 socks5+ 127.0.0.1 1080
proxy -i127.0.0.1 -p2000
allow *
proxy -i127.0.0.1 -p3128

it doesn't work, parent directive is tied to a global authorisation list not to a command that follows it and the one allow * dominates the other one.

And if I write something like this instead

auth iponly
allow * * * 2000
parent 1000 socks5+ 127.0.0.1 1080
proxy -i127.0.0.1 -p2000
....

it starts asking for username and password ignoring the auth iponly command https://i.imgur.com/nIYoMMr.jpeg

@ezbik
Copy link

ezbik commented Jan 7, 2021

@VasiliPupkin256 learn about 'flush' directive..

@ezbik
Copy link

ezbik commented Jan 7, 2021

@VasiliPupkin256 or please tell in other words what you are trying to achieve as the final goal.
Something like forward requests from http and socks listeners to the same parent?

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Jan 8, 2021

@fortaran monitor обновляет конфигурацию раз в минуту, используй kill -USR1 если недо перечитать конфигурацию немедленно. Но совсем "бесшовной" смены IP не может быть, браузеры используют keep-alive соединения, т.е. одно соединение используется для отправки многих запросов и поменять где-то IP адрес без сброса такого соединения невозможно.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Jan 8, 2021

@fortaran monitor обновляет конфигурацию раз в минуту, используй kill -USR1 или веб-интерфейс (admin) если надо перечитать конфигурацию немедленно. Но совсем "бесшовной" смены IP не может быть, браузеры используют keep-alive соединения, т.е. одно соединение используется для отправки многих запросов и поменять где-то IP адрес без сброса такого соединения невозможно.

@VasiliPupkin256
Copy link

@ezbik I've had a config with a proxy connecting directly through the VPN interface, then I wanted to add a proxy to the same config and redirect it to another socks proxy in another country over the same VPN interface. I've managed to set it up somehow using the flash command. Thanks for your advises! The way config is written is just a counterintuitive mess, though, and I am scare to touch it again.

@ezbik
Copy link

ezbik commented Jan 8, 2021

@VasiliPupkin256 sometimes it makes sense to run 2 or more 3proxy instances avoiding putting everything to one config.

@weselow
Copy link

weselow commented Jan 8, 2021

Добрый день,
не стал оформлять как отдельный issue, может я что-то не так делаю)
После обновления на 0.9.3 у меня перестала работать команда архиватора

archiver z /opt/3proxy-log-archiver.sh %F

Думал, что-то с правами на 3proxy-log-archiver.sh - выставлял и root и nobody (от кого запускаем 3прокси) - ничего не помогло.
Система Ubuntu 20.04
В какую сторону еще копать?)

П.С. Полный конфиг:

daemon
pidfile /tmp/3proxy.pid
config /etc/3proxy/3proxy.cfg
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
maxconn 100000
timeouts 1 5 30 60 180 1800 15 60
log /var/log/3proxy/3proxy.log H
logformat "-,\''+_L%t,""%N"",%p,%E,""%U"",""%C"",%c,""%R"",%r,%O,%I,""%n"",""%T"" "
archiver z /opt/3proxy-log-archiver.sh %F
rotate 30

# дальше тут блок инструкций по службам типа
allow *
parent 1000 http ${REMOTE_IP} ${REMOTE_PORT}
proxy -p${PORT_ITER} -a -i${INIP} -e${OUTIP}
flush
# повторяется N раз для каждых данных

setuid 65534
setgid 65534

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Jan 11, 2021

@weselow
У тебя лог создается от рута, а потом ты переключаешься на nobody. setuid/setgid всегда следует делать в начале конфига.

@weselow
Copy link

weselow commented Jan 11, 2021

@weselow
У тебя лог создается от рута, а потом ты переключаешься на nobody. setuid/setgid всегда следует делать в начале конфига.

Брал из конфигов с примерами)

@Niek
Copy link

Niek commented Jan 18, 2021

Is there a way to retry a request if the parent proxy responds with an error? It would be great if there was a way to retry max X times before returning the error to the client.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Nov 13, 2023

@mezhgano

#888
необходимо пробросить файлы с описанием TZ внутрь контейнера, а если прокси работает c chroot, то еще и внутрь chroot (либо не использовать chroot)

@Vision20202
Copy link

Vision20202 commented Nov 14, 2023

Ломаю голову и не пойму как настроить IPV6 прокси. Пытаюсь просто на своём компе настроить, вот так прописал:

proxy -6 -p5456 -i192.168.1.211 -e2001:470:534b:0:b8dd:4620:c11a:4f73

Вот данные по интерфейсу:

IPv6-адрес. . . . . . . . . . . . : 2001:470:534b:0:b8dd:4620:c11a:4f73(Основной)
Локальный IPv6-адрес канала . . . : fe80::b8dd:4620:c11a:4f73%15(Основной)
IPv4-адрес. . . . . . . . . . . . : 192.168.1.211(Основной)
Маска подсети . . . . . . . . . . : 255.255.255.0
Аренда получена. . . . . . . . . . : 14 ноября 2023 г. 8:00:38
Срок аренды истекает. . . . . . . . . . : 15 ноября 2023 г. 1:30:39
Основной шлюз. . . . . . . . . : fe80::5a8b:f3ff:fe6b:13cc%15
192.168.1.1
DHCP-сервер. . . . . . . . . . . : 192.168.1.1
IAID DHCPv6 . . . . . . . . . . . : 386956100
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-25-AD-19-D2-00-1D-7D-9F-A1-06
Что я делаю не так? Голову уже сломал. На другом сервере, где подключение напрямую к сетевой карте без проблем настроил. А здесь не выходит ничего. У меня задачка то сложнее, на мобильных прокси настроить, но пока застрял на этом этапе.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Nov 14, 2023

нужно лог и описание "не выходит"

@Vision20202
Copy link

Я очень извиняюсь, в данном случае был мой косяк. Но вот сейчас сложнее ситуация. Есть модем 4G, с IPV6 работающим. Т.е. если поставить симку в смартфон то адрес IPV6 есть. Прокси IPV4 настраиваются без проблем на этом модеме, а вот IPV6 не выходит. Я банально запутался что здесь считать адресом интерфейса:

  IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4194:f6bf:baab:be34:0:2(Основной)
   Аренда получена. . . . . . . . . . : 14 ноября 2023 г. 16:34:49
   Срок аренды истекает. . . . . . . . . . : 22 декабря 2159 г. 5:23:04
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4292:f854:cdb6:1113:a8c8:742(Основной)
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:42a1:4bcd:baab:be34:0:2(Основной)
   Аренда получена. . . . . . . . . . : 14 ноября 2023 г. 19:30:40
   Срок аренды истекает. . . . . . . . . . : 22 декабря 2159 г. 5:23:04
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:42a2:4856:baab:be34:0:2(Основной)
   Аренда получена. . . . . . . . . . : 14 ноября 2023 г. 17:33:26
   Срок аренды истекает. . . . . . . . . . : 22 декабря 2159 г. 5:23:04
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4311:c263:baab:be34:0:2(Основной)
   Аренда получена. . . . . . . . . . : 14 ноября 2023 г. 20:29:17
   Срок аренды истекает. . . . . . . . . . : 22 декабря 2159 г. 5:23:04
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4313:1fa:baab:be34:0:2(Основной)
   Аренда получена. . . . . . . . . . : 14 ноября 2023 г. 22:26:32
   Срок аренды истекает. . . . . . . . . . : 15 ноября 2023 г. 0:26:32
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4100:8474:cdb6:1113:a8c8:742(Устаревший)
   Временный IPv6-адрес. . . . . . . : 2a03:d000:4100:8474:edb3:b262:d03c:d71a(Устаревший)
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4103:2ae5:cdb6:1113:a8c8:742(Устаревший)
   Временный IPv6-адрес. . . . . . . : 2a03:d000:4103:2ae5:edb3:b262:d03c:d71a(Устаревший)
   Временный IPv6-адрес. . . . . . . : 2a03:d000:4292:f854:edb3:b262:d03c:d71a(Основной)
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:42a2:6764:cdb6:1113:a8c8:742(Устаревший)
   Временный IPv6-адрес. . . . . . . : 2a03:d000:42a2:6764:edb3:b262:d03c:d71a(Устаревший)
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4313:1fa:cdb6:1113:a8c8:742(Устаревший)
   Временный IPv6-адрес. . . . . . . : 2a03:d000:4313:1fa:edb3:b262:d03c:d71a(Устаревший)
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4313:2191:cdb6:1113:a8c8:742(Устаревший)
   Временный IPv6-адрес. . . . . . . : 2a03:d000:4313:2191:edb3:b262:d03c:d71a(Устаревший)
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4321:2d28:cdb6:1113:a8c8:742(Устаревший)
   Временный IPv6-адрес. . . . . . . : 2a03:d000:4321:2d28:edb3:b262:d03c:d71a(Устаревший)
   IPv6-адрес. . . . . . . . . . . . : 2a03:d000:4321:b850:cdb6:1113:a8c8:742(Устаревший)
   Временный IPv6-адрес. . . . . . . : 2a03:d000:4321:b850:edb3:b262:d03c:d71a(Устаревший)
   Локальный IPv6-адрес канала . . . : fe80::cdb6:1113:a8c8:742%33(Основной)
   IPv4-адрес. . . . . . . . . . . . : 192.168.23.100(Основной)
   Маска подсети . . . . . . . . . . : 255.255.255.0
   Аренда получена. . . . . . . . . . : 14 ноября 2023 г. 16:34:37
   Срок аренды истекает. . . . . . . . . . : 15 ноября 2023 г. 16:34:37
   Основной шлюз. . . . . . . . . : fe80::b8ab:beff:fe34:0%33
                                       192.168.23.1
   DHCP-сервер. . . . . . . . . . . : 192.168.23.1
   IAID DHCPv6 . . . . . . . . . . . : 537680783
   DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-26-B7-71-E5-B4-2E-99-E9-B0-0B
   DNS-серверы. . . . . . . . . . . : fe80::b8ab:beff:fe34:0%33
                                       192.168.23.1
                                       192.168.23.1
   NetBios через TCP/IP. . . . . . . . : Включен

Я пробовал разные варианты, но исходил из того, что адрес интерфейса 2a03:d000:4194:f6bf:baab:be34:0:2.
И соответственно пытался так настроить прокси.

proxy -6 -p1253 -i192.168.1.82 -e2a03:d000:4194:f6bf:baab:be34:0:2
Но тогда в логе ошибка:
Service not started on line: 31
Command: 'proxy' failed with code 40, line 31
Строка 31 это собственно:
proxy -6 -p1253 -i192.168.1.82 -e2a03:d000:4194:f6bf:baab:be34:0:2

nserver 192.168.23.1 не знаю, на эту строку не ругается, но может в этом проблема? Это IP адрес модема.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Nov 15, 2023

Судя по ipconfig'у у тебя нет адреса 192.168.1.82
https://3proxy.ru/howtor.asp#INTEXT

@z3APA3A z3APA3A closed this as completed Nov 15, 2023
@Vision20202
Copy link

Судя по ipconfig'у у тебя нет адреса 192.168.1.82 https://3proxy.ru/howtor.asp#INTEXT

Так я же не всю инфу c ipconfig выложил. Этот интрефейс есть абсолютно точно, это IP сетевой карты, через которую комп подключен к интернету.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Nov 15, 2023

запусти прокси с конфигом из командной строки и посмотри что выводится в stderr

@nikolaykuzmin121
Copy link

nikolaykuzmin121 commented Nov 27, 2023

@z3APA3A Добрый день. Интересует несколько вопросов:

  1. Создаю прокси который работает через внешний прокси (parent) и в host принимается, как я понял, только IP хоста, а если host в виде domen.com то порт просто не работает

В таком виде прокси работает:

fakeresolve
parent 1000 connect+ 123.123.123.123 50000
proxy -n -a -p30001

А вот в таком виде прокси уже не работает:

fakeresolve
parent 1000 connect+ domen.com 50000
proxy -n -a -p30001

Разъясните пожалуйста, что нужно дописать, чтобы принимало строку прокси с использованием домена в host?

  1. Второй вопрос касательно плагина SSLPlugin. Задача, чтобы каждый порт конфига работал через свой parent прокси и плюс ко всему чтобы каждый работал через личные подменные сертификаты, в соответствии с их личным набором ключей и сертификатов (3proxy.key, 3proxy.pem, server.key)

Сделал вот такой конфиг:

monitor "D:\test\config.cfg"
plugin "D:\3proxy\bin64\SSLPlugin.dll" ssl_plugin
daemon
internal 111.111.111.111
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
fakeresolve
maxconn 10000
auth iponly
ssl_certcache "D:\test\cache\1\"
ssl_mitm
allow * 133.133.133.133
parent 1000 connect+ 123.123.123.123 50001
proxy -n -a -p30001
ssl_nomitm
flush
ssl_certcache "D:\test\cache\2\"
ssl_mitm
allow * 133.133.133.133
parent 1000 connect+ 123.123.123.123 50002
proxy -n -a -p30002
ssl_nomitm
flush
ssl_certcache "D:\test\cache\3\"
ssl_mitm
allow * 133.133.133.133
parent 1000 connect+ 123.123.123.123 50003
proxy -n -a -p30003
ssl_nomitm
flush

Соответственно в каждой папке cache\1; cache\2; cache\3 свой набор ключей (3proxy.key, 3proxy.pem, server.key). При запуске всех прокси замечаю, что подменный сертификат генерится только в папке cache\3 от всех ключей той самой 3й папки. Понимаю, что при чтении подхватилась последняя директория ssl_certcache, с которой и ведется работа, но хотелось бы как то реализовать задумку. Хотелось бы, чтобы в каждой папке сгенерировался свой подменный сертификат с ключами соответствующей каждому порту папки. Я понимаю, что на каждый порт можно создать свой конфиг и запустить тысячи конфигов работающих как нужно, но было бы удобнее все расположить в одном конфиге. Подскажите пожалуйста, что я делаю не так?

@basinilya
Copy link

basinilya commented Dec 20, 2023

Ситуация. Компьютер подключен к интернету через модем. Оператор поддерживает IPV6 и когда заходишь на сервис Яндекса, то видно два IP - IPV4 и IPV6. Делаю из модема прокси, под этим прокси захожу на туже страницу Яндекса - IPV6 уже нет. Вопрос, почему пропадает IPV6? Опция -46 или в любой модификации не помогает. Как же настроить прокси так, чтобы и IPV6 адрес тоже был?

Такие вещи надо проверять на сайтах где доступ исключительно по ipv6. С компа без прокси адрес открывается? https://ipv6test.google.com/ . А через прокси? А если нет, то какая ошибка?

Касательно проблемв: возможно компу ipv6 адрес присваивается, а модему нет. Возможно пров выдает только 1 ipv6 адрес и он достаётся компу а не модему. Если там Линукс, можно команду ip addr выполнить и посмотреть

@ezbik
Copy link

ezbik commented Dec 20, 2023

сайты, где доступ исключительно по IPV6?

те , где есть только AAAA запись. Пример https://ipv6.tanatos.org/ip.php

@Vision20202
Copy link

Какая то мифическая ситуация с IPV6 прокси. Два модема - всё нормально работает, пока оба модема к разным компьютерам подключены - прокси работают, IPV6 адреса внешние у них разные. Стоит поставить оба модема на один комп - у них становятся одинаковые внешние IPV6 адресу. Причем меняешь их, через отключение и подключение модема и адреса всё равно одинаковые. Это какая-то, возможно, проблема в маршрутизации, но я уже голову сломал где искать суть проблемы. Подскажите кто-нибудь.

@vukitoso
Copy link

Здравствуйте Владимир.
Спасибо вам за 3proxy, очень полезный инструмент, постоянно им пользуюсь.
Заметил, что статические DNS записи через "nsrecord" не поддерживают регулярное выражение.
Предлагаю добавить возможность использования регулярки для доменных имён. Пример:

nsrecord telemetry-incoming.*.services.mozilla.com 127.0.0.2

в данном случае вместо звёздочки может быть как 1 поддомен, так и несколько:
telemetry-incoming.test1.services.mozilla.com
telemetry-incoming.test1.test2.services.mozilla.com
telemetry-incoming.test3.test1.test2-111.services.mozilla.com

На роутерe mikrotik регулярки например выглядит так:

telemetry-incoming\..*\.services\.mozilla\.com
\.?doubleclick\.
\.?google-analytics\.
\.?googleadservices\.
adservice\.google\.
\.?tns-counter\.ru

т.е. если мне нужно использовать точку, то она экранируется.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Jan 30, 2024

@nikolaykuzmin121 поставь fakeresolve после parent

по второму вопросу - запусти несколько прокси с разными конфигурационными файлами

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Jan 30, 2024

@nikolaykuzmin121 да, если у тебя несколько сетевых интерфейсов с дефолтным маршрутом, то тебе надо или настраивать source routing или биндить прокси ко внешнему интерфейсу (-De), иначе весь исходящий трафик пойдет через более приоритетный интерфейс

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Jan 30, 2024

@vukitoso, DNS кеш хранится в виде хеш-таблицы, поиск по всем DNS записям с маской был бы слишком долгим. То что тебе надо делается не через nsrecord а через ACL с deny по доменам
deny * * *doubleclick*,*google-analytics*
или через pcre https://3proxy.ru/plugins/PCREPlugin/

@z3APA3A z3APA3A reopened this Jan 30, 2024
@Vision20202
Copy link

Поправил в мастере минимальное время кеширования на 1 секунду, должно помочь
Можно ли как-то проверить этот параметр, при запущенном сервисе 3proxy? Я вроде скомпилировал версию с фиксом из исходников, но при проверки версии выдает очень старую. При этом у меня еще в этой версии с IPV6 проблемы, вот может я что-то не правильно сделал?

@vadegdadeg
Copy link

Здравствуйте! Возможно ли с помощью 3proxy сделать прозрачный прокси для privAxy (не путать с privOxy)?
Privaxy это MiTM-прокси, который очень хорошо режет рекламу. Но проблема его в том, что он не умеет работать прозрачно. Еще одна проблема, что он слушает только локалхост, но ее можно решить пересобрав программу или с помощью грязного хака в хекс-редакторе и заставить слушать любой адрес.
Privaxy стоит на шлюзе, который имеет 2 интерфейса, в Интернет и в локальную сеть. Интернет раздается с помощью NAT, все стандартно как в обычных роутерах.
Если прописать адрес:порт в браузерах клиентов и добавить сертификат, то все работает как и задумано автором.
Но хотелось бы "без прописки" прокси у клиентов, т.к. телевизор и т.п. устройства это не поддерживают.
Помогите написать правильный конфиг к 3proxy.
Privaxy слушает 192.168.1.1:8100, где 192.168.1.1 адрес интерфейса локальной сети.
Надо перенаправить с определенных клиентов, допустим, 192.168.1.5 все соединения на 80 и 443 порт допустим на порт 8080, на котором будет сидеть 3proxy.
Т.е. 3proxy должна слушать 8080 на который через DNAT в iptables будут приходить коннекты клиентов на 80 и 443 порты и перенаправлять это на Privaxy (192.168.1.1:8100), я правильно представляю схему?
Загвоздка в конфиге, я воспользовался примером из плагина для прозрачности, но что-то пошло не так, оно работает но как бы мимо Privaxy.
Спасибо!

auth none
#allow * * * 80
#parent 1000 http 0.0.0.0 0
allow *
parent 1000 connect 192.168.1.1 8100 
#USER PASSWORD
transparent
tcppm -i192.168.1.1 8080 127.0.0.1 11111
#notransparent
#proxy

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Feb 17, 2024

@vadegdadeg
https://3proxy.ru/howtor.asp#LIMITS

A: Обычные ошибки - использование auth none (для работы любых функций, основанных на ACL, требуется auth iponly, nbname или strong),

@vadegdadeg
Copy link

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

Есть классический Linux-шлюз с двумя интерфейсами, один смотрит в интернет (eth0), другой в локалку(eth1) 192.168.1.1
Раздача интернетов реализована через NAT, но есть клиенты типа телевизора, куда прокси не пропишешь, а хотелось бы их кое в чем ограничить.
Отключил в iptables для одного клиента NAT и поднял обычный прокси на базе 3proxy и если прописать его в настройках, то все работает как задумано. А вот с прозрачностью выходит косяк, точнее ничего не выходит.

  1. Первое чего я пытаюсь понять, утилиты tcppm (из мешка 3proxy), rinetd и правила в iptables в таблице nat в цепочке PREROUTING делают одно и тоже? Т.е. перенаправляют с порта такого-то на порт такой-то? В этом и заключается т.н. прозрачность?
  2. Я отключаю NAT для клиента, перенаправляю 80 и 443 192.168.1.1 на 192.168.1.1:3128, но ничего не работает. Чтобы исключить DNS я проверяю пару сайтов по ip-шнику, но результат аналогичный. При этом netstat’ом видно, что утилита (например tcppm) порты эти (80 и 443) слушает.
  3. В 3proxy есть директивы transparent и notransparent, я пробовал делать аналогично конфигу в примере, но все так же ничего не работает. Куда копать, а?
    Для начала я пытаюсь получить просто прозрачный прокси без перенаправления на родительский.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Feb 26, 2024

443 нельзя перенаправлять в HTTP прокси, т.к. там идет не прокси-запрос (CONNECT), а TLS к конечному серверу, надо делать именно tcppm как указано в
https://3proxy.ru/plugins/TransparentPlugin/
и затем завернуть трафик в порт, сам по себе он туда не попадет.

Вообще transparent вместо nat имеет смысл делать только если есть какая-то потребность в прокси, например трафик считать/ограничивать или перенаправлять через родительский прокси.

@ezbik
Copy link

ezbik commented Feb 26, 2024

#3proxy.conf

setgid 126
setuid 118
internal 0.0.0.0
external 0.0.0.0
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%.  %N.%p %E %U %C:%c %R:%r %O %I %h %T"

#transparent proxy
allow *
plugin /usr/local/lib/TransparentPlugin.ld.so transparent_plugin
tcppm 31281 127.0.0.1 31282
flush
### redirect transit  traffic to 3proxy
*nat
-A PREROUTING -i docker0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 31281
-A PREROUTING -i docker0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 31281

пробуйте @vadegdadeg ; у меня когда-то так работало.

@vadegdadeg
Copy link

Ребята, большое вам спасибо за помощь! Наконец то настало просветление!
Моя ошибка заключалась в том, что я посчитал, что iptables и tcppm делают одно и тоже и вторая ошибка в том, что я сразу перенаправлял на порт прокси (3128) без промежуточного порта. Т.е. в tcppm указывал 3128 ip 3128.

@vukitoso
Copy link

vukitoso commented Mar 21, 2024

Здравствуйте Владимир.
Подскажите пожалуйста, возможно заставить 3proxy использовать внешний интерфейс, без default маршрута в этот интерфейс?

У меня есть основной интерфейс eth0 с ип 192.168.1.51.
Так же я поднял впн-туннель, который использует tun0 интерфейс с ип 10.0.150.2
Задача: принимать socks5 соединение на 192.168.1.51, но в интернет идти через туннель tun0 (10.0.150.2), при том, что маршрут по умолчанию смотрит в eth0.
default via 192.168.1.1 dev eth0

Если изменить маршрут по умолчанию через tun0, то конфигурация работает.
default via 10.0.150.1 dev tun0

В настройках 3proxy я указал:
internal 192.168.1.51
external 10.0.150.2

Как я понял, 3proxy не хватает информации о шлюзе - 10.0.150.1, через который надо маршрутизировать трафик.

Спасибо.

@basinilya
Copy link

basinilya commented Mar 21, 2024

@vukitoso
Попробую помочь. Ваш конфиг верный, но дефолтный маршрут должен быть на обоих интерфейсах. Чтобы ОС выбирала тот маршрут, который вам нужен, есть два способа: первый, классический - разная метрика: маленькая метрика дефолтного маршрута "5" на eth0, а большая "100" на tun0. Второй, современный - разбивание всего адресного пространства на две половинки и создание двух маршрутов вместо одного, чтобы как более специфичные они выбирались по дефолту. Так обычно делает OpenVPN, но вам можно наоборот два таких маршрута назначить на eth0, а дефолтный оставить только на tun0.

default via 10.0.150.1
0.0.0.0/1 via 192.168.1.1
128.0.0.0/1 via 192.168.1.1

@vukitoso
Copy link

vukitoso commented Mar 23, 2024

default via 10.0.150.1
0.0.0.0/1 via 192.168.1.1
128.0.0.0/1 via 192.168.1.1

@basinilya спасибо большое за подсказку. Но вариант не сработал.
Из самого линукса трафик идёт через 192.168.1.1, а через 3proxy трафик вообще перестал пересылаться.

С метрикой аналогично.
Работает только вариант, где 10.0.150.1 будет с более меньшей метрикой (приоритетной). Но тогда и трафик от сервера будет тоже идти через tun0.

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Mar 25, 2024

Помимо двух маршрутов, необходимо чтобя для трафика от прокси выбирался нужный, это можно сделать одним из двух способов:

  1. Биндить прокси к исходящему адресу -e10.0.150.2 и для этого адреса конфигурировать source routing через нужный интерфейс (этот способ правильный)
  2. Биндить прокси к исходящему адресу -e10.0.150.2 и исходящему интерфейсу -Detun0 - прокси надо запускать от рута

@vukitoso
Copy link

vukitoso commented Mar 25, 2024

Спасибо большое Владимир.
Попробовал 2 способ для начала и сразу получилось, даже без рута, процесс запущен от пользователя proxy.

По 1 способу немного не понял как именно конфигурировать source routing.
Вот так:
ip route replace default via 10.0.150.1 dev tun0 src 10.0.150.2

@z3APA3A
Copy link
Collaborator Author

z3APA3A commented Mar 26, 2024

Поищите source routing или policy routing под конкретный дистрибутив, например source routing CentOS 7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests