V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lxdlam
V2EX  ›  问与答

openwrt+openvpn 客户端+squid,感觉一句话问不完感兴趣的还是戳进来吧(

  •  
  •   lxdlam · 2015-02-15 23:33:29 +08:00 · 6933 次点击
    这是一个创建于 3377 天前的主题,其中的信息可能已经有所发展或是发生改变。

    路由器是WNDR4300,用了981213的固件。
    openvpn可以正常连接。

    目的:
    openvpn连接以后,除了squid以外所有流量都不走openvpn,而squid上来的流量经由openvpn转发,squid再转发一个http代理到本地,形成本地→squid→openwrt上的openvpn client→墙外server

    目前主要问题就是在配置上,客户端是tun+udp,连接之后完全不懂如何配置iptables

    求各位解答!
    不一定很详细,如果能说一个大致原理我自己去看也可以!

    Thanks!

    5 条回复    2015-02-16 17:16:23 +08:00
    myliyifei
        1
    myliyifei  
       2015-02-15 23:37:50 +08:00
    iptables -m owner 可以指定哪个程序
    clanned
        2
    clanned  
       2015-02-15 23:38:29 +08:00 via Android
    ss+polipo可以很简单的满足你的需求
    infinet
        3
    infinet  
       2015-02-16 09:46:42 +08:00
    首先用iptables把squid对外的流量打上标记:
    iptables -t mangle -A OUTPUT ! -d $YOUR_LAN -o lo -m owner --uid-owner $SQUID_UID -j MARK --set-mark 1

    然后在/etc/iproute2/rt_tables 里加一行:
    201 vpn.out

    再用ip命令指定打上标记的流量加入vpn.out的路由表:
    ip rule add fwmark 0x1 table vpn.out

    最后指定vpn.out路由表的流量通过vpn:
    ip route add default via $VPN_GATEWAY_IP dev $VPN_IF table vpn.out

    楼主可能还需要在squid配置文件里指定dns_nameservers,不然的话dns还是通过本地查询。

    对不支持http代理的客户端,如果碰巧支持SOCKS5代理的话,可以试用这个[内置DNS解析器的SOCKS5代理](https://github.com/infinet/blacksocks)。

    另外,为什么不用dnsmasq的ipset和server功能?简直就是完全透明地分流。如果担心需要指定的域名太多影响速度,恭喜楼主,为维护世界和平,兄弟小改了一下[dnsmasq](https://github.com/infinet/dnsmasq),现在不论加载几千几万条ipset和server项都同样快如闪电。
    lxdlam
        4
    lxdlam  
    OP
       2015-02-16 11:29:29 +08:00
    @infinet 啊感谢,毕竟初学,问一下在指定路由表那里,$VPN_IF的参数指代的是什么?
    另外其实我有ss,要是支持socks5我就直接走ss了,所以我也不用透明分流,这个东西弄起来是给3ds和psv做代理服务器使得
    infinet
        5
    infinet  
       2015-02-16 17:16:23 +08:00
    @lxdlam VPN虚拟网卡,一般来说是tun0
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   983 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:54 · PVG 04:54 · LAX 13:54 · JFK 16:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.