• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kisama12
V2EX  ›  程序员

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

  •  
  •   kisama12 · Mar 1, 2018 via Android · 15706 views
    This topic created in 3171 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
    tylinux
    Mar 1, 2018
    1
    proxychains-ng?
    flynaj
    flynaj
    Mar 1, 2018 via Android
    2
    gost
    kisama12
    kisama12
    OP
    Mar 1, 2018 via Android
    3
    @flynaj 搜了下,是证书?不太理解……
    kisama12
    kisama12
    OP
    Mar 1, 2018 via Android
    4
    @tylinux 通过本地一层一层的代理嘛?找些资料学习下怎么实现……
    fhbyljj
    fhbyljj
    Mar 1, 2018 via Android
    5
    同问
    gamexg
    gamexg
    Mar 1, 2018 via Android
    6
    tcproute2
    fengyj
    fengyj
    Mar 1, 2018 via Android
    7
    实现三重代理就为了高匿名性?
    说说除了公司私密信息外的其他用处
    kisama12
    kisama12
    OP
    Mar 1, 2018 via Android
    8
    @huiyifyj 不是单纯为了匿名性,那样配置 tor 加代理就可以实现。

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

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

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