我正在构建一个简单的应用程序,它应该通过socks4/5 代理发送UDP 数据报包。我使用 UDP 方法,因此不必保持连接打开。
然而,这并不像我想象的那么容易。根据此架构,我得出结论,如果不先与代理服务器建立 TCP 连接,则无法通过代理发送 UDP 数据。

尽管如此,我找不到在 CPP 中建立这种连接的任何合适的例子。我将不胜感激任何资源:)
我试图将 Maven 配置为在访问特定存储库时使用袜子代理,但不将其用于 Maven 中央存储库。
我最初习惯于export MAVEN_OPTS="-DsocksProxyHost=<proxyHost> -DsocksProxyPort=<proxyPort>"设置代理,但当Malformed reply from SOCKS server它尝试从 repo.maven.apache.org/maven2 下载依赖项时就会得到。
我还尝试将以下内容添加到 settings.xml,而不是$MAVEN_OPTS:
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host><proxyHost></host>
<port><proxyPort></port>
<nonProxyHosts>repo.maven.apache.org</nonProxyHosts>
</proxy>
</proxies>
Run Code Online (Sandbox Code Playgroud)
并且还以 SOCKS 作为协议。但是,这会导致请求超时,因为它无法到达特定存储库。但是,它确实到达了 repo.maven.apache.org/maven2,尽管速度很慢,因为它首先检查指定的存储库。
有没有办法将两者结合起来,并为我在 settings.xml 中指定的存储库提供 SOCKS 代理,而没有为 repo.maven.apache.org 提供代理?
如何为我的应用程序添加SOCKS支持?我在哪里可以获得libs?
任何帮助表示感谢
我习惯像这样设置http端口:
profile.set_preference("network.proxy.http_port", "PORTNUMBER")
Run Code Online (Sandbox Code Playgroud)
这很有效.但现在我需要连接socks代理并设置端口,它不起作用
profile.set_preference("network.proxy.socks_port", "PORTNUMBER")
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到引用,这就是我在这里问的原因.有任何想法吗 ?有没有更好的方法呢?
谢谢
我已经在这个问题上工作了几个星期,但似乎无法得到它......我一直在尝试编写一个连接到socks5代理(即tor)的Haskell程序,这样我就可以访问洋葱网站了从程序内部,但它不起作用.
为了给你布局,我在localhost @ 9050上运行它肯定有效,因为我可以配置我的浏览器通过socks5使用它.Privoxy没有运行.
源代码是:
import Network
import Network.Socket
import Network.Socks5
getonion :: IO ()
getonion = do
putStrLn "Connecting..."
sock <- socksConnectWith (defaultSocksConf "localhost" (PortNum 9050)) "exampleonion.onion" (PortNumber 80)
putStrLn "Connected!"
Run Code Online (Sandbox Code Playgroud)
每次运行getonion时,它总会导致:
Connecting...
*** Exception: connect: does not exist (Connection refused)
Run Code Online (Sandbox Code Playgroud)
我尝试使用各种方式连接到localhost,即此处和此处引用的其他函数,但socksConnectWith似乎最直接.
如果有人能帮我解决这个问题,我将不胜感激.我甚至可以将来自我的程序的wireshark数据包发布到localhost.谢谢.
出于匿名目的,我们希望使用更改代理服务器.在搜索时,我们偶然发现了TOR项目,该项目非常适合正常浏览.
但是,我们还需要软件代理.遗憾的是,这个第三方软件使用Internet-explorer作为基础,因此我们无法使用推荐的浏览器.
更糟糕的是,IE在其代理设置中不支持SOCKS4a或SOCKS5.或者我似乎无法找到它们.
有没有办法在IE中启用SOCKS4a或SOCKS5?如果不是最好的选择?请记住,如果可能,我们希望每天更改IP.
感谢您的努力和提前帮助!
我有一个运行 tor 的 dockerfile -
FROM alpine:edge
RUN apk update && apk add tor
EXPOSE 9050
USER tor
CMD ["/usr/bin/tor"]
Run Code Online (Sandbox Code Playgroud)
并使用命令运行它 -docker run --name tor -p 11000:9050 tor
并使用 - 检查连接telnet 127.0.0.1 11000并显示已连接
现在我想在来自 go 程序的任何请求时使用 tor 作为代理。我试过 -
package main
import (
"fmt"
"net/http"
"net/url"
"time"
)
func main() {
proxyUrl, err := url.Parse("socks5://127.0.0.1:11000")
if err != nil {
// TODO handle me
panic(err)
}
cl := http.Client{
Transport: &http.Transport{
Proxy: http.ProxyURL(proxyUrl),
},
Timeout: 18000 …Run Code Online (Sandbox Code Playgroud) 我编写了一个 SOCKS 代理,如果链接关闭,它可以同时处理 HTTP 和 HTTPS 流量。
如果链接打开并且转发主机和端口属于过滤 HTTP 代理,则只有 HTTP 流量可以流动。HTTPS 流量不流动并报告 SSL 错误。
请注意,当请求直接来自浏览器而不是来自 SOCKS 服务器时,HTTP 代理会处理 HTTPS 流量。
例如,如果我向https://www.google.com发出请求,则会发生以下情况:
1) 客户端发送 SOCKS 5 问候,让我们知道哪些身份验证方法是可以接受的。
2) 服务器以 NO_AUTH 响应
3) 客户端发送连接请求(包括预期的目标主机和端口)。
4) 服务器创建一个套接字并将其连接到 HTTP 代理服务器,并以 GRANTED 响应客户端
5) SOCKS 服务器然后收到以下请求(隐形/控制字符已全部替换为其字符代码,因此您可以看到发生了什么):
\u0016\u0003\u0001\u0000Ñ\u0001\u0000\u0000Í\u0003\u0003áp¥@Ia¹\u0001„Ä\u0006 É;š‰‰4\u001dýà•J>Ü6¢Þ\fö\u001c%\u0000\u0000(À+À/\u0000žÌ\u0014Ì\u0013À\nÀ\tÀ\u0013À\u0014À\u0007À\u0011\u00003\u00002\u00009\u0000œ\u0000/\u00005\u0000\n\u0000\u0005\u0000\u0004\u0001\u0000\u0000|\u0000\u0000\u0000\u0013\u0000\u0011\u0000\u0000\u000ewww.google.comÿ\u0001\u0000\u0001\u0000\u0000\n\u0000\b\u0000\u0006\u0000\u0017\u0000\u0018\u0000\u0019\u0000\u000b\u0000\u0002\u0001\u0000\u0000#\u0000\u00003t\u0000\u0000\u0000\u0010\u0000\u001b\u0000\u0019\u0006spdy/3\bspdy/3.1\bhttp/1.1uP\u0000\u0000\u0000\u0005\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0000\u0012\u0000\u0000\u0000\r\u0000\u0012\u0000\u0010\u0004\u0001\u0005\u0001\u0002\u0001\u0004\u0003\u0005\u0003\u0002\u0003\u0004\u0002\u0002\u0002
Run Code Online (Sandbox Code Playgroud)
如您所见,它完全不可读,但我们已经从初始 SOCKS 连接消息(第 3 步)中知道用户打算去哪里,因此我们可以创建并发出以下连接请求:
CONNECT www.google.com:443 HTTP/1.1\r\nUser-Agent: MySocksServer\r\nProxy-Connection: keep-alive\r\nHost: www.google.com\r\n\r\n
Run Code Online (Sandbox Code Playgroud)
6) 这个新构造的 CONNECT 被发送到我们链接的 HTTP 代理,这个代理检查它的过滤规则并响应:
HTTP/1.1 200 Connection Established\r\nVia: 1.1 HTTPserverName\r\nX-WebMarshal-RequestID: AN_ID_STRING\r\n\r\n
Run Code Online (Sandbox Code Playgroud)
7) 这在我们的 SOCKS 服务器中接收并转发(未修改)到客户端。在我的调试中,我在发送请求之前直接监视套接字,并且可以看到客户端套接字已连接。
8) 引发的下一个事件是错误,错误为 SOCKET_NOT_CONNECTED,对套接字运行另一项检查确认客户端套接字确实不再连接。
为什么我的 Socket 会在第 …
我正在尝试nzxj65x32vh2fkhk.onion使用请求访问以下域.
我已经运行了,我正确配置了会话的对象代理.
import requests
session = requests.session()
session.proxies = {'http': 'socks5://localhost:9050',
'https': 'socks5://localhost:9050'}
print(session.get('http://httpbin.org/ip').text) # prints {"origin": "67.205.146.164" }
print(requests.get('http://httpbin.org/ip').text) # prints {"origin": "5.102.254.76" }
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用.onion域访问URL时,我收到以下错误:
session.get('http://nzxj65x32vh2fkhk.onion/all')
ConnectionError: SOCKSHTTPConnectionPool(host='nzxj65x32vh2fkhk.onion', port=80): Max retries exceeded with url: /all (Caused by NewConnectionError('<requests.packages.urllib3.contrib.socks.SOCKSConnection object at 0x7f5e8c2dbbd0>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Run Code Online (Sandbox Code Playgroud)
我也尝试localhost用127.0.0.1其中一个答案中的建议替换.不幸的是,结果是一样的.
使用urllib2执行相同的请求就可以了.
import socks, socket, urllib2
def create_connection(address, timeout=None, source_address=None):
sock = socks.socksocket()
sock.connect(address)
return sock
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050) …Run Code Online (Sandbox Code Playgroud) youtube-dl --proxy socks5://127.0.0.1:1080 $link -o $dir 可以在bash shell中的youtube嵌入式socks5代理上下载视频。
使用以下代码,我们将youtube-dl嵌入到python代码中。
from __future__ import unicode_literals
import youtube_dl
ydl_opts = {}
link = "some_youtube_url"
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([link])
Run Code Online (Sandbox Code Playgroud)
如何在Python代码中嵌入socks5代理?
我已经在https://github.com/rg3/youtube-dl上阅读了该文档 ,但仍然不知道如何在youtube-dl的python代码中添加socks5代理。