- Настройка системы для выхода в интернет через socks5 прокси
- Как заставить все приложения Linux использовать прокси SOCKS
- 2 ответа 2
- How to force all Linux apps to use SOCKS proxy
- 4 Answers 4
- Forward all traffic to a socks5 proxy
- What is SOCKS5?
- Required dependencies
- Proxy chain will be:
- Ready? then go ahead
- Hint
Настройка системы для выхода в интернет через socks5 прокси
Стоит Ubuntu 16.04.2, имеется Socks5 прокси (запароленный)
Нужно настроить систему на работу через этот прокси.
Повторюсь, именно всю систему, так как мне нужно чтобы все приложения работали через этот прокси, а не отдельные.
Прежде чем написать сюда перелопатил терабайт информации в гугле и все безрезультатно
Какие действия предпринимались:
1. Запись строки socks_proxy=»socks://user : pass@proxy : port/» в файл /etc/environment — чтобы изменения вступили в силу нужно перезагрузить компьютер, но после перезагрузки изза этой «чудо строчки» не запускаются сетевые сервисы (на ноуте полностью отсутствуют какие либо признаки наличия сетевых адаптеров)
2. Настройка через GUI — Настройки -> Сеть -> Прокси сервер — Режим: Настроить самостоятельно -> Узел Socks — после этих действий при попытке открыть какой либо сайт в браузерах выдает ошибку: Страница по адресу https://адрес сайта/ может быть временно недоступна или перемещена на новый адрес
3. Читал информацию про dante-client, но как я понял что для того чтобы запустить какую нибудь программу, при этом чтобы она работала через прокси, нужно в терминале писать команду socksify . Но такой вариант запуска программ для меня как для новичка в Linux это маразм
4. Читал информацию про proxychain, но насколько я понял, с помощью нее можно только консольные приложения запускать через прокси.
Исходя из всего вышесказанного назревает вопрос, есть ли в Linux, в частности в Ubuntu «человеческий» способ настроить прокси в одном месте и забыть об этом?
По крайней мере до тех пор пока не придется сменить адрес прокси.
Как заставить все приложения Linux использовать прокси SOCKS
В Linux мне нужен способ для маршрутизации всего сетевого трафика интерфейса enp2s0 через SOCKS4 192.168.1.2:1080 (или любого прокси-сервера SOCKS)- что-то вроде Proxifier в Windows. Прокси работает нормально, если вручную установить в Chrome или Firefox. ОС: Linux Mint 19.1 Вещи, которые я пытался:
- Я установил прокси вручную в настройках сети, но я не установил его; Chrome все еще подключается напрямую. Вот скриншот:
- Proxychains работает отлично, но я должен вручную запускать каждое приложение с терминала.
Я не знаю, как использовать Redsocks или Iptables (пока).
Я надеюсь, что есть графический интерфейс, такой как Proxifier для Linux, но решение на основе терминала (CLI) вполне подойдет.
2 ответа 2
для нетерпеливых просто сделай следующее; при условии, что прокси-сервер example.com:7777 и это socks5 (измените его на свой позже)
создайте пустой файл в любом месте и назовите его redsocks.conf (или как угодно), я предполагаю, что он находится здесь /etc/redsocks.conf (измените его на свой).
измените example.com 7777 с вашим прокси (обратите внимание, что вы можете использовать любой local_port кроме 12345 , это локальный порт, для которого мы установим правило iptable для перенаправления трафика, поэтому, если вы используете другой, обязательно используйте его в последующие шаги ниже)
— теперь запустите redsocks с назначением файла конфигурации следующим образом
sudo redsocks -c /etc/redsocks.conf
измените место назначения вашего redsocks.conf (если вы получили «bind: Address уже используется», попробуйте killall redsocks ), вы также можете проверить, привязан ли redsocks к локальному порту 12345 с помощью netstat -tulpn
— теперь, когда redsocks запущен и готов, давайте изменим правила iptables для использования redsocks. это должно быть настроено в соответствии с вашими потребностями, но если вы хотите перенаправить все пакеты HTTP и HTTPS через прокси. Определите следующие правила.
sudo iptables -t nat -N REDSOCKS sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345 sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDSOCKS sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDSOCKS sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDSOCKS sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDSOCKS
теперь ваш http и https трафик должен быть перенаправлен через example.com:7777
если вы хотите использовать сброс Iptables:
iptables -F iptables -t nat -F iptables -t mangle -F iptables -X
Дополнительный совет: если у вас есть vpn на вашем iphone или android, вы можете бесплатно использовать его на своем компьютере, независимо от того, какая ОС есть. просто подключите приложение vpn для телефона и установите прокси-сервер socks (в android вы можете использовать приложение «серверы»), затем используйте прокси на вашем компьютере, как указано выше, теперь весь трафик с вашего компьютера маршрутизируется через ваш телефон vpn. аккуратный.
How to force all Linux apps to use SOCKS proxy
Using Linux, I need a way to route all network traffic of interface enp2s0 through SOCKS4 192.168.1.2:1080 (or any SOCKS proxy for that matter) – something like Proxifier in Windows. The proxy works fine when manually set in Chrome or Firefox. OS: Linux Mint 19.1 Things I tried:
- I set the proxy manually in network settings, but it’s just like I didn’t set it; Chrome still connects directly. Here’s a screenshot:
- Proxychains is working great, but I have to manually launch each app individually from the terminal.
I don’t know how to use redsocks or iptables (yet).
I hope there’s a GUI like Proxifier for Linux, but a terminal (CLI)-based solution is okay.
Have you also looked at Redsocks2 (github.com/semigodking/redsocks)? It seems to be actively maintained and the documentation is easier to follow than Redsocks. Have you looked into the answers of askubuntu.com/a/513956/385961 and superuser.com/a/1122572/168962, regarding gsettings under Gnome and general shell environment variables to influence http-based proxy redirection?
4 Answers 4
for the impatient just do the following; assuming that the proxy is example.com:7777 and it’s socks5 (change it with your own later)
, make an empty file anywhere and name it redsocks.conf (or whatever), I’ll assume it’s here /etc/redsocks.conf (change it with your own).
change example.com 7777 with your proxy, (note that you can use any local_port other than 12345 ,it’s the local port that we will set an iptable rule to redirect the traffic to, so if you use another, make sure to use it in later steps below)
— now run redsocks with the config file destination as follows
sudo redsocks -c /etc/redsocks.conf
change with the destination of your redsocks.conf (if you get «bind: Address already in use» try killall redsocks ) you can also check if redsocks is bound to local port 12345 with netstat -tulpn
— now that redsocks is running and ready, let’s change the iptables rules to use redsocks. this should be customized to your needs, but if you like to redirect all HTTP and HTTPS packets through the proxy. Define the following rules.
sudo iptables -t nat -N REDSOCKS sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345 sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDSOCKS sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDSOCKS sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDSOCKS sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDSOCKS
now your http and https traffic should be redirected through example.com:7777
if you want your iptables reset use:
iptables -F iptables -t nat -F iptables -t mangle -F iptables -X
Forward all traffic to a socks5 proxy
Hi friends!✌️ In this article, I want to share a solution to the problem of forwarding http traffic through socks5 to rotate ip-addresses, this can be useful when parsing, testing or bypassing DNS / IP-based blocking.
What is SOCKS5?
SOCKS is an Internet protocol that exchanges network packets between a client and server through a proxy server. SOCKS5 optionally provides authentication so only authorized users may access a server. Practically, a SOCKS server proxies TCP connections to an arbitrary IP address, and provides a means for UDP packets to be forwarded. SOCKS performs at Layer 5 of the OSI model (the session layer, an intermediate layer between the presentation layer and the transport layer). A SOCKS server accepts incoming client connection on TCP port 1080, as defined in RFC 1928.
Required dependencies
- Linux/Unix (For Windows, some differences will be characteristic (see the corresponding sections in the installation and configuration items))
- TOR Client — Tor is free and open-source software for enabling anonymous communication. It directs Internet traffic through a free, worldwide, volunteer overlay network, consisting of more than seven thousand relays, for concealing a user’s location and usage from anyone conducting network surveillance or traffic analysis. Using Tor makes it more difficult to trace the Internet activity to the user. This includes «visits to Web sites, online posts, instant messages, and other communication forms». Tor’s intended use is to protect the personal privacy of its users, as well as their freedom and ability to conduct confidential communication by keeping their Internet activities unmonitored.
- Privoxy — is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk.Can be used both for single device protection (by installing it on device you want to protect) and newtork protection (by configuring network devices to use privoxy server as proxy).
Privoxy is Free Software and licensed under the GNU GPLv2.
Proxy chain will be:
Ready? then go ahead
First step it’s install tor
sudo apt update sudo apt install tor
After do not forget to restart the service
Next you should create new password
Save the resulting hash in
In the same place, we will uncomment the following lines:
SOCKSPort 9050
HashedControlPassword ‘your hashed passsword obtained earlier here‘
CookieAuthentication 1
Restart the service to apply the changes
Hint
To regulate the speed of changing nodes (by default, this is 10 minutes)
int is an integer greater than or equal to 10 responsible for the node change interval in seconds
Ok, it’s time to install your reverse proxy
The config file can be found at the following path:
Privoxy needs to know that its follower in chain is a socks5 proxy which listens on 9050 port. Again, supposing that TOR is running on same host, Privoxy config file will be configured including following line (including last dot):
forward-socks5t / 127.0.0.1:9050 .
sudo /etc/init.d/privoxy restart
To check the readiness, you can run a request for httpbin.org
e.g.
import requests def check_ip(): ip = requests.get('https://httpbin.org/ip') return ip.text if __name__ == '__main__': result = check_ip() print(result)