Comments on Auto OpenVPN by ipset on OpenWRT

  1. 你好,

    请问:如果是全部流量都通过openvpn发出去和通过ipset分流进行对比一下,访问那list里的网站在访问速度上会不会有差别?意思就是通过iptables加ipset来筛选这些流量时会不会拖慢数据包的传输?毕竟list里有上千个域名需要筛选!

    1. ipset 就是为了避免添加了太多 IP 规则导致性能受影响的问题而生的,默认使用 hash 来匹配尽量提高速度;
      如果全部流量都从 OpenVPN 走的话,就会碰到访问国内网站走 VPN 反而速度更慢的问题了,特别是有些国内视频站不让国外 IP 访问,
      另外我用 ipset 而不用直接的 国内/国外 IP 过滤规则,也是为了跳过能正常访问的多数国外网站。

  2. 楼主我最近有一个想法,netflix把大部分的vps地址都封了,于是我想用vpngate的免费openvpn来试试,结果发现大部分的公共vpn都可以用观看netflix。 我很好奇能不能在我的服务器端链接vpngate的公共vpn,同时把服务器端设置成$$R的代理,实现连接上了服务器的$$R就可以通过vpngate访问netflix,服务器除了Netflix.com走tun0,别的全部都走eth0。。这样会方便很多。

  3. 我目前是这样做的。
    openvpn使用的Github一个叫做vpngate-with-proxy的项目,进行简单修改加入了route-nopull和script-security 2 等命令,这样在它自动连接的时候会删除掉默认路由ssh就不会断了。
    此外我把dnsmasq_list.conf这个文件修改成了server=/.netflix.com/127.0.0.1#5353
    ipset=/.netflix.com/gfwlist 别的全部删除了。

    遇到问题的是自定义防火墙规则和dnsmasq的设置。

    防火墙问题:
    我删除了iptables -t mangle -C OUTPUT -j fwmark 和iptables -t mangle -C PREROUTING -j fwmark
    然后手动运行了剩下来的防火墙命令,并保存到了/etc/iptables.rules。以下是我的iptables.rules
    # Generated by iptables-save v1.6.0 on Wed Jan 17 00:29:22 2018
    *mangle
    :PREROUTING ACCEPT [8:600]
    :INPUT ACCEPT [8:600]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [6:552]
    :POSTROUTING ACCEPT [6:552]
    :fwmark - [0:0]
    -A PREROUTING -j fwmark
    -A OUTPUT -j fwmark
    COMMIT
    # Completed on Wed Jan 17 00:29:22 2018

    Dnsmasq问题
    我在apt-get install dnsmasq之后完全不知道该怎么去编辑/etc/dnsmasq.conf这个文件,但我有一个刷机的老毛子固件里面有现成的配置文件,所以我想能不能把这个配置文件稍加修改后用进去。以下是路由器的dnsmasq配置文件
    user=nobody
    resolv-file=/etc/resolv.conf
    no-poll
    bogus-priv
    no-negcache
    clear-on-reload
    bind-dynamic
    interface=br0
    listen-address=192.168.123.1
    min-port=4096
    cache-size=512
    addn-hosts=/etc/storage/dnsmasq/hosts
    servers-file=/tmp/dnsmasq.servers
    domain=lan
    expand-hosts
    srv-host=_vlmcs._tcp.lan,Antonio.lan,1688,0,100
    dhcp-range=set:lan,192.168.123.2,192.168.123.244,255.255.255.0,86400
    dhcp-option=tag:lan,3,192.168.123.1
    dhcp-option=tag:lan,6,192.168.123.1
    dhcp-option=tag:lan,15,lan
    quiet-dhcp
    dhcp-hostsfile=/etc/dnsmasq/dhcp
    dhcp-leasefile=/tmp/dnsmasq.leases
    dhcp-authoritative
    conf-file=/etc/storage/dnsmasq/dnsmasq.conf
    conf-dir=/etc/storage/dnsmasq/dnsmasq.d

    在我配置完后抱着碰运气的想法连上了$$R,发现只要是dnsmasq_list.conf里的域名就不能访问。别的都正常,我怀疑我dnsmasq就没生效,求大佬指点迷津。谢谢!(系统是ubuntu 16.04)

  4. 补充:这是我连接openvpn后的iptables
    # Generated by iptables-save v1.6.0 on Wed Jan 17 15:52:22 2018
    *nat
    :PREROUTING ACCEPT [75:21933]
    :INPUT ACCEPT [11:941]
    :OUTPUT ACCEPT [4:348]
    :POSTROUTING ACCEPT [4:348]
    -A POSTROUTING -o tun0 -j MASQUERADE
    COMMIT
    # Completed on Wed Jan 17 15:52:22 2018
    # Generated by iptables-save v1.6.0 on Wed Jan 17 15:52:22 2018
    *filter
    :INPUT ACCEPT [421:132805]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [256:32015]
    -A FORWARD -o tun0 -j ACCEPT
    COMMIT
    # Completed on Wed Jan 17 15:52:22 2018
    # Generated by iptables-save v1.6.0 on Wed Jan 17 15:52:22 2018
    *mangle
    :PREROUTING ACCEPT [485:153797]
    :INPUT ACCEPT [421:132805]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [256:32015]
    :POSTROUTING ACCEPT [256:32015]
    :fwmark - [0:0]
    -A PREROUTING -j fwmark
    -A OUTPUT -j fwmark
    -A fwmark -m set --match-set gfwlist dst -j MARK --set-xmark 0xffff/0xffffffff
    COMMIT
    # Completed on Wed Jan 17 15:52:22 2018

  5. 按照您的方法我一直是这样的提示
    Mon Jun 4 16:57:08 2018 daemon.err openvpn(windscribe)[11977]: Options error: In [CMD-LINE]:1: Error opening configuration file: openvpn-windscribe.conf
    Mon Jun 4 16:57:08 2018 daemon.warn openvpn(windscribe)[11977]: Use --help for more information.
    Mon Jun 4 16:57:13 2018 daemon.err openvpn(windscribe)[11986]: Options error: In [CMD-LINE]:1: Error opening configuration file: openvpn-windscribe.conf
    Mon Jun 4 16:57:13 2018 daemon.warn openvpn(windscribe)[11986]: Use --help for more information.

    我的是付费版本,是否还需要添加证书这些的?

      1. 昨天夜里又操作一遍,同时把路由器固件编译到最新,同时把openvpn直接编译进去,按照您给的顺序是可以操作到logread -f看到信息,但是浏览器无法翻墙,然后又重新按照您的方式重头再做就无法用logread -f看到信息了。
        并且后面执行你的一些命令提示-asf not found。请问您有其他的非墙内即时联系方式吗?

        1. 不能翻墙要看看 openvpn 的 tun 连接是否正常,最主要 ipset 配的对不对,不行可以先试试启用 openvpn 的默认路由,看全局翻墙有没有问题。
          我的 QQ: 397270153

  6. 昨天夜里又操作一遍,同时把路由器固件编译到最新,同时把openvpn直接编译进去,按照您给的顺序是可以操作到logread -f看到信息,但是浏览器无法翻墙,然后又重新按照您的方式重头再做就无法用logread -f看到信息了。
    并且后面执行你的一些命令提示-asf not found。请问您有其他的非墙内即时联系方式吗?

  7. 加上
    script-security 2
    up /etc/openvpn/openvpn-up.sh
    down /etc/openvpn/openvpn-down.sh
    openvpn启动会报
    WARNING: Failed running command (--up/--down): could not execute external program

    不加的话openvpn可以正常启动。
    请问是否知道是什么原因造成的。

    1. ip rule add 之后可以用 ip rule list 命令确认是否添加成功了,
      不使用 ipset 之类的配置,OpenVPN 全局走 VPN 是没问题的么?
      可以看看 /etc/firewall.user 里配置的规则是不是都生效了

Leave a Comment

Your email address will not be published. Required fields are marked *

*