标签: socks

用于HttpWebRequest的Socks代理

根据我的研究,虽然试图解决这个问题,但事实证明.Net WebProxy类不支持Socks代理 - 有点烦人.我似乎也找不到任何代码或信息来解释如何通过一个可以很容易地与HttpWebRequest(确切地说是Proxy属性)一起使用的类来实现Socks 4/5支持.

我通过谷歌发现有限的信息,我怎么能这样做.一个建议涉及更改Internet Explorer代理设置 - 我不想做的事情.

有谁知道任何可以做这项工作或有任何建议的事情?任何帮助将非常感激.

.net proxy httpwebrequest socks

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

如何在Netty客户端中使用Socks4/5代理处理程序(4.1)

我需要在Netty客户端配置socks代理(通过socks4或5个代理请求不同的站点).从免费袜子列表(如www.socks-proxy.net,http://sockslist.net/ 等)尝试了很多代理,但没有运气:

@Test
public void testProxy() throws Exception {
    final String ua = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36";
    final String host = "www.main.de";
    final int port = 80;

    Bootstrap b = new Bootstrap();
    b.group(new NioEventLoopGroup())
            .channel(NioSocketChannel.class)
            .handler(new ChannelInitializer<SocketChannel>() {
                @Override
                protected void initChannel(SocketChannel ch) throws Exception {
                    ChannelPipeline p = ch.pipeline();

                    p.addLast(new HttpClientCodec());
                    p.addLast(new HttpContentDecompressor());
                    p.addLast(new HttpObjectAggregator(10_485_760));
                    p.addLast(new ChannelInboundHandlerAdapter() {
                        @Override
                        public void channelActive(final ChannelHandlerContext ctx) throws Exception {
                            HttpRequest request = new …
Run Code Online (Sandbox Code Playgroud)

java httpclient socks http-proxy netty

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

为NightmareJS指定SOCKS代理?

我能够为NightmareJS设置一个HTTP代理,但是如何指定类型(http/socks5/socks4)?这是我用来设置HTTP代理的代码:

const nightmare = Nightmare({
            show:true,
            switches: {
                'proxy-server': proxyHost + ':' + proxyPort,
                'ignore-certificate-errors': true
            },
            waitTimeout: 400000
        });
Run Code Online (Sandbox Code Playgroud)

javascript proxy socks nightmare electron

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

socks5代理/隧道为nginx上游?

有没有任何解决方案/补丁可以使nginx与袜子上游一起工作?

这样的事情:

server {
  location / {
    proxy_pass  socks5://ip:port/
  }
}
Run Code Online (Sandbox Code Playgroud)

proxy nginx tunnel socks

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

如何使用python通过(tor)socks代理发出HTTP请求?

我正在尝试使用python发出HTTP请求.我尝试更改我的Windows系统代理(使用inetcpl.cpl)

url = 'http://www.whatismyip.com'
request = urllib2.Request(url)
request.add_header('Cache-Control','max-age=0')
request.set_proxy('127.0.0.1:9050', 'socks')
response = urllib2.urlopen(request)
response.read()
Run Code Online (Sandbox Code Playgroud)

给了我错误

回溯(最近一次调用最后一次):文件"",第1行,在响应中= urllib2.urlopen(请求)文件"C:\ Python27\lib\urllib2.py",第126行,在urlopen中返回_opener.open(url, data,timeout)文件"C:\ Python27\lib\urllib2.py",第400行,打开响应= self._open(req,data)文件"C:\ Python27\lib\urllib2.py",第423行,在_open'unknown_open',req)文件"C:\ Python27\lib\urllib2.py",第378行,在_call_chain中结果= func(*args)文件"C:\ Python27\lib\urllib2.py",第1240行,在unknown_open中提升URLError('未知网址类型:%s'%类型)URLError:

python proxy http tor socks

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

如何查找代理是Http或Socks

谁能告诉我如何找到代理服务器是http还是袜子?这是基于端口号吗?它有何不同?

提前致谢

proxy http socks

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

如何链接SOCKS代理?

我有一个从我的笔记本电脑(机器A)到机器B的工作袜代理:

[A]$ ssh -ND 8888 B

我可以设置firefox在本地端口8888上使用socks代理,并且浏览工作.到现在为止还挺好.

但我在机器B和C之间也有一个袜子代理:

[B]$ ssh -ND 8157 C

所以我可以浏览B,好像我在C.

有没有办法链接两个代理,以便我能够在使用连接到C时本地使用firefox(在A上)?也就是说,以某种方式将所有firefox的socks请求从A转发到C.A和C不能直接看到对方,但我到处都有完全的root ssh访问权限.所有机器都是Debian.

请注意,我不想转发单个端口(如80),我想要一个完整的链式袜子代理.

ssh proxy socks

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

java运行时6用socks v5代理 - 可能吗?

我编写了一个应用程序(除其他外)在Windows中运行本地服务,充当Firefox的SOCKS v5代理.

我现在正处于调试阶段,发现某些网站无法正常运行.例如,Facebook.com上的图片上传Java Applet失败,因为无法查找域.

我的应用程序覆盖隐藏的FF配置设置network.proxy.socks__remote__dns将其设置为true.该应用程序的整个目的是允许在防火墙后面访问网站(例如,如果用户在中国),因此此设置对于确保远程解析域(而不仅仅是HTTP请求)至关重要.

在JRE6设置(此处记录)中没有等效的设置,因为远程DNS解析是SOCKS v5的一个功能而不是v4,因为文档似乎意味着我担心它是不可能的.

如何以编程方式确保JRE对所有请求(包括DNS)使用SOCKS v5代理?


更新:重现此问题的步骤:

  1. 确保您位于阻止(或重定向)Internet访问(包括DNS)的防火墙后面
  2. 安装PuTTY并在您选择的某个端口号上添加动态SSH隧道(例如9870).然后登录到可以完全访问Internet的远程服务器
  3. 启动Firefox,您将无法浏览网页
  4. 在FF网络设置中,将SOCKS v5代理设置为localhost:9870
  5. 在FF中转到about:config,将network.proxy.socks__remote__dns更改为true
  6. 您现在可以浏览网页了.
  7. 转到facebook.com,登录,转到您的个人资料并尝试使用图片上传器java applet添加一些图片
  8. 它会因一系列类未找到的错误而失败,类似于:

    load:未找到类com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class.

我相信这是失败的,因为JRE无法解析该类所在的域.我基于这样的信念,即文档(http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/properties.html)仅讨论SOCKS v4(其中据我所知,不支持远程DNS).我的deployment.properties文件位于%APPDATA%\ Sun\Java\Deployment中.我可以确认我在Java控制面板中进行的修改会写入该文件.如果不是"使用浏览器设置"而是Java的网络设置覆盖并尝试手动使用SOCKS代理设置,我仍然遇到问题.似乎没有一种简单的方法可以强制JRE通过代理远程执行DNS.


更新2:

没有SOCKS代理,来自我的本地客户端

  • www.facebook.com解析为203.161.230.171
  • upload.facebook.com解析为64.33.88.161

两个主机都不可访问(因为防火墙)

如果我登录到远程服务器,我会得到:

  • www.facebook.com 69.63.187.17
  • upload.facebook.com 69.63.178.32

几分钟后这两个IP都会发生变化,因为Facebook似乎使用循环DNS和其他负载均衡.

通过在Firefox中设置代理设置,我可以毫无困难地导航到www.facebook.com(因为DNS正在代理上远程解析).我转到带有Java applet的页面,它已经失败了,我已经报告了堆栈跟踪消息.

但是,如果我编辑Windows\System32\drivers\etc\hosts,为upload.facebook.com添加正确的IP我可以让applet加载并正常工作(有时需要重启FF).

这个证据似乎支持了我的理论,即Java Runtime 没有在代理上解析DNS,而只是通过它来路由流量.

我的应用程序是用于大规模部署,并且需要在其他站点(而不仅仅是facebook)上使用java applet.我真的需要解决这个问题.


更新3由ZZ Coder请求的Stacktrace转储:

load: class com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class not found.
java.lang.ClassNotFoundException: com.facebook.facebookphotouploader5.FacebookPhotoUploader5.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

java firefox proxy socks

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

如何在Java中使用SOCKS?

我使用100%工作袜子,我无法通过我的应用程序连接.

        SocketAddress proxyAddr = new InetSocketAddress("1.1.1.1", 12345);
        Proxy pr = new Proxy(Proxy.Type.SOCKS, proxyAddr);

    try
    {
        HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection(pr);
        con.setConnectTimeout(proxyTimeout * 1000);
        con.setReadTimeout(proxyTimeout * 1000);
        con.connect();

        System.out.println(con.usingProxy());
    }
    catch(IOException ex)
    {
        Logger.getLogger(Enter.class.getName()).log(Level.SEVERE, null, ex);
    }
Run Code Online (Sandbox Code Playgroud)

那么我做错了什么?如果我将HTTP与一些HTTP代理一起使用,那么一切正常,但不是SOCKS.

java proxy http socks

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

是否可以通过 websockets 或其他协议传输 TCP 连接?

我想知道,是否可以通过 websockets 协议传输/隧道 TCP 连接?

有一个websockets 包,似乎我可以将 TCP 连接 io.copy 复制到 websockets 连接中,但我不知道如何在另一端将其重新组装为 TCPConn。

例如,我想在一端创建一个 socks5 ServerN(在 NAT 后面),在另一端创建一个 ServerIE。互联网用户会向 ServerIE 发出socks5 请求(通过socks5 协议),ServerIE 会通过websocket 连接将socks5 请求发送到ServerNAT。ServerNAT 然后将处理socks5 请求(即它是socks5 服务器)。

编辑: 我写了一些代码,但不幸的是它在从 TCP 连接读取到 WS 时卡住了。运行它:go run main.go -logtostderr

package main

import (
    "flag"

    log "github.com/golang/glog"
    "golang.org/x/net/websocket"
    "bufio"
    "net"
    "net/http"
    "time"
//  "io"
)

func main() {
    flag.Parse()
    defer log.Flush()
    log.Infof("wsServer()")
    wsCh := wsServer()
    log.Infof("wsNAT()")
    natWS, err := wsNAT()
    if err != nil {
        log.Error(err)
        return
    } …
Run Code Online (Sandbox Code Playgroud)

tcp go socks websocket

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