<div dir="ltr"><div>I was trying to write a web scraper, so I used <a href="https://hackage.haskell.org/package/scalpel">scalpel</a>. The website I wanted to scrape blocks my IP (I run a tor exit node), so I decided to use <a href="http://proxychains.sourceforge.net/">proxychains</a> (specifically, version 3.1-6 according to Debian). I ran into the following weird behavior: if I tell proxychains to run dns through the proxy, things are fine, but if I tell it to run dns in the clear or the URL I'm trying to connect to is an IP address (e.g. manually resolved), I always get timeouts (much faster than I should).<br><br></div><div>(don't resolve dns over the proxy)<br></div><div> % proxychains stack exec -- test-scalpel "<a href="http://ifconfig.co">http://ifconfig.co</a>"<br>ProxyChains-3.1 (<a href="http://proxychains.sf.net">http://proxychains.sf.net</a>)<br>|R-chain|-<>-201.175.94.245:38746-<><>-188.113.88.193:80-<--timeout<br><br></div>(resolve dns over the proxy)<br><div>% proxychains stack exec -- test-scalpel "<a href="http://ifconfig.co">http://ifconfig.co</a>"<br>ProxyChains-3.1 (<a href="http://proxychains.sf.net">http://proxychains.sf.net</a>)<br>|DNS-request| <a href="http://ifconfig.co">ifconfig.co</a><br>|R-chain|-<>-201.175.111.245:10000-<><>-4.2.2.2:53-<><>-OK<br>|DNS-response| <a href="http://ifconfig.co">ifconfig.co</a> is 188.113.88.193<br>|R-chain|-<>-201.175.111.245:10000-<><>-188.113.88.193:80-<><>-OK<br><br></div><div>(resolve dns over proxy, but use an IP to avoid actually doing it)<br></div><div>% proxychains stack exec -- test-scalpel "<a href="http://188.113.88.193">http://188.113.88.193</a>"<br>ProxyChains-3.1 (<a href="http://proxychains.sf.net">http://proxychains.sf.net</a>)<br>|R-chain|-<>-201.175.111.245:10000-<><>-188.113.88.193:80-<--timeout<br><br></div><div>curl does not have this behavior:<br><br>% proxychains stack exec -- curl "<a href="http://188.113.88.193">http://188.113.88.193</a>"<br>ProxyChains-3.1 (<a href="http://proxychains.sf.net">http://proxychains.sf.net</a>)<br>|R-chain|-<>-201.172.16.131:55599-<><>-188.113.88.193:80-<><>-OK<br><br>% proxychains stack exec -- curl "<a href="http://ifconfig.co">http://ifconfig.co</a>"<br>ProxyChains-3.1 (<a href="http://proxychains.sf.net">http://proxychains.sf.net</a>)<br>|DNS-request| <a href="http://ifconfig.co">ifconfig.co</a><br>|R-chain|-<>-201.172.17.231:10000-<><>-4.2.2.2:53-<><>-OK<br>|DNS-response| <a href="http://ifconfig.co">ifconfig.co</a> is 188.113.88.193<br>|R-chain|-<>-201.172.17.231:10000-<><>-188.113.88.193:80-<><>-OK<br><br>% vim proxychains.conf # to change the setting<br>% proxychains stack exec -- curl "<a href="http://ifconfig.co">http://ifconfig.co</a>"<br>ProxyChains-3.1 (<a href="http://proxychains.sf.net">http://proxychains.sf.net</a>)<br>|R-chain|-<>-201.172.16.131:55599-<><>-188.113.88.193:80-<><>-OK<br><br></div><div>wget and aria2c also behave like curl.<br><br></div><div>wreq behaves like scalpel:<br><br>% proxychains stack exec -- test-wreq "<a href="http://188.113.88.193">http://188.113.88.193</a>"<br>ProxyChains-3.1 (<a href="http://proxychains.sf.net">http://proxychains.sf.net</a>)<br>|R-chain|-<>-201.172.17.231:10000-<><>-188.113.88.193:80-<--timeout<br><br></div><div>HTTP (the Haskell package) behaves differently than all the rest, failing to connect even where the rest succeed:<br><br>% proxychains stack exec -- test-http "<a href="http://ifconfig.co">http://ifconfig.co</a>"<br>ProxyChains-3.1 (<a href="http://proxychains.sf.net">http://proxychains.sf.net</a>)<br>|DNS-request| <a href="http://ifconfig.co">ifconfig.co</a><br>|R-chain|-<>-201.175.94.245:38746-<><>-4.2.2.2:53-<><>-OK<br>|DNS-response| <a href="http://ifconfig.co">ifconfig.co</a> is 188.113.88.193<br>|R-chain|-<>-201.175.94.245:38746-<><>-188.113.88.193:80-<--timeout<br><br></div><div>Gists of the programs I ran: <a href="https://gist.github.com/rpglover64/f668ed372c63e271cf15">https://gist.github.com/rpglover64/f668ed372c63e271cf15</a><br><br></div><div>Anyone have any idea what's going on?<br></div><div><br></div><div><br><br></div></div>