我在通过 AWS 中的两个 EC2 实例之间的简单 SSH 隧道设置袜子代理时遇到了卷曲问题。
box1 $ ssh -v -D 12345 ubuntu@box2 -N
[...]
Run Code Online (Sandbox Code Playgroud)
袜子代理似乎在端口 12345 上正常运行,现在当我尝试通过它进行卷曲时:
box1 $ curl -x socks5h://localhost:12345 www.google.com
curl: (7) Failed to receive SOCKS5 connect request ack.
Run Code Online (Sandbox Code Playgroud)
回到 ssh -D 窗口,当我运行curl命令时出现此错误:
debug1: Connection to port 12345 forwarding to socks port 0 requested.
debug1: channel 1: new [dynamic-tcpip]
channel 1: open failed: administratively prohibited: open failed
debug1: channel 1: free: direct-tcpip: listening port 12345 for www.google.com port 80, connect from 127.0.0.1 port 36240 to …Run Code Online (Sandbox Code Playgroud) 我试图通过代理(socks5)发送http/https 请求,但我无法理解问题是否出在我的代码中或代理中。
我尝试使用这段代码,但它给了我一个错误:
requests.exceptions.ConnectionError: SOCKSHTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.contrib.socks.SOCKSHTTPSConnection object at 0x000001B656AC9608>: Failed to establish a new connection: Connection closed unexpectedly'))
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import requests
url = "https://www.google.com"
proxies = {
"http":"socks5://fsagsa:sacesf241_country-darwedafs_session-421dsafsa@x.xxx.xxx.xx:31112",
"https":"socks5://fsagsa:sacesf241_country-darwedafs_session-421dsafsa@x.xxx.xxx.xx:31112",
}
headers = {
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Sec-Gpc": "1",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-User": "?1",
"Accept-Encoding": "gzip, deflate, br",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Dest": "document",
"Accept-Language": "en-GB,en;q=0.9"
}
r = …Run Code Online (Sandbox Code Playgroud) 我正在阅读这个主题 http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol
我想要做的是:我有一个客户端/服务器应用程序,我想要做的是使用socks 4 BIND请求将我的服务器绑定到远程socks服务器,并使客户端连接到该socks服务器和袜子服务器将使他们连接到我的服务器(至少这就是我如何理解袜子BIND请求)
但我不完全理解它(我的英语有点不好),我问的是,当我不知道客户的任何远程IP时,是否可以这样做?因为服务器的BIND请求包必须包含远程客户端的地址,并且我真的没有,因为客户端来自未知用户从我的服务器检索状态信息(或者我可以使用0作为INANY_ADDR)?
我正在尝试分析远程 Java 应用程序,实际上它是一个游戏服务器。它在我的本地机器(带有 JDK1.7.0_02 x64 的 Windows XP x64)上正常工作,但在生产服务器(带有 JDK1.7.0_03 i586 的 CentOS)上表现得非常奇怪。
我做了很多搜索,发现我应该使用 VisualVM 来完成这项任务。所以 VisualVM 在本地机器上运行良好,但在本地机器上没有挂起,我需要在生产环境中使用真实有效负载进行分析。我用参数在远程机器上启动了 jstatd
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=false &
Run Code Online (Sandbox Code Playgroud)
与策略文件
grant codebase "file:/usr/java/jdk1.7.0_02/lib/tools.jar" {
permission java.security.AllPermission;
};
Run Code Online (Sandbox Code Playgroud)
然后我像这样启动了我的 Java 应用程序
java -server -Dcom.sun.management.jmxremote\
-Dcom.sun.management.jmxremote.port=4000\
-Dcom.sun.management.jmxremote.ssl=false\
-Dcom.sun.management.jmxremote.authenticate=false\
-jar /home/pinballSocketServer/pinballSocketServer.jar
Run Code Online (Sandbox Code Playgroud)
application 和 jstatd 都以 root 权限启动。
并且 VisualVM 无法连接到远程主机。但是在远程主机上,我看到以下日志,而 VisualVM 正在运行并添加了远程主机:
Feb 16, 2012 7:11:52 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-217.16.27.195: [217.16.27.195: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]
Feb 16, 2012 7:11:56 PM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-217.16.27.195: …Run Code Online (Sandbox Code Playgroud) 我正在查看定义袜子服务器时我的计算机生成的流量。我在互联网上阅读并发现也可以通过代理服务器路由 udp。当我尝试使用使用 UDP 并允许袜子设置的不同应用程序时,它仅将其用于 TCP 流量。为什么?我已经定义了 SOCKS5,因为我知道 v4 不支持 udp(为什么?)我尝试了一个例子,Vuze 客户端 - 它的专家模式允许优先选择 udp 流量,设置袜子服务器,甚至在这一点上,任何 udp 都直接发送到对等点。我的愿望是监视流量并查看其传输方式,是通过 UDP 与袜子服务器连接,还是实际上以 TCP 连接到袜子服务器并发送数据,然后通过 udp 发送到目的地?
所以我能够创建一个本地的socks代理,sudo ssh -D 8080 user@server
我只能从我的机器访问它:
nmap -p 8080 127.0.0.1
8080/tcp open http-proxy
Run Code Online (Sandbox Code Playgroud)
但是,无法从我的本地网络访问此代理:
nmap -p 8080 192.168.1.10
8080/tcp closed http-proxy
Run Code Online (Sandbox Code Playgroud)
我尝试过端口转发,但似乎没有解决问题(除非我做错了)我在Mac上,顺便说一下.
解决方案?
我在端口9150上的远程服务器(Ubuntu)上运行Tor,控制端口在9151上.我已确认两者都是通过netstat -ant运行的.
这是我的代码,它引出了SOCKS5Error: 0x01: General SOCKS server failure错误.
import socks
import socket
socks.set_default_proxy(socks.SOCKS5, server_ip, 9150)
socket.socket = socks.socksocket
Run Code Online (Sandbox Code Playgroud)
我可以从任何库发出请求,并成功获得带有转发地址的响应.
但是以下是导致错误的原因:
from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9151) as controller:
controller.authenticate(password)
controller.signal(Signal.NEWNYM)
Run Code Online (Sandbox Code Playgroud)
如果我在没有使用socks(第一个代码片段)设置代理的情况下运行上述操作,我可以毫无问题地发出信号.
使用代理连接(HTTP 代理:10.3.100.207,端口 8080)。使用python的请求模块的get函数,得到如下错误:
“无法从socks://10.3.100.207:8080/确定SOCKS版本”
我对这个错误感到害怕,我被打了2天.2天前激活了我的virtualenv,然后尝试安装一些依赖项,但pip install不断抛出此错误.
pip install django
Traceback (most recent call last):
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/commands/install.py", line 335, in run
wb.build(autobuilding=True)
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/wheel.py", line 749, in build
self.requirement_set.prepare_files(self.finder)
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/req/req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/req/req_set.py", line 554, in _prepare_file
require_hashes
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/req/req_install.py", line 278, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/index.py", line 465, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/index.py", line 423, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
File "/home/blackpython/.local/lib/python2.7/site-packages/pip/index.py", …Run Code Online (Sandbox Code Playgroud) 这是我对这些内容的理解,我发现其中几乎没有差距。特别是何时何地使用
HTTP代理:
TCP代理
我的问题
SOCKS5代理
套接字安全(SOCKS)是一种Internet协议,它通过代理服务器在客户端和服务器之间交换网络数据包。SOCKS5还提供身份验证,因此只有授权用户才能访问服务器。实际上,SOCKS服务器将TCP连接代理到任意IP地址,并为UDP数据包转发提供了一种方法。
SOCKS在OSI模型的第5层(会话层,表示层和传输层之间的中间层)执行。SOCKS服务器在TCP端口1080上接受传入的客户端连接
我的问题
socks ×10
proxy ×7
python ×3
networking ×2
ssh ×2
amazon-ec2 ×1
connect ×1
curl ×1
jmx ×1
jstat ×1
netcat ×1
pip ×1
ssh-tunnel ×1
tcp ×1
tor ×1
tunneling ×1
udp ×1
visualvm ×1
web ×1
web-scraping ×1