V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kisama12
V2EX  ›  程序员

如何实现三重(多重)代理上网?

  •  
  •   kisama12 · 2018-03-01 00:25:51 +08:00 via Android · 13958 次点击
    这是一个创建于 2463 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在自己拥有代理 IP 池的情况下,如何通过代码实现三重代理?

    配置的话,用 ss 加 tor 可以实现高匿名性。

    网上找了一些资料,没找到自己有用的信息。刚在 github 找了下 tor 开源项目,还没开始读。

    有没有大佬能给点解答,原理上的(类似 tor 的实现)或者相关开源项目代码分享。

    补充:代理 IP 池通过 Python 爬取免费 IP 分享的网站爬来的,当前可以实现一层代理,想实现多重代理功能,能否实现,如何实现。

    小白一个,有不对的地方请大佬指正。希望有大佬能答疑解惑(拜谢)

    第 1 条附言  ·  2018-03-01 09:59:52 +08:00

    可能我表述的不太清楚,在这里补充一下: 1.不考虑匿名性,只考虑如何实现多重代理 2.我的问题是想通过代码自己实现一个工具实现多重代理的功能,而不是怎么配置多重代理 3.是否具备可实现性,如何实现?

    ps: 重点是想通过代码自己实现多重代理的功能,暂不考虑匿名性,能否实现,如何实现?

    第 2 条附言  ·  2018-03-01 23:06:24 +08:00
    谢谢留言的大佬!~ 找到参考项目了,github:gost .
    继续写去了!~写出来了,在分享出来!~
    19 条回复    2019-12-30 22:43:27 +08:00
    tylinux
        1
    tylinux  
       2018-03-01 00:41:52 +08:00
    proxychains-ng?
    flynaj
        2
    flynaj  
       2018-03-01 00:43:28 +08:00 via Android
    gost
    kisama12
        3
    kisama12  
    OP
       2018-03-01 00:47:09 +08:00 via Android
    @flynaj 搜了下,是证书?不太理解……
    kisama12
        4
    kisama12  
    OP
       2018-03-01 00:51:22 +08:00 via Android
    @tylinux 通过本地一层一层的代理嘛?找些资料学习下怎么实现……
    fhbyljj
        5
    fhbyljj  
       2018-03-01 00:56:04 +08:00 via Android
    同问
    gamexg
        6
    gamexg  
       2018-03-01 06:52:02 +08:00 via Android
    tcproute2
    huiyifyj
        7
    huiyifyj  
       2018-03-01 07:57:36 +08:00 via Android
    实现三重代理就为了高匿名性?
    说说除了公司私密信息外的其他用处
    kisama12
        8
    kisama12  
    OP
       2018-03-01 08:06:03 +08:00 via Android
    @huiyifyj 不是单纯为了匿名性,那样配置 tor 加代理就可以实现。

    我想了解如何实现。
    yingfengi
        9
    yingfengi  
       2018-03-01 08:19:02 +08:00 via Android
    洋葱流量可识别,虽然不知道你干啥,但是知道你在用
    ThirdFlame
        10
    ThirdFlame  
       2018-03-01 08:40:09 +08:00
    路由器跑酸酸乳+终端再加 goagent 或者 vpn 双重 也可以自由组合其他的技术
    wizardoz
        11
    wizardoz  
       2018-03-01 09:36:55 +08:00
    想不通用多重代理的优势在哪里。从墙的角度讲,只要最外层的协议被识别就会被墙掉。
    从数据安全性的角度讲,混用多种加密不如好好配要一种你认为最安全的加密。
    xmoiduts
        12
    xmoiduts  
       2018-03-01 10:19:59 +08:00 via Android
    小飞机 win 客户端包含了“配置正向代理”选项,可以在此为这架飞机本身配置下一级代理。
    GhostStar
        13
    GhostStar  
       2018-03-01 10:32:52 +08:00
    gost+1
    zhjits
        14
    zhjits  
       2018-03-01 10:43:23 +08:00
    举个例子,比如你所有代理都是 HTTP 代理的情况下
    首先你要知道 HTTP 代理有个 CONNECT 可以打出一个 TCP tunnel
    然后先用一个 HTTP 代理去 CONNECT 下一个 HTTP 代理的地址,再在代码里面暴露出打出来的 TCP 洞,在这个洞里面再跑一个 HTTP 代理协议就好
    cfcboy
        15
    cfcboy  
       2018-03-01 14:47:03 +08:00
    gost+1
    kisama12
        16
    kisama12  
    OP
       2018-03-01 21:34:47 +08:00 via Android
    谢谢楼上的各位,找到 gost 了:)
    winara
        17
    winara  
       2018-11-15 17:05:34 +08:00
    @gamexg
    TcpRoute2 启动报错,帮忙看下是什么原因 macos10.13.6

    TcpRoute2 version 0.5.8
    panic: sync: inconsistent mutex state

    goroutine 15 [running]:
    sync.(*Mutex).Lock(0xc820012060)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/sync/mutex.go:74 +0x16d
    math/rand.(*lockedSource).Int63(0xc820012060, 0x0)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/math/rand/rand.go:239 +0x28
    math/rand.(*Rand).Int63(0xc8200102c0, 0x6f185)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/math/rand/rand.go:46 +0x39
    math/rand.(*Rand).Int(0xc8200102c0, 0x0)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/math/rand/rand.go:56 +0x21
    math/rand.Int(0xc8200fc000)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/math/rand/rand.go:183 +0x23
    net.exchange(0xc8200f2000, 0xf, 0xc82000e8c0, 0x31, 0xc8200f0001, 0x12a05f200, 0x0, 0x0, 0x0)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/net/dnsclient_unix.go:143 +0x3ec
    net.tryOneName(0xc82009c300, 0xc82000e8c0, 0x31, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/net/dnsclient_unix.go:176 +0x425
    net.goLookupIPOrder.func1(0xc82009c300, 0xc820011c50, 0xc8200189c0, 0x1)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/net/dnsclient_unix.go:452 +0x59
    created by net.goLookupIPOrder
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/net/dnsclient_unix.go:454 +0x3ba

    goroutine 1 [chan send]:
    github.com/go-fsnotify/fsnotify.(*Watcher).Close(0xc8200182a0, 0x0, 0x0)
    /home/travis/gopath/src/github.com/go-fsnotify/fsnotify/kqueue.go:92 +0x38a
    github.com/gamexg/TcpRoute2/ufile.(*UFile).Close(0xc820052070)
    /home/travis/gopath/src/github.com/gamexg/TcpRoute2/ufile/ufile.go:111 +0xb2
    github.com/gamexg/TcpRoute2/netchan.(*hostsDns).Config(0xc82000ad20, 0xc820041f18, 0x0, 0x0)
    /home/travis/gopath/src/github.com/gamexg/TcpRoute2/netchan/dnschan_hosts.go:155 +0xbdf
    main.main()
    /home/travis/gopath/src/github.com/GameXG/TcpRoute2/main.go:120 +0x11db

    goroutine 5 [syscall]:
    syscall.Syscall6(0x16b, 0x3, 0x0, 0x0, 0xc82002be70, 0xa, 0x61a980, 0x0, 0x0, 0x0)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/syscall/asm_darwin_amd64.s:41 +0x5
    syscall.kevent(0x3, 0x0, 0x0, 0xc82002be70, 0xa, 0x61a980, 0x0, 0x0, 0x0)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/syscall/zsyscall_darwin_amd64.go:202 +0x77
    syscall.Kevent(0x3, 0x0, 0x0, 0x0, 0xc82002be70, 0xa, 0xa, 0x61a980, 0x0, 0x0, ...)
    /home/travis/.gimme/versions/go1.5.linux.amd64/src/syscall/syscall_bsd.go:447 +0x94
    github.com/go-fsnotify/fsnotify.read(0x3, 0xc82002be70, 0xa, 0xa, 0x61a980, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/travis/gopath/src/github.com/go-fsnotify/fsnotify/kqueue.go:492 +0x8d
    github.com/go-fsnotify/fsnotify.(*Watcher).readEvents(0xc8200182a0)
    gamexg
        18
    gamexg  
       2018-11-15 18:22:50 +08:00
    @winara #17

    像是 go 运行时问题,理论可以 github.com/golang 报告 bug。
    不过 go1.5 已经很老了,go 现在是 1.11 ,应该不会被处理。

    重新启动是否还会出现错误?
    如果还是有问题,也许使用 go1.11 编译可以解决这个问题。
    QUIOA
        19
    QUIOA  
       2019-12-30 22:43:27 +08:00 via Android
    你是不是要批量大量号搞什么东西?刷赞刷粉 or 其他晦涩项目?你不是说要分享出来,,这么久了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2765 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:21 · PVG 08:21 · LAX 16:21 · JFK 19:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.