架设透明代理实现 HTTP/HTTPS 流量转发的最高效方案是什么?

2017-11-07 20:47:24 +08:00
 billion

我现在有 10 台内网服务器,他们不能直接访问外网。

有一台公网服务器,可以访问外网。这 11 台服务器内网互通。

希望让公网服务器做代理,把 10 台内网服务器的所有 HTTP/HTTPS 请求,apt-get 请求,git 请求,pip 请求等等所有网络请求全部通过公网服务器转发出去。

请问这种需求,最高效的方案是什么?我是用 mitmproxy 来做转发,发现链接一多效率就极其底下,而且容易崩溃。

11153 次点击
所在节点    问与答
45 条回复
msg7086
2017-11-08 13:46:53 +08:00
Linux:
iptables masquerade
iptables 是内置在内核里的,除非是自己编译内核并且手动裁剪了 iptables 模块……

Windows:
RRDS https://technet.microsoft.com/en-us/library/dd469812.aspx

BSD:
Packet Filter https://www.openbsd.org/faq/pf/nat.html
lslqtz
2017-11-08 14:25:31 +08:00
sniproxy ?
billion
2017-11-08 18:30:24 +08:00
最后使用 squid 实现了我的需求。

但是我发现一个很奇怪的地方。在 Http Headers 里面,如果设置了

accept-encoding = 'gzip, deflate, br'
再走 Squid,那么返回的网页是乱码。但是如果不使用 Squid 或者不指定 accept-encoding,那么网页就一切正常。
flynaj
2017-11-08 19:20:24 +08:00
简单高效,golang 开发 https://github.com/ginuerzh/gost
billion
2017-11-09 11:14:05 +08:00
@flynaj 这就是我想要的东西。感谢。

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

https://tanronggui.xyz/t/404424

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

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

© 2021 V2EX