- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 Android Jsoup 网络抓取应用程序,它通过端口 9150 上的 SOCKS 代理连接到 Tor,(我希望请求完全匿名):
private const val TOR_PORT = 9040
private fun establishJsoupConnection(url: String): Connection {
return if (!useTor) {
Jsoup.connect(url)
} else {
val socketAddress = InetSocketAddress("127.0.0.1", TOR_PORT)
val proxy = Proxy(Proxy.Type.SOCKS, socketAddress)
Jsoup.connect(url).proxy(proxy)
}
}
我没有使用任何特殊的库来建立连接,只是使用了 JDK 提供的库。那里有适用于 Android 的 Tor 库,尽管我被告知不需要它们。
问题是每当我运行代码时,都会出现以下异常:
java.net.SocketException: failed to connect to /127.0.0.1 (port 9150) from /127.0.0.1 (port 47806) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused)
我尝试的第一件事是将端口号从 9040 更改为您可以连接到的许多其他 Tor 端口,但这没有用。我有一个类似的问题,其中更改端口确实有帮助,但在这种情况下没有帮助。请注意,该问题只能在 Android 上重现,如果我在我的桌面上运行代码,它工作正常——尽管我的桌面上确实安装了 Tor,所以这也可能是原因。
我也尝试了其他方法,例如将 127.0.0.1
替换为 localhost
—— 这并没有解决这个问题。我也尝试过在网上寻找其他解决方案,但无济于事。我还尝试完全禁用我的防火墙,但这并没有解决问题。
有一件事确实“暂时”解决了这个问题,那就是从 F-Droid 安装 Tor Android 应用程序。
出于某种原因,代理仅在我安装 Tor Android 应用程序时有效,然后重新运行该应用程序,但如果我卸载 Tor Android 应用程序,异常会再次出现。
我猜测 Tor Android 应用程序正在后台执行某些操作以允许连接。
Android 版 Tor 应用程序 (Tor) 很复杂,我很可能永远不会发现它在后台“做什么”以建立连接,这就是我寻求帮助的原因。
老实说,我很惊讶,我真的不知道应用程序可以做什么来建立连接。我认为这可能与防火墙有关,尽管我已经为我的应用程序禁用了防火墙并且没有任何区别。我对网络本身是新手也无济于事。
最佳答案
为了通过 SOCKS 代理连接到 Tor,您的设备必须连接到 Tor 网络并配置为打开 SOCKS 端口以通过 Tor 进行代理。
代理仅在您安装和运行 Tor 浏览器应用程序时起作用的原因是因为该应用程序连接到 Tor 网络并在端口 9150 上监听 SOCKS 连接并通过 Tor 发送它们。
如果您希望您的应用能够通过 Tor 建立匿名连接,则设备或您的应用上的某些内容需要处理网络连接和中继连接。
您发现的一种简单方法是运行 Tor 浏览器应用程序并将您的 SOCKS 客户端配置为使用 127.0.0.1:9150。这种方法的一个优点是 Tor 相关更新由 Tor 浏览器应用程序处理。 Orbot是另一个可以以相同方式使用的应用程序。
在评论中,您指出了一个库,该库嵌入了一个 Tor 可执行文件,用于连接到 Tor 并促进连接。如果您不想依赖运行另一个应用程序来连接和运行 Tor SOCKS 代理,这是一个不错的选择。缺点是,您可能需要更频繁地更新您的应用程序以包含对 Tor 二进制文件的重要更新。
总而言之,要使代理正常工作,设备上必须有一些软件可以处理 Tor 连接并提供 SOCKS 端口供您在应用中使用。
关于Android:在端口 9150 连接到 Tor SOCKS 代理抛出 `SocketException` ;仅当我安装 Tor Android 应用程序时才有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73982323/
我在使用 IdHTTP 客户端组件时遇到一般 Indy 错误结合 SOCKS5 代理服务器并使用 SSL。 如果我将 IdHTTP 组件与我的 SOCKS5 代理(和非 https URL)一起使用,
使用代理连接(HTTP 代理:10.3.100.207,端口 8080)。 使用 python 的 request 模块的 get 函数,得到以下错误: “无法从 socks://10.3.100.2
如何为我的应用程序添加 SOCKS 支持?我在哪里可以得到库? 最佳答案 来自 http://java.sun.com/javase/6/docs/technotes/guides/net/proxi
我正在设置一个安装和配置了 docker 的基础镜像,这样当我运行我的 jenkins 管道时我可以进行 anchor 扫描。我必须将 anchor 图像拉到 docker 图像中,因为我的管道在 d
我提供了一个工作客户端和服务器文件。客户端向服务器发送图片。当你注释掉时: data = sock.recv(1024) print("received: ",str(data,"UTF-8")) 图
为什么我的 SOCKS 代理代码抛出 SocketException: Malformed reply from SOCKS server?我试过在 URLConnection 或其他中设置,但这不起
您好,我刚刚下载了适用于 OS X 10.11 的 mysql 5.7.13,我在让 phpmyadmin 连接它时遇到问题。 我能够完全安装 mysql,打开 mysql 服务器并设置 root 密
我正在尝试从容器内部控制主机 docker 服务。 对于 Linux 主机和 Linux 容器,通常是这样完成的:docker run -it -v/var/run/docker.sock:/var/
我正在使用将执行 docker 命令(docker ps 等)的图像设置 kubernetes 部署。 我的 yaml 如下所示: kind: Deployment apiVersion: apps/
我使用 this guide 安装 docker .我正在使用 Distributor ID: Ubuntu Description: Ubuntu 13.10 Release: 13.1
我正在使用以下命令启动docker: /usr/bin/dockerd --bip=172.30.224.1/21 --ip-masq=false --mtu=1450 --containerd=/r
我刚注册到 Stack Overflow,因为从 2 天前开始我真的无法摆脱这个问题。我使用 Xampp。 所以,我正在关注这个 Laravel tutorial当我从终端输入项目目录或每个其他目录
首先,我发誓我已经查看了涉及此错误的每一个问题。几乎每个人提供的解决方案都是不同的,而且似乎没有人理解错误的系统原因。我和网络上遇到这个常见问题的许多人需要的是对实际出了什么问题的解释。 基本上,当我
Magento 显示“处理您的请求时出错” 尝试命令“sudo service mysqld restart”但启动失败 然后看到日志显示“SQLSTATE[HY000] [2002] 没有这样的文件
Ubuntu 15.04 64位,docker 1.6.1,用户在docker组中。 操作系统启动后,每个docker命令执行都会导致此错误: FATA[0000] Get http:///var/r
我的问题开始于我无法再以 root 身份登录我的 mysql 安装。我试图在没有打开密码的情况下运行 mysql...但是每当我运行命令时 # mysqld_safe --skip-grant-tab
我的问题开始于我在安装 mysql 时无法再以 root 身份登录。我试图在没有打开密码的情况下运行 mysql ......但是每当我运行命令时 # mysqld_safe --skip-grant
简单明了,谁能解释一下如何通过代理 (socks4/5) 连接到 mysql 服务器。最好通过 mysql 命令行(尽管在客户端中没有选项)。 如果无法通过 mysql 命令行,那么任何其他方法都可以
简单明了,谁能解释一下如何通过代理 (socks4/5) 连接到 mysql 服务器。最好通过 mysql 命令行(尽管在客户端中没有选项)。 如果无法通过 mysql 命令行,那么任何其他方法都可以
我试图通过与 SoX 中的脉冲响应进行卷积来应用混响。以下 shell 脚本完全符合我的要求: #!/usr/bin/env bash # # Convolve audio file with and
我是一名优秀的程序员,十分优秀!