1
aru 2014-11-03 09:22:02 +08:00
不能
|
2
aru 2014-11-03 09:23:48 +08:00
但是你可以在A中设立一个代理,根据需要将上层代理设为电信或教育网,B/C/D设为A上的代理即可
|
3
kkgogo OP @aru 谢谢回复,这个我也研究过了,例如A上安装ccproxy,利用里面的二级代理功能可以实现。但BCD只能通过openVPN与A连接后,才能上网,这个是前提……头疼啊。再次感谢兄弟回复
|
5
zk8802 2014-11-03 13:22:57 +08:00
OpenVPN 是支持 socks 代理的。
|
7
kkgogo OP @zk8802 感谢回复,我不知道从哪里设置二级代理,不是用socks连接openVPN,是连接VPN后,客户机都使用VPN服务端设置的http或socks代理
|
8
aru 2014-11-03 14:11:11 +08:00 1
在客户端浏览器的代理设置里面输入,主机: A的vpn ip(非A的内网IP), 端口 ccproxy的端口
|
9
kkgogo OP @aru 不行的,如果按照你的说法,我直接将xxx、yyy的地址给到BCD就可以了。根本不需要A。这个是有前提的,前提就是BCD只能通过openVPN或其它VPN连接方式,才能上网。
|
10
zk8802 2014-11-03 14:40:03 +08:00 1
我觉得 @aru 说的是对的。A、B、C、D 处在同一个 VPN 中,B、C、D 可以得到 A 在虚拟网(VPN)中的 IP,假设为 a.b.c.d。你只要在 A 上设置 CCProxy,让它监听 a.b.c.d 的某个端口 e,然后让 B、C、D 以 a.b.c.d:e 作为代理即可。
注意这里的 a.b.c.d 不是 A 的内网 IP 或者公网 IP,而是 A 在虚拟网(VPN)中的 IP,也就是服务器 A 上 TAP 虚拟网卡的 IP。 |
11
kkgogo OP @zk8802
@aru 两位说的我明白,但我这边有一个很打脸的现实情况。就是BCD三台电脑的使用者,根本不懂去设置代理。只需要每天打开电脑->启动openVPN客户端GUI->右键->connect,就可以了……这个虽然很矫情,但提供openVPN连接,是做为一项服务提供给我这个项目的客户的,真的不能改变使用方式,抱歉。 如果是我们三个人使用,也就不用那么费事了,我连VPN都不用架设,直接把xxx.xxx.xxx.xxx:8888、yyy.yyy.yyy.yyy:9999这两条地址给两位就行了,但现实中没办法,我也尝试过改变配置方式,但项目是半路接手的,而且openVPN是做为一项服务,跟客户收了费的……淡腾啊 |
12
aru 2014-11-03 15:30:29 +08:00
我有一个想法,不确定是否可行,不过你可以做个测试。
在A上安装一个linux虚拟机,安装openvpn server 和 squid,openvpn 推送默认网关。 squid设置为透明代理模式,将其上层代理设为电信或教育网代理 将客户端对80/443端口访问转发到squid |
13
kkgogo OP @aru
感谢提供思路,要是在windows下没有现成的解决方案,就只能采用这种方式。目前看来,只改动A,自己就可以做主 |
14
zk8802 2014-11-03 16:32:10 +08:00
squid 是可以跑在 Windows 上的。这样你就不用装 Linux 虚拟机了,直接在 Windows 上配置好 squid 透明代理,然后让你的 OpenVPN Server 推一条新网关(代替原来的默认网关)给客户就行了。
|
17
kkgogo OP |
18
a3587556 2016-04-17 23:30:59 +08:00
@kkgogo 后来我也在官方文档上查到了,可以直接在服务端的配置文件里面 push 代理地址和端口或者是 PAC 文件到客户端
|
19
cok3307788 2018-03-04 22:01:26 +08:00
@a3587556 请问你查到的是如何从服务端推送代理地址和端口的?我查了下官方文档,没有查到-_-
我查到的都是:如何通过 http 代理或者 sock 来连接 openvpn 服务端,我想要的是连接上服务端以后,客户端把流量转发到 openvpn 子网中的一台机器上。 |