Я пытаюсь перенаправить весь трафик моего компьютера через локальную службу redsocks через порт 12345. И хотя по какой-то причине https работает, http, похоже, не работает.
/etc/redsocks.conf
base {
log_debug = on;
log_info = on;
log = "file:/var/log/redsocks.log";
daemon = on;
redirector = iptables;
}
redsocks {
local_ip = 0.0.0.0;
local_port = 12345;
ip = proxy.uclv.cu;
port = 3128;
type = http-connect;
login = "jogarcia";
password = "Iron.Maiden19";
}
конфигурация iptables
iptables -t nat -N REDSOCKS
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 100.64.0.0/10 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 198.18.0.0/15 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Anything should be redirected to port 12345
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
# Any tcp connection should be redirected to REDSOCKS chain
iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
Выполнение команды sudo iptables -v -x -n -L
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Выполнение команды sudo iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REDSOCKS tcp -- 0.0.0.0/0 0.0.0.0/0
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain REDSOCKS (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/8
RETURN all -- 0.0.0.0/0 10.0.0.0/8
RETURN all -- 0.0.0.0/0 100.64.0.0/10
RETURN all -- 0.0.0.0/0 127.0.0.0/8
RETURN all -- 0.0.0.0/0 169.254.0.0/16
RETURN all -- 0.0.0.0/0 172.16.0.0/12
RETURN all -- 0.0.0.0/0 192.168.0.0/16
RETURN all -- 0.0.0.0/0 198.18.0.0/15
RETURN all -- 0.0.0.0/0 224.0.0.0/4
RETURN all -- 0.0.0.0/0 240.0.0.0/4
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 redir ports 12345
Если я попробую сайт https, например https: // google. com это работает. Но если это такой сайт, как http://archive.ubuntu.com/ubuntu/ , то это не так.
Однако, если я изменю http-connect на http-relay в конфигурационном файле redsocks, происходит обратное.
Есть ли способ заставить работать оба http и https одновременно?
Сайт redsocks2 ( https://github.com/semigodking/redsocks ), вероятно, объясняет вашу проблему. Этот пример должен содержаться в файле конфигурации. Я цитирую дословно:
"Чтобы заставить redsocks2 работать с прокси-сервером GoAgent, необходимо установить тип прокси-сервера как« http-relay »для протокола HTTP и« http-connect »для протокола HTTPS соответственно. Предположим, ваш локальный прокси-сервер goagent работает на том же сервере, что и redsocks2. Конфигурация для переадресации соединений на GoAgent выглядит следующим образом:
redsocks {
bind = "192.168.1.1:1081"; //HTTP should be redirect to this port.
relay = "192.168.1.1:8080";
type = http-relay; // Must be 'htt-relay' for HTTP traffic.
autoproxy = 1; // I want autoproxy feature enabled on this section.
// timeout is meaningful when 'autoproxy' is non-zero.
// It specified timeout value when trying to connect to destination
// directly. Default is 10 seconds. When it is set to 0, default
// timeout value will be used.
timeout = 13;
}
redsocks {
bind = "192.168.1.1:1082"; //HTTPS should be redirect to this port.
relay = "192.168.1.1:8080";
type = http-connect; // Must be 'htt-connect' for HTTPS traffic.
autoproxy = 1; // I want autoproxy feature enabled on this section.
// timeout is meaningful when 'autoproxy' is non-zero.
// It specified timeout value when trying to connect to destination
// directly. Default is 10 seconds. When it is set to 0, default
// timeout value will be used.
timeout = 13;
}
"
Попробовав ответ Atreyu94 и некоторые другие примеры, у меня сработало следующее:
base {
log_debug = on;
log_info = on;
log = "file:/var/log/redsocks.log";
daemon = on;
redirector = iptables;
}
redsocks {
local_ip = 0.0.0.0;
local_port = 12345;
ip = my.proxy.dns;
port = 3128;
type = http-connect;
login = "myUser";
password = "myPassword";
}
redsocks {
local_ip = 0.0.0.0;
local_port = 12346;
ip = my.proxy.dns;
port = 3128;
type = http-relay;
login = "myUser";
password = "myPassword";
}
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REDSOCKS tcp -- 0.0.0.0/0 0.0.0.0/0
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain REDSOCKS (1 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/8
RETURN all -- 0.0.0.0/0 10.0.0.0/8
RETURN all -- 0.0.0.0/0 100.64.0.0/10
RETURN all -- 0.0.0.0/0 127.0.0.0/8
RETURN all -- 0.0.0.0/0 169.254.0.0/16
RETURN all -- 0.0.0.0/0 172.16.0.0/12
RETURN all -- 0.0.0.0/0 192.168.0.0/16
RETURN all -- 0.0.0.0/0 198.18.0.0/15
RETURN all -- 0.0.0.0/0 224.0.0.0/4
RETURN all -- 0.0.0.0/0 240.0.0.0/4
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 12346
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 redir ports 12345
REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:11371 redir ports 12346
Как вы можете видеть в моих таблицах, я перенаправляю весь HTTP-трафик на порт http-relay, я также перенаправляю TCP-трафик порта 11371 через порт http-relay, я даже не знаю, почему это работает, но это так. Это конкретное перенаправление я видел в:
https://jmkhael.io/escape-proxy-hell-with-redsocks/
Также я перенаправляю только ВЫХОДНОЙ трафик, потому что я работаю не на сервере, а на своем персональном компьютере. . Если вы хотите использовать компьютер, на котором работаете, в качестве своего рода шлюза nat, вам также следует подумать об использовании таблиц PREROUTING.