请教各位,能否将 openVPN 中的流量,再利用二级代理转发? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kkgogo
V2EX    问与答

请教各位,能否将 openVPN 中的流量,再利用二级代理转发?

  •  
  •   kkgogo 2014 年 11 月 3 日 8871 次点击
    这是一个创建于 4095 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现状:
    windows服务器(A)上安装openVPN服务端。
    客户端(B、C、D)均可利用openVPN客户端连接A来访问网络。
    A、B、C、D均处于同一局域网。

    问题:
    目前有两条http代理,例如xxx.xxx.xxx.xxx:8888(电信)、yyy.yyy.yyy.yyy:9999(教育网),我想把控制权交给A,人工在A中配置或切换上述的两个http代理。从而最终实现:BCD的使用者不用关心如何切换代理,只需要通过openVPN连接到A,就可以利用这两个http代理。

    真心请教各位技术达人,本人这方面小白,周末已经研究两天未果。
    19 条回复    2018-03-04 22:01:26 +08:00
    aru
        1
    aru  
       2014 年 11 月 3 日
    不能
    aru
        2
    aru  
       2014 年 11 月 3 日
    但是你可以在A中设立一个代理,根据需要将上层代理设为电信或教育网,B/C/D设为A上的代理即可
    kkgogo
        3
    kkgogo  
    OP
       2014 年 11 月 3 日
    @aru 谢谢回复,这个我也研究过了,例如A上安装ccproxy,利用里面的二级代理功能可以实现。但BCD只能通过openVPN与A连接后,才能上网,这个是前提……头疼啊。再次感谢兄弟回复
    aru
        4
    aru  
       2014 年 11 月 3 日
    @kkgogo 似乎不冲突呀
    vpn连接后,输入A的vpn ip,和ccproxy的端口,可以么?
    zk8802
        5
    zk8802  
       2014 年 11 月 3 日
    OpenVPN 是支持 socks 代理的。
    kkgogo
        6
    kkgogo  
    OP
       2014 年 11 月 3 日
    @aru 不理解,从哪里输入?
    kkgogo
        7
    kkgogo  
    OP
       2014 年 11 月 3 日
    @zk8802 感谢回复,我不知道从哪里设置二级代理,不是用socks连接openVPN,是连接VPN后,客户机都使用VPN服务端设置的http或socks代理
    aru
        8
    aru  
       2014 年 11 月 3 日   1
    在客户端浏览器的代理设置里面输入,主机: A的vpn ip(非A的内网IP), 端口 ccproxy的端口
    kkgogo
        9
    kkgogo  
    OP
       2014 年 11 月 3 日
    @aru 不行的,如果按照你的说法,我直接将xxx、yyy的地址给到BCD就可以了。根本不需要A。这个是有前提的,前提就是BCD只能通过openVPN或其它VPN连接方式,才能上网。
    zk8802
        10
    zk8802  
       2014 年 11 月 3 日   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。
    kkgogo
        11
    kkgogo  
    OP
       2014 年 11 月 3 日
    @zk8802
    @aru

    两位说的我明白,但我这边有一个很打脸的现实情况。就是BCD三台电脑的使用者,根本不懂去设置代理。只需要每天打开电脑->启动openVPN客户端GUI->右键->connect,就可以了……这个虽然很矫情,但提供openVPN连接,是做为一项服务提供给我这个项目的客户的,真的不能改变使用方式,抱歉。

    如果是我们三个人使用,也就不用那么费事了,我连VPN都不用架设,直接把xxx.xxx.xxx.xxx:8888、yyy.yyy.yyy.yyy:9999这两条地址给两位就行了,但现实中没办法,我也尝试过改变配置方式,但项目是半路接手的,而且openVPN是做为一项服务,跟客户收了费的……淡腾啊
    aru
        12
    aru  
       2014 年 11 月 3 日
    我有一个想法,不确定是否可行,不过你可以做个测试。
    在A上安装一个linux虚拟机,安装openvpn server 和 squid,openvpn 推送默认网关。
    squid设置为透明代理模式,将其上层代理设为电信或教育网代理
    将客户端对80/443端口访问转发到squid
    kkgogo
        13
    kkgogo  
    OP
       2014 年 11 月 3 日
    @aru
    感谢提供思路,要是在windows下没有现成的解决方案,就只能采用这种方式。目前看来,只改动A,自己就可以做主
    zk8802
        14
    zk8802  
       2014 年 11 月 3 日
    squid 是可以跑在 Windows 上的。这样你就不用装 Linux 虚拟机了,直接在 Windows 上配置好 squid 透明代理,然后让你的 OpenVPN Server 推一条新网关(代替原来的默认网关)给客户就行了。
    kkgogo
        15
    kkgogo  
    OP
       2014 年 11 月 3 日
    @zk8802 OK,我试下。
    a3587556
        16
    a3587556  
       2016 年 4 月 13 日
    @kkgogo 楼主 你这个方案最后成功解决了吗?
    kkgogo
        17
    kkgogo  
    OP
       2016 年 4 月 13 日
    @a3587556 解决了。就是 14 楼的解决方案,虽然按原来的目标,也做了妥协。另外感谢 @zk8802 @aru ,发贴借助二位力量最终解决,却不给个回应,实属不该,抱歉。再次致谢。
    a3587556
        18
    a3587556  
       2016 年 4 月 17 日
    @kkgogo 后来我也在官方文档上查到了,可以直接在服务端的配置文件里面 push 代理地址和端口或者是 PAC 文件到客户端
    cok3307788
        19
    cok3307788  
       2018 年 3 月 4 日
    @a3587556 请问你查到的是如何从服务端推送代理地址和端口的?我查了下官方文档,没有查到-_-
    我查到的都是:如何通过 http 代理或者 sock 来连接 openvpn 服务端,我想要的是连接上服务端以后,客户端把流量转发到 openvpn 子网中的一台机器上。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     175 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 16:15 PVG 00:15 LAX 08:15 JFK 11:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86