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

2018-03-01 00:25:51 +08:00
 kisama12

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

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

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

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

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

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

13954 次点击
所在节点    程序员
19 条回复
tylinux
2018-03-01 00:41:52 +08:00
proxychains-ng?
flynaj
2018-03-01 00:43:28 +08:00
gost
kisama12
2018-03-01 00:47:09 +08:00
@flynaj 搜了下,是证书?不太理解……
kisama12
2018-03-01 00:51:22 +08:00
@tylinux 通过本地一层一层的代理嘛?找些资料学习下怎么实现……
fhbyljj
2018-03-01 00:56:04 +08:00
同问
gamexg
2018-03-01 06:52:02 +08:00
tcproute2
huiyifyj
2018-03-01 07:57:36 +08:00
实现三重代理就为了高匿名性?
说说除了公司私密信息外的其他用处
kisama12
2018-03-01 08:06:03 +08:00
@huiyifyj 不是单纯为了匿名性,那样配置 tor 加代理就可以实现。

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

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

重新启动是否还会出现错误?
如果还是有问题,也许使用 go1.11 编译可以解决这个问题。
QUIOA
2019-12-30 22:43:27 +08:00
你是不是要批量大量号搞什么东西?刷赞刷粉 or 其他晦涩项目?你不是说要分享出来,,这么久了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/433708

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX