假设我有多台服务器,分别为 server_1, server_2, server_3,我希望在这些服务器上浏览网页时,使用一台内部机器作为代理,而不是服务器直接请求资源。
请问有什么工具可以做到呢?
请问有什么工具可以做到呢?
谢谢大家的回复,我的确没有将情况说清楚,我所说的服务器是具有公网IP地址的,而内网机器是没有公网IP地址的。我想要的就是:对“多台具有公网IP地址的服务器”的请求,其实会经过/落在“没有公网IP地址的内网机器”。
我最后使用fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.实现了我的需求。
比如说我有两台服务器,分别为server_1和server_2,按照Access your computer in LAN by SSH,我先在两台服务器上运行frps,然后在本地启动两个frpc(一个使用frpc.ini1,其中的server_addr是server_1的公网地址;另一个使用frpc.ini2,其中的server_addr是server_2的公网地址)。这样,我就实现了“不管是访问server_1还是server_2,最终都会落在本地机器”。
|
andyzhshgOct 19, 2020
1
任意一个 http 代理都行吧,比如 privoxy?
|
|
coderxyOct 19, 2020
2
SSR 就可以
|
|
ai277014717Oct 19, 2020
3
透明代理
|
|
eudoreOct 19, 2020
4
ssr 自带负载均衡
nginx 监听隧道代理的地址,tcp 转发给后端多个代理服务器 |
|
misaka19000Oct 19, 2020
5
旁路由
|
|
farmer01Oct 19, 2020
6
socks5 代理
http 代理 |
|
gxgxxnOct 19, 2020
7
代理服务器是不是可以记录客户端的访问记录?
|
|
8
楼主其实没说明白环境,我盲猜一下阿里云服务器集群环境,也欢迎其他阿里云问题咨询我:
统一入口,使用 SLB 统一出口,使用 NAT 网关 这样来保证,无论后端多少台机器,都是共同的出口和入口,对接其他系统,也可以轻松的配置一次白名单即可 |
|
9
@andyzhshg #1
@coderxy #2 @ai277014717 #3 @eudore #4 @misaka19000 #5 @farmer01 #6 @gxgxxn #7 @opengps #8 谢谢大家的回复,我在附言补充了信息。我最后使用 frp 来实现我的需求。 |
|
kerro1990Oct 19, 2020
10
iptables 不就行了吗?搞这么复杂
|
|
snoopygaoOct 20, 2020
11
frp 小心被爆破
|
|
wizardozOct 20, 2020
13
配置一下 iptables 就可以了,将有工网 IP 的主机设置为其它主机的默认网关。
|
|
GMOct 20, 2020
16
@JasonLaw
希望在这些服务器上浏览网页时,使用一台内部机器作为代理,而不是服务器直接请求资源 “在这些服务器上浏览网页”,指的是在这些服务器上使用浏览器或者 curl 之类的访问外部页面吗? 如果是,那么“服务器是具有公网 IP 地址的,而内网机器是没有公网 IP 地址”,没外网 IP 的内物机器怎么请求外部页面? |
|
joesonwOct 20, 2020
17
你想问的是 DNAT 吗?
|
|
18
@GM #16
“在这些服务器上浏览网页”,指的是在这些服务器上使用浏览器或者 curl 之类的访问外部页面吗? 是的 “而内网机器是没有公网 IP 地址”其实不太恰当,应该是没有自己独自占有的公网 IP 地址才对。内网机器是在 NAT 后面的。 |
|
19
@joesonw #17 看了 aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTmV0d29ya19hZGRyZXNzX3RyYW5zbGF0aW9uI0ROQVQ=,是的,我是想实现“publish a service located in a private network on a publicly accessible IP address”。
|
|
snoopygaoOct 20, 2020
20
虽然我没看懂你的问题,但是使用 haproxy 或者 squid 应该是能解决的
|
|
GMOct 20, 2020
21
@JasonLaw 其实我碰到一个类似的场景,就是做公众号开发的时候,新增一台服务器就要到公众号后台添加一次 IP 白名单,非常麻烦且恶心( TX 看过来:凸),最终我的做法找一台服务器统一做出口,公众号那边只需要配置一次 IP 白名单即可,方法如下:
在出口服务器安装 nginx,配置监听 8888 端口成代理服务器,把所有请求转发到 https://api.weishit.扣扣.com 其他所有需要访问公众号接口的服务,统一修改成使用上面配置好的代理服务器,比如本来需要请求 https://api.weishit.扣扣.com/login/sns,全部改成请求 http://内网代理 IP:8888/login/sns 这个方法用了很久了,很好用。 |