V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kisama12
V2EX  ›  程序员

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

  •  
  •   kisama12 · Mar 1, 2018 via Android · 15051 views
    This topic created in 2993 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

    Supplement 1  ·  Mar 1, 2018

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

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

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

    我想了解如何实现。
    yingfengi
        9
    yingfengi  
       Mar 1, 2018 via Android
    洋葱流量可识别,虽然不知道你干啥,但是知道你在用
    ThirdFlame
        10
    ThirdFlame  
       Mar 1, 2018
    路由器跑酸酸乳+终端再加 goagent 或者 vpn 双重 也可以自由组合其他的技术
    wizardoz
        11
    wizardoz  
       Mar 1, 2018
    想不通用多重代理的优势在哪里。从墙的角度讲,只要最外层的协议被识别就会被墙掉。
    从数据安全性的角度讲,混用多种加密不如好好配要一种你认为最安全的加密。
    xmoiduts
        12
    xmoiduts  
       Mar 1, 2018 via Android
    小飞机 win 客户端包含了“配置正向代理”选项,可以在此为这架飞机本身配置下一级代理。
    GhostStar
        13
    GhostStar  
       Mar 1, 2018
    gost+1
    zhjits
        14
    zhjits  
       Mar 1, 2018
    举个例子,比如你所有代理都是 HTTP 代理的情况下
    首先你要知道 HTTP 代理有个 CONNECT 可以打出一个 TCP tunnel
    然后先用一个 HTTP 代理去 CONNECT 下一个 HTTP 代理的地址,再在代码里面暴露出打出来的 TCP 洞,在这个洞里面再跑一个 HTTP 代理协议就好
    cfcboy
        15
    cfcboy  
       Mar 1, 2018
    gost+1
    kisama12
        16
    kisama12  
    OP
       Mar 1, 2018 via Android
    谢谢楼上的各位,找到 gost 了:)
    winara
        17
    winara  
       Nov 15, 2018
    @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  
       Nov 15, 2018
    @winara #17

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

    重新启动是否还会出现错误?
    如果还是有问题,也许使用 go1.11 编译可以解决这个问题。
    QUIOA
        19
    QUIOA  
       Dec 30, 2019 via Android
    你是不是要批量大量号搞什么东西?刷赞刷粉 or 其他晦涩项目?你不是说要分享出来,,这么久了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1033 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 18:28 · PVG 02:28 · LAX 11:28 · JFK 14:28
    ♥ Do have faith in what you're doing.