System requirements:
- 2-core CPU, preferably not Celeron/Athlon, but at least Core2Duo (for Raspberry Pi: model 3 or 4)
- At least 512MB of free RAM
- OS: Should work on anything from Windows XP to Windows 10
Proxy usage:
- In Firefox: Go to network settings and set SOCKS5 proxy 127.0.0.1 port 1080. For better performance, activate the remote DNS option (if you can't find it — open new tab, enter
about:config
, enter remote_dns
into the search box, and double click the row to change it to true)
- In Chrome: You can copy the Chrome shortcut and edit it adding
--proxy-server="socks5://127.0.0.1:1080"
into the command, so it would look like "path\to\chrome.exe" --proxy-server="socks5://127.0.0.1:1080"
(see screenshot)
- In uTorrent: Open the settings, navigate to Connection, set proxy type to Socks5, proxy 127.0.0.1, port 1080. Don't forget to activate the "Use proxy for hostname lookups" option. If you want to proxify not only trackers but the transfers too — enable the "Use proxy for peer-to-peer connections" option.
- In Telegram: Settings - Connection Type - Use proxy: Choose SOCKS5, host 127.0.0.1, port 1080.
- Any other app: SOCKS5 is the first choise, but SOCKS4, SSL and HTTP will work too. If Remote DNS option is provided - enable it to run DNS queries through the proxy as well.
- System-wide: In Windows there's an option to configure a proxy for the whole system. Most programs will recognize it and use it automatically. While an easy solution, the impact and performance is to be tested.
Remote usage:
You can run the program on a separate machine. An example usage: Run the progam on Raspberry Pi, but use the proxy on other computers in your local network. In order to do so:
- In the program settings replace listening IP 127.0.0.1 with 0.0.0.0 to allow external connections
- Instead of using 127.0.0.1 type the IP address of the machine running the program in your proxy configuration
- Using gigabit network adapter is preferred, because 100M may become insufficient to pass both the local and remote traffic in both directions at the same time
For linux users:
- Don't forget to
chmod +x udp_proxy_client
before running
- If you decide to run as a different user, make sure the directory and files (proxy.conf, serverlist.xml) are writeable
- To run in background:
screen ./udp_proxy_client
and then press Ctrl+a+d to send it to background
- You may need to install some dependencies. CentOS, Arch:
mbedtls cairo libmaxminddb
; Debian, Ubuntu, Raspbian: libmbedtls libcairo2 libmaxminddb
For linux and CLI users:
- You can view some stats at http://127.0.0.1:10581/hdmstatpage/
- Upon first connection the
proxy.conf
file will appear. After that you can edit the settings there (restart is required to apply the settings)
GeoIP features:
- In order to use country-based rules you need to download the GeoIP database: https://hidemy.name/files/software/GeoLite2-Country.mmdb
- It is totally optional and not required for the program to run
- When the GeoIP database is present, you will be able to see country codes next to IP addresses in the connection list, as well as define contry-based blocking and bypassing rules
- For country-based rules you'll also need to disable Remote DNS feature in your browser (when disabled, you will see IP addresses instead of domains in the connection list)