标签: socks

通过SOCKS代理发送UDP数据包

我正在构建一个简单的应用程序,它应该通过socks4/5 代理发送UDP 数据报包。我使用 UDP 方法,因此不必保持连接打开。

然而,这并不像我想象的那么容易。根据此架构,我得出结论,如果不先与代理服务器建立 TCP 连接,则无法通过代理发送 UDP 数据。 在此输入图像描述

尽管如此,我找不到在 CPP 中建立这种连接的任何合适的例子。我将不胜感激任何资源:)

c++ sockets proxy winsock socks

3
推荐指数
1
解决办法
1万
查看次数

Maven 对特定存储库使用 SOCKS 代理

我试图将 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 提供代理?

proxy socks maven

3
推荐指数
1
解决办法
5720
查看次数

用C/C++或其他语言编写SOCKS?

如何为我的应用程序添加SOCKS支持?我在哪里可以获得libs?

任何帮助表示感谢

c c++ python perl socks

2
推荐指数
1
解决办法
826
查看次数

设置proxy.socks.port selenium

我习惯像这样设置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)

我在文档中找不到引用,这就是我在这里问的原因.有任何想法吗 ?有没有更好的方法呢?

谢谢

python selenium webdriver socks

2
推荐指数
2
解决办法
8523
查看次数

Haskell SOCKS5拒绝连接

我已经在这个问题上工作了几个星期,但似乎无法得到它......我一直在尝试编写一个连接到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.谢谢.

connection proxy haskell tor socks

2
推荐指数
1
解决办法
769
查看次数

在Internet Explorer中启用SOCKS 4a/5

出于匿名目的,我们希望使用更改代理服务器.在搜索时,我们偶然发现了TOR项目,该项目非常适合正常浏览.

但是,我们还需要软件代理.遗憾的是,这个第三方软件使用Internet-explorer作为基础,因此我们无法使用推荐的浏览器.

更糟糕的是,IE在其代理设置中不支持SOCKS4a或SOCKS5.或者我似乎无法找到它们.

有没有办法在IE中启用SOCKS4a或SOCKS5?如果不是最好的选择?请记住,如果可能,我们希望每天更改IP.

感谢您的努力和提前帮助!

proxy internet-explorer socks

2
推荐指数
1
解决办法
9782
查看次数

无法在golang中使用socks5代理 - 阅读:连接被对等方重置

我有一个运行 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)

proxy http tor go socks

2
推荐指数
1
解决办法
4755
查看次数

如何将 HTTPS 流量从 SOCKS 代理转发到 HTTP 代理

我编写了一个 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 会在第 …

sockets network-programming http network-protocols socks

1
推荐指数
1
解决办法
1万
查看次数

使用请求获取.onion域

我正在尝试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)

我也尝试localhost127.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)

python urllib2 socks python-requests

1
推荐指数
1
解决办法
1979
查看次数

如何将Socks5代理嵌入youtube-dl的python代码中?

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代理。

proxy socks python-3.x youtube-dl

1
推荐指数
1
解决办法
719
查看次数