移除macOS中被企业策略强制安装的Chrome插件的方法

公司配发的 Macbook 安装了一些监控软件,毕竟是办公设备,这点倒是无可厚非。但是,其中的 Forcepoint DLP Endpoint 会向日常使用的主力浏览器 Chrome 中安装一个 WebsenEndpoint 的扩展插件。

这个插件的作用不必多说,但是有一个副作用就是让 Chrome 无法自动填写任何网站用户名密码。每天要输入上百次的密码这种体力活是绝对不能忍受的。于是尝试卸载这个插件。但是这个插件是使用企业策略 (Installed by enterprise policy) 强制安装,无法在Chrome中下载。但是可以通过将与之关联的 Profile 删除实现卸载的作用:

但是过两天,Forcepoint 又会把这个插件装回来,不过没关系,我们有的是办法。

方法一:通过占用 Chrome 插件文件位置,防止真正插件重新装回

原理是这样的:Chrome 的插件安装在 ~/Library/Application Support/Google/Chrome/Default/Extensions 目录下:

除去 Temp, 每个文件夹对应一个插件。我们希望移除的插件的文件夹名称是 kmofofmjgmakbbmngpgmehldlaaafnjn。由于 macOS 文件夹下,相同名称的文件和文件夹只能存在一个。因此,我们只需要在插件删除以后,在这个目录下新建一个名称为 kmofofmjgmakbbmngpgmehldlaaafnjn 的空文件:

 

 

然后,再通过文件系统的 Lock 功能锁定改文件,防止该文件被 Forcpoint 删除:

至此,大功告成,so easy!

方法二:修改 Forcepoint DLP Endpoint 插件安装脚本,禁止强奸 Chrome

法一虽然可以防止Chrome被重新安装插件,但是过几天以后,你会在你的 Profiles 配置下发现,虽然 Chrome 插件安装失败了,但是依然会成功安装这个 Profile:

虽然不会干扰系统的任何功能,但是估计很多强迫症患者看到这个还是挺难受的……从图中我们可以看到,这个插件的路径在 /Library/Application Support/Websense Endpoint/DLP:

其中 setup_chrome_ext.sh 就是强插 Chrome 的脚本:

 

 

脚本写得简单粗暴:通过 $PROFILES -I -F "/Library/Application Support/Websense Endpoint/DLP/WebsenseEndpointExtension.config" 向系统强行安装 profile. 要防止其安装插件,把这行代码删除即可。但是,这个文件是属于 admin 用户组的,我们平时使用的账号,即使集合 sudo 也只是 wheel 用户组,是干不过 admin 的,导致我们无法在正常模式下编辑该文件:

 

 

因此,我们需要通过 Command (⌘)-R 重启到恢复模式,然后在 /Volumes/mac.os/Library/Application Support/Websense Endpoint/DLP 目录下,将对应代码删除即可。

至此,自己基本满意了.

后记

稍微浏览了一下 /Library/Application Support/Websense Endpoint 文件夹,发现其实这个软件不仅强插 Chrome, 还会强插 FireFox:

 

艾玛……proxy…吓死宝宝了,已经不想改脚本了。直接在恢复模式下删除文件,然后用方法一的方法,建了一个 Lock 文件锁定这个位置。什么,还有 upgrade.sh? 你怎么不上天呢,也一并删除了……突然想起,自己在无所不能的恢复模式下,要不整个软件一起删除了?想到隔天IT技术小哥可能过来找麻烦,就此打住吧.

from 

https://web.archive.org/web/20181129183719/https://liudanking.com/beautiful-life/remove-chrome-plugin-force-installed-by-enterprise-policy/

使用redsocks把shadowsocks转为全局代理

前言

shadowsocks是个非常棒的翻墙代理,它可以在本地提供一个socks5端口供软件使用代理。比如启动chrome的时候加上--proxy-server="socks5://myproxy:1080"这条参数就可以让chrome走代理;然而,有些软件不支持设置代理的功能。所以有时候,我们需要一个全局代理的环境,使用VPN是一个通常的选择,不过一般购买的VPN的速度不如shadowsocks,同时,VPN更容易受到GFW的干扰。为什么不把正在使用的shadowsocks利用起来作为一个全局代理呢?

本文介绍了一种利用redsocks与iptables实现全局代理的方法,其基本原理如下:

  1. iptables的规则将所有tcp包转发到redsocks打开的本地端口
  2. redsocks接收tcp包并转发给shadowsocks打开的本地socks端口
  3. shadowsocks将接收的包转发给远端的代理服务器

由于使用了redsocks与iptables,因此本文的方法仅适用于Linux。

安装

由于使用的是Arch Linux,我直接通过AUR安装

$ yaourt redsocks

通过yaourt搜索redsocks包,然后选择你要安装的包的序号就可以进行安装了。

注意:下文中的配置文件的路径全部基于Arch Linux,如果你用的不是Arch Linux,请根据自己的情况更改。

其他发行版可以通过各自的包管理器或者下载源码安装

配置

配置redsocks

我在包提供的原有配置的基础上进行了一些修改,主要是把 redsocks -> port 修改为shadowsocks的本地端口(1080),另外,由于只需要转发tcp流量,我把 redudp 和 dnstc 段的配置全部注释了。注意 redsocks -> local_port 配置的端口是用来接收iptables传来的流量用的,设置为一个不会和别的程序冲突的端口,但要保证和iptables规则里的端口对应。

$ vim /etc/redsocks.conf
base {
    // debug: connection progress & client list on SIGUSR1
    log_debug = off;

    // info: start and end of client session
    log_info = off;

    /* possible `log' values are:
     *   stderr
     *   "file:/path/to/file"
     *   syslog:FACILITY  facility is any of "daemon", "local0"..."local7"
     */
    // log = stderr;
    // log = "file:/path/to/file";
    log = "syslog:daemon";

    // detach from console
    daemon = on;

    /* Change uid, gid and root directory, these options require root
     * privilegies on startup.
     * Note, your chroot may requre /etc/localtime if you write log to syslog.
     * Log is opened before chroot & uid changing.
     */
    user = redsocks;
    group = redsocks;
    // chroot = "/var/chroot";

    /* possible `redirector' values are:
     *   iptables   - for Linux
     *   ipf        - for FreeBSD
     *   pf         - for OpenBSD
     *   generic    - some generic redirector that MAY work
     */
    redirector = iptables;
}

redsocks {
    /* `local_ip' defaults to 127.0.0.1 for security reasons,
     * use 0.0.0.0 if you want to listen on every interface.
     * `local_*' are used as port to redirect to.
     */
    local_ip = 127.0.0.1;
    local_port = 31338;

    // listen() queue length. Default value is SOMAXCONN and it should be
    // good enough for most of us.
    // listenq = 128; // SOMAXCONN equals 128 on my Linux box.

    // `max_accept_backoff` is a delay to retry `accept()` after accept
    // failure (e.g. due to lack of file descriptors). It's measured in
    // milliseconds and maximal value is 65535. `min_accept_backoff` is
    // used as initial backoff value and as a damper for `accept() after
    // close()` logic.
    // min_accept_backoff = 100;
    // max_accept_backoff = 60000;

    // `ip' and `port' are IP and tcp-port of proxy-server
    // You can also use hostname instead of IP, only one (random)
    // address of multihomed host will be used.
    ip = 127.0.0.1;
    // 修改为shadosocks的本地端口
    port = 1080;


    // known types: socks4, socks5, http-connect, http-relay
    type = socks5;

    // login = "foobar";
    // password = "baz";
}

//redudp {
    // `local_ip' should not be 0.0.0.0 as it's also used for outgoing
    // packets that are sent as replies - and it should be fixed
    // if we want NAT to work properly.
    //local_ip = 127.0.0.1;
    //local_port = 10053;

    // `ip' and `port' of socks5 proxy server.
    //ip = 127.0.0.1;
    //port = 1080;

    // login = username;
    // password = pazzw0rd;

    // kernel does not give us this information, so we have to duplicate it
    // in both iptables rules and configuration file.  By the way, you can
    // set `local_ip' to 127.45.67.89 if you need more than 65535 ports to
    // forward ;-)
    // This limitation may be relaxed in future versions using contrack-tools.
    //dest_ip = 8.8.8.8;
    //dest_port = 53;

    //udp_timeout = 30;
    //udp_timeout_stream = 180;
//}

//dnstc {
    // fake and really dumb DNS server that returns "truncated answer" to
    // every query via UDP, RFC-compliant resolver should repeat same query
    // via TCP in this case.
//  local_ip = 127.0.0.1;
//  local_port = 5300;
//}

// you can add more `redsocks' and `redudp' sections if you need.

iptables规则

也是在包提供的原有配置的基础上进行了一些修改,唯一的修改只是增加了这一条

-A REDSOCKS -d proxy_server_ip -j RETURN,使代理自己不要再被重定向,不然就无限循环了。。

$ vim /etc/iptables/redsocks.rules
# Transparent SOCKS proxy
# See: http://darkk.net.ru/redsocks/

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:REDSOCKS - [0:0]

# Redirect all output through redsocks
-A OUTPUT -p tcp -j REDSOCKS

# Whitelist LANs and some other reserved addresses.
# https://en.wikipedia.org/wiki/Reserved_IP_addresses#Reserved_IPv4_addresses
-A REDSOCKS -d 0.0.0.0/8 -j RETURN
-A REDSOCKS -d 10.0.0.0/8 -j RETURN
-A REDSOCKS -d 127.0.0.0/8 -j RETURN
-A REDSOCKS -d 169.254.0.0/16 -j RETURN
-A REDSOCKS -d 172.16.0.0/12 -j RETURN
-A REDSOCKS -d 192.168.0.0/16 -j RETURN
-A REDSOCKS -d 224.0.0.0/4 -j RETURN
-A REDSOCKS -d 240.0.0.0/4 -j RETURN
# import shadowsocks server ip
#-A REDSOCKS -d xxx.xxx.xxx.xxx -j RETURN
# shadowsocks server port
-A REDSOCKS -p tcp --dport xxxxx -j RETURN

# Redirect everything else to redsocks port
-A REDSOCKS -p tcp -j REDIRECT --to-ports 31338

COMMIT

运行

开启redsocks和iptables服务,并让它们开机自启:

$ sudo systemctl start  redsocks.service iptables.service
$ sudo systemctl enable  redsocks.service iptables.service

当你需要进入全局代理时,简单地导入redsocks.rules就行:

$ sudo iptables-restore < /etc/iptables/redsocks.rules

当你需要退出全局代理环境,只需要清空iptables规则,redsocks可以让他一直运行:

$ sudo /usr/lib/systemd/scripts/iptables-flush

一些人可能是自己编译源码进行安装的,这些Arch Linux软件包内的默认配置和运行脚本可能对你有所帮助。

高级配置

由于我只在极少数特殊情况下才会用到全局代理,所以DNS防污染,国内ip白名单等都没有弄,有需要的可以研究下以下几个技术:

  1. dnsmasq

  2. pdnsd

  3. chnroutes

  4. ChinaDNS

  5. Pcap_DNSProxy

用ss-redir和iptables配置透明代理

 

透明代理指对客户端透明,客户端不需要进行任何设置就使用了网管设置的代理规则.

创建 /etc/ss-redir.json 本地监听 7777 运行ss-redir -v -c /etc/ss-redir.json

iptables -t nat -N SHADOWSOCKS
# 在 nat 表中创建新链
iptables -t nat -A SHADOWSOCKS -p tcp --dport 23596 -j RETURN
# 23596 是 ss 代理服务器的端口,即远程 shadowsocks 服务器提供服务的端口,如果你有多个 ip 可用,但端口一致,就设置这个

iptables -t nat -A SHADOWSOCKS -d 123.456.789.111 -j RETURN
# 123.456.789.111 是 ss 代理服务器的 ip, 如果你只有一个 ss服务器的 ip,却能选择不同端口,就设置此条

iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT --to-ports 7777
# 7777 是 ss-redir 的监听端口,ss-local 和 ss-redir 的监听端口不同,配置文件不同
iptables -t nat -I PREROUTING -p tcp -j SHADOWSOCKS
# 在 PREROUTING 链前插入 SHADOWSOCKS 链,使其生效

###如果要过滤国内流量可以

iptables -t nat -A SHADOWSOCKS -d 8.8.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/254.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 14.0.0.0/255.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 14.0.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 14.0.12.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 14.1.0.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 14.192.60.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 14.192.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.0.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.50.40.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.98.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.98.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.99.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.102.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.106.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.106.192.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.109.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.112.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.112.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.113.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.115.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.116.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.121.64.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.121.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.128.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.131.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.144.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.160.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.192.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 27.224.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 36.0.0.0/255.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 39.0.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 39.64.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 39.128.0.0/255.128.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 42.0.0.0/255.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.0.0.0/255.128.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.128.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.140.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.152.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.208.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.216.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.232.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.239.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.239.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 49.244.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 54.222.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.14.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.16.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.32.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.65.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.66.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.68.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.82.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.87.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.99.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.100.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.116.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.128.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.144.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.154.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 58.192.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 59.0.0.0/255.128.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 59.151.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 59.154.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 59.172.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 59.191.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 59.191.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 59.192.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 60.0.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 60.48.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 60.63.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 60.160.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 60.192.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.4.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.4.176.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.8.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.28.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.45.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.45.224.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.47.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.48.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.87.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.128.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.232.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.236.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 61.240.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 91.234.32.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 101.0.0.0/255.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 101.0.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 101.1.0.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 101.50.56.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 101.53.100.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 101.55.224.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 101.110.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.1.8.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.1.20.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.1.24.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.1.72.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.1.80.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.1.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.2.104.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.2.144.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.2.164.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.2.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.3.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.3.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.4.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.4.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.5.32.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.5.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.5.252.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.6.72.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.6.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.7.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.7.24.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.7.212.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.7.216.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.8.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.8.32.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.8.52.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.8.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.8.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.8.200.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.8.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.9.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.9.248.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.10.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.10.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.10.80.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.10.110.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.10.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.11.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.12.32.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.12.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.12.136.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.12.184.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.12.232.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.13.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.13.144.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.13.196.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.13.240.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.14.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.14.112.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.14.128.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.14.156.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.14.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.15.4.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.15.8.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.15.16.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.15.96.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.15.200.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.16.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.16.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.17.40.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.17.120.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.17.160.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.17.200.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.17.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.18.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.18.224.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.19.8.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.19.40.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.19.64.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.19.232.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.20.12.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.20.32.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.20.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.20.128.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.20.160.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.20.248.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.21.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.21.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.21.208.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.21.240.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.22.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.22.176.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.22.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.23.8.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.23.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.23.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.23.224.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.24.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.24.128.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.24.144.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.24.176.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.24.220.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.24.228.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.24.240.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.25.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.25.64.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.25.148.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.25.152.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.25.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.26.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.26.64.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.26.156.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.26.160.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.26.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.27.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.27.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.27.96.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.27.176.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.27.208.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.27.240.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.28.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.28.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.29.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.29.128.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.29.136.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.30.20.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.30.96.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.30.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.30.200.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.30.216.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.30.224.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.31.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.31.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.31.64.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.31.72.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.31.144.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.31.160.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.31.200.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.240.16.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.240.32.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.240.72.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.240.84.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.240.124.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.240.152.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.240.160.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.240.240.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.241.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.241.72.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.241.88.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.241.96.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.241.160.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.241.176.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.241.216.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.242.8.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.242.64.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.242.128.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.242.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.242.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.242.240.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.243.24.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.243.136.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.243.248.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.244.16.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.244.56.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.244.64.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.244.80.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.244.144.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.244.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.244.232.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.244.240.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.245.20.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.245.48.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.245.60.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.245.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.245.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.246.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.246.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.246.128.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.246.152.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.247.168.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.247.176.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.247.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.64.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.96.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.152.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.160.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.192.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.208.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.248.224.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.249.12.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.249.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.249.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.249.192.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.249.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.250.32.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.250.104.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.250.124.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.250.176.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.250.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.32.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.80.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.96.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.120.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.128.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.160.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.200.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.224.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.251.240.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.252.24.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.252.32.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.252.64.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.252.96.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 103.252.168.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 106.0.0.0/255.128.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 106.192.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 110.0.0.0/254.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 110.93.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 110.232.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 111.66.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 111.67.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 111.68.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 111.91.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 111.235.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 111.235.156.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 111.235.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 112.0.0.0/248.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 112.137.48.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 113.52.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 114.198.240.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 115.124.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 115.166.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 116.66.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 116.89.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 116.90.80.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 116.90.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 116.95.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 117.104.160.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 118.102.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 118.102.32.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 119.63.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 119.82.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 119.232.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 119.235.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 120.0.0.0/252.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 120.88.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 120.136.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 120.137.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 121.0.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 121.100.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 121.101.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 121.101.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 121.200.192.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 122.102.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 122.102.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 122.128.120.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 122.200.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 122.201.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 122.248.24.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 122.248.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 122.255.64.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 123.108.128.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 123.108.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.0.0.0/255.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.40.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.40.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.42.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.47.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.108.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.108.40.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.109.96.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 124.147.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.31.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.32.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.58.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.60.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.62.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.64.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.168.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.171.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.208.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 125.254.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 134.196.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.0.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.128.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.148.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.155.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.156.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.170.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.176.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.183.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.186.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.188.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.192.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.224.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 139.226.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.75.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.143.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.205.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.206.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.210.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.224.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.237.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.240.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.243.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.246.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.249.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.250.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 140.255.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 144.0.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 144.6.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 144.12.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 144.52.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 144.122.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 144.255.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 150.0.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 150.115.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 150.121.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 150.122.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 150.138.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 150.223.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 150.254.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 153.0.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 153.3.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 153.34.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 153.36.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 153.96.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 153.100.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 153.118.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 157.0.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 157.18.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 157.61.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 157.122.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 157.148.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 157.156.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 157.255.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 159.226.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 161.207.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 162.105.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 163.0.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 163.125.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 163.142.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 163.177.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 163.178.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 163.204.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 166.110.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 167.139.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 168.160.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 171.8.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 171.32.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 171.80.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 171.96.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 171.208.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 175.0.0.0/255.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 175.102.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 175.106.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.64.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.128.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.148.16.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.148.152.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.148.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.148.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.149.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.150.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.189.144.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.200.252.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.201.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.202.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.208.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.210.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.212.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.222.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.223.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.233.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.233.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 180.235.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 182.0.0.0/254.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 182.23.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 182.23.192.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 182.160.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 182.174.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 183.78.176.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 183.182.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 192.124.154.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 192.188.168.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.0.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.0.176.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.3.128.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.4.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.4.252.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.6.4.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.6.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.6.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.8.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.8.24.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.8.64.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.8.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.8.192.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.9.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.10.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.12.0.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.12.16.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.12.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.14.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.20.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.20.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.21.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.22.248.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.27.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.36.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.15.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.135.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.136.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.140.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.143.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.144.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.150.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.155.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.156.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.158.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.40.162.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.41.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.43.72.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.43.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.44.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.45.0.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.45.15.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.45.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.46.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.47.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.47.128.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.57.240.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.58.0.0/255.255.255.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.59.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.59.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.59.232.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.59.236.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.60.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.60.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.60.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.62.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.62.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.63.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.63.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.63.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.65.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.67.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.69.4.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.69.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.70.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.70.192.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.72.32.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.72.80.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.73.128.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.74.8.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.74.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.74.254.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.75.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.75.240.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.76.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.77.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.78.8.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.79.224.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.79.248.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.80.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.81.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.83.248.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.84.4.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.84.8.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.84.24.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.85.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.86.248.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.87.80.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.89.8.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.90.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.90.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.90.192.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.90.224.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.91.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.91.96.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.91.128.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.91.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.91.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.92.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.92.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.93.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.93.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.94.92.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.95.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.95.240.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.95.252.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.96.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.112.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.120.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.122.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.122.32.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.122.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.122.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.122.128.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.123.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.124.16.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.124.24.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.125.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.125.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.127.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.130.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.130.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.131.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.131.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.131.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.133.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.134.56.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.134.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.136.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.137.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.141.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.142.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.143.4.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.143.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.143.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.146.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.146.192.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.147.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.148.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.152.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.153.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.153.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.157.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.158.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.160.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.162.64.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.164.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.164.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.165.96.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.165.176.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.165.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.166.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.168.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.170.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.170.216.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.170.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.171.216.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.171.232.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.172.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.173.0.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.173.8.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.173.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.174.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.176.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.179.240.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.180.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.180.208.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.181.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.182.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.182.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.189.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.189.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.189.184.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.191.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.191.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 202.192.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.0.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.76.160.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.76.168.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.77.176.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.78.48.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.79.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.79.32.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.80.4.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.80.32.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.80.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.81.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.81.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.82.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.82.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.83.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.83.224.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.86.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.86.254.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.88.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.99.8.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.99.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.99.80.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.100.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.100.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.104.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.105.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.105.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.106.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.110.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.110.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.110.232.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.114.240.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.116.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.128.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.129.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.130.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.132.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.134.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.135.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.135.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.142.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.144.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.145.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.148.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.148.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.149.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.152.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.152.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.153.0.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.156.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.160.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.160.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.161.0.0/255.255.252.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.161.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.161.192.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.166.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.168.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.170.56.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.171.0.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.171.224.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.174.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.174.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.175.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.176.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.176.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.176.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.184.64.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.187.160.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.189.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.189.112.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.189.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.190.96.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.190.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.191.0.0/255.255.254.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.191.16.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.191.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.191.144.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.192.0.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.193.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.194.96.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.195.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.196.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.202.232.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.204.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.208.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.209.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.212.0.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.212.64.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.215.232.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.222.192.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.223.0.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 203.223.16.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.0.0.0/255.192.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.2.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.5.0.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.5.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.56.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.64.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.82.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.87.128.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.185.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 210.192.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 211.64.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 211.96.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 211.128.0.0/255.128.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 218.0.0.0/255.128.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 218.185.192.0/255.255.192.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 218.192.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 218.240.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 218.248.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 219.72.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 219.80.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 219.128.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 219.216.0.0/255.248.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 219.224.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.101.0.0/255.255.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.112.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.152.128.0/255.255.128.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.154.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.160.0.0/255.224.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.192.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.224.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.242.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.247.128.0/255.255.224.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.248.0.0/255.252.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 220.252.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 221.0.0.0/255.240.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 221.122.0.0/255.254.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 221.128.0.0/255.128.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 222.0.0.0/254.0.0.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 223.27.184.0/255.255.248.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 223.223.176.0/255.255.240.0 -j RETURN
iptables -t nat -A SHADOWSOCKS -d 223.223.192.0/255.255.240.0 -j RETURN

路由表可参见Best Route Table ##清除自定义规则

  • 清空整个链 iptables -F 链名比如iptables -t nat -F SHADOWSOCKS
  • 删除指定的用户自定义链 iptables -X 链名 比如 iptables -t nat -X SHADOWSOCKS
  • 从所选链中删除规则 iptables -D 链名 规则详情 比如 iptables -t nat -D SHADOWSOCKS -d 223.223.192.0/255.255.240.0 -j RETURN

from https://gist.github.com/wen-long/8644243

Ubuntu桌面系统上,编译运行Redsocks2,实现透明代理

之前我写过一篇文章《WiFi热点分享ShadowSocks流量实现全局透明代理》里面详细解释了如何使用SSH(或Shadowsocks等其他socks5代理)+redsocks+iptables实现Ubuntu笔记本电脑分享一个Wifi,然后让所有连接这个wifi的客户端都实现透明代理(科学上网),但是这样做受限于redsocks的稳定性问题,因为当时的redsocks是通过Ubuntu的apt-get安装的,版本很旧而且已经停止更新,bug主要表现在。之前我写过一篇文章《WiFi热点分享ShadowSocks流量实现全局透明代理》里面详细解释了如何使用SSH(或Shadowsocks等其他socks5代理)+redsocks+iptables实现Ubuntu笔记本电脑分享一个Wifi,然后让所有连接这个wifi的客户端都实现透明代理(科学上网),但是这样做受限于redsocks的稳定性问题,因为当时的redsocks是通过Ubuntu的apt-get安装的,版本很旧而且已经停止更新,bug主要表现在。
1、不能关闭已建立的连接,一旦超越linux的最大限制,就会报“Too many open files”异常,导致服务瘫痪,需要每隔一段时间进行重启2、在我的使用还发现这种方式经常会让NetworkManager对无线网卡的管理崩溃,导致无线网卡停止工作,搜索不到wifi信号,需要经常重启NetworkManager。
3、redsocks1的-p参数有bug,不能生成对应的pid文件。
目前国内带有代理功能的Openwrt路由器普遍使用semigodking 改写的redsocks2,而且redsocks2更新很频繁,经常会有bug修复和新功能出现,所以最好的方式是我们自己去编译github上的源码然后安装使用,编译过程很简单,两分钟即可搞定,从此摆脱redsocks1的bug。
redsocks2的作者应该是个恩山的大神,原贴地址:http://www.right.com.cn/FORUM/forum.php?mod=viewthread&tid=163936,在此要非常感谢大神提供的优秀的透明代理工具
首先找个没有权限限制的目录,比如用户目录下的Downloads,然后克隆github上的c代码

git clone https://github.com/semigodking/redsocks 然后cd到项目根目录
cd ./redsocks 然后安装一个依赖库 libevent2才能编译,否则会报错
sudo apt-get install libevent-dev然后就可以开心的编译了

make 编译完成之后,会在当前目录下生成一个redsocks2的可执行文件

如果你编译失败,也可以用我之前用Ubuntu16.04编译好的可执行文件,下载地址:http://download.csdn.net/detail/lvshaorong/9664994
注:下载后需要右键,选择属性,找到“权限”选项卡,勾选“允许作为程序执行文件”
然后这个redsocks2文件可以拖出来执行,不过首先我们需要修改它的配置文件,这个目录中有个配置模板文件redsocks.conf.example
我们现在修改这个文件如下

base { // debug: connection progress & client list on SIGUSR1 log_debug = off;//log记录连接进度和客户端列表  // info: start and end of client session log_info = on;//log记录客户端回话的开始和结束  /* possible `log' values are: *   stderr *   "file:/path/to/file" *   syslog:FACILITY  facility is any of "daemon", "local0"..."local7" */ //log = "file:/home/alex/log/redsocks.log";//指定log文件的位置,这里要填你本地的位置,而且文件夹必须存在 // log = "file:/path/to/file"; // log = "syslog:local7";  // detach from console daemon = on;//on就在后台执行,off就占用当前终端来显示log,关闭终端redsocks也关闭,所以推荐后台执行on  /* Change uid, gid and root directory, these options require root * privilegies on startup. * Note, your chroot may requre /etc/localtime if you write log to syslog. * Log is opened before chroot & uid changing. */ // user = nobody; // group = nobody; // chroot = "/var/chroot";  /* possible `redirector' values are: *   iptables   - for Linux *   ipf        - for FreeBSD *   pf         - for OpenBSD *   generic    - some generic redirector that MAY work */ redirector = iptables;//转发工具,Ubuntu使用iptables即可  /* Override per-socket values for TCP_KEEPIDLE, TCP_KEEPCNT, * and TCP_KEEPINTVL. see man 7 tcp for details. * `redsocks' relies on SO_KEEPALIVE option heavily. */ //tcp_keepalive_time = 0; //tcp_keepalive_probes = 0; //tcp_keepalive_intvl = 0;} redsocks { /* `local_ip' defaults to 127.0.0.1 for security reasons, * use 0.0.0.0 if you want to listen on every interface. * `local_*' are used as port to redirect to. */ local_ip = 0.0.0.0;//本地监听的地址,为了是iptables的端口转发生效,必须填写0.0.0.0 local_port = 12345;//本地监听端口,如果12345被别的程序占了就换一个  // listen() queue length. Default value is SOMAXCONN and it should be // good enough for most of us. listenq = 128; // SOMAXCONN equals 128 on my Linux box.  // `max_accept_backoff` is a delay to retry `accept()` after accept // failure (e.g. due to lack of file descriptors). It's measured in // milliseconds and maximal value is 65535. `min_accept_backoff` is // used as initial backoff value and as a damper for `accept() after // close()` logic. // min_accept_backoff = 100; // max_accept_backoff = 60000;  // `ip' and `port' are IP and tcp-port of proxy-server // You can also use hostname instead of IP, only one (random) // address of multihomed host will be used. // The two fields are meaningless when proxy type is 'direct'. ip = 192.168.1.21;//socks5服务器的ip和端口,可以是SSH或者Shadowsocks的 port = 44401;  // known types: socks4, socks5, http-connect, http-relay // New types: direct, shadowsocks type = socks5;//协议,一般SSH和Shadowsocks填socks5     // Specify interface for outgoing connections.    // This is useful when you have multiple connections to    // internet or when you have VPN connections.    // interface = tun0;  // Change this parameter to 1 if you want auto proxy feature.  // When autoproxy is set to non-zero, the connection to target // will be made directly first. If direct connection to target // fails for timeout/connection refuse, redsocks will try to // connect to target via the proxy. autoproxy = 0;//是否开启自动代理,0为不开启,推荐不要开启 // timeout is meaningful when 'autoproxy' is non-zero. // It specified timeout value when trying to connect to destination // directly. Default is 10 seconds. When it is set to 0, default // timeout value will be used. timeout = 10;//自动代理超时  // login = "foobar";// field 'login' is reused as encryption    // method of shadowsocks // password = "baz";}//模板上还有redudp和reddns设置,但是运行时会报错,所以直接删掉ipcache {    // Configure IP cache    cache_size = 4;   // Maximum number of IP's in 1K.     stale_time = 900; // Seconds to stale an IP in cache since it is added                      // into cahce.                      // Set it to 0 to disable cache stale.    port_check = 1;   // Whether to distinguish port number in address    cache_file = "/tmp/ipcache.txt"; // File used to store blocked IP's in cache.    autosave_interval = 3600; // Interval for saving ip cache into file.                              // Set it to 0 to disable autosave.    // When autosave_interval and stale_time are both 0, IP cache behaves like    // a static blacklist. } // you can add more `redsocks' and `redudp' sections if you need.
模板上还有redudp和reddns设置,但是运行时会报错,所以直接删掉,如果想解决DNS污染的问题,可以参考我之前的两篇文章《Ubuntu16.04用Pdnsd替换dnsmasq防止DNS污染》《一分钟快速搭建Windows防污染DNS服务器——Pcap_DNSProxy》,或者通过Ubuntu apt-get的redsocks(redsocks第一代)进行udp转tcp的DNS查询,但是那样做会影响这台Ubuntu电脑本身的上网。但是如果你不处理DNS污染,你还是上不去facebook,google,twitter,Ins,youtube等网站的。然后使用iptables将所有的tcp流量都转发到redsocks2进行代理即可,配置如下

iptables -t nat -A PREROUTING -d 127.0.0.0/24 -j RETURN  iptables -t nat -A PREROUTING -d 192.168.0.0/16 -j RETURN  iptables -t nat -A PREROUTING -d 10.42.0.0/16 -j RETURN  iptables -t nat -A PREROUTING -d 0.0.0.0/8 -j RETURN  iptables -t nat -A PREROUTING -d 10.0.0.0/8 -j RETURN  iptables -t nat -A PREROUTING -d 172.16.0.0/12 -j RETURN  iptables -t nat -A PREROUTING -d 224.0.0.0/4 -j RETURN  iptables -t nat -A PREROUTING -d 240.0.0.0/4 -j RETURN  iptables -t nat -A PREROUTING -d 169.254.0.0/16 -j RETURN    iptables -t nat -A PREROUTING -p tcp -s 10.42.0.0/16 -j REDIRECT --to-ports 12345  其中修改的是PREROUTING表,这样只会对Wifi网卡的流量起作用,而不会对本机起作用,如果想让本机起作用,可以把相同的规则加上server的ip return加到OUTPUT表上。
上面的10.42.0.0/16是Ubuntu系统分享wifi后,wifi子网连入设备的IP地址,上面最后一句话的意思就是把所有来自Wifi的数据包都发送到redsocks2的监听端口12345去
然后就可以启动redsocks2了redsocks2 -c <配置文件的地址> 然后使用netstat -ntlp观察12345端口是否被redsocks2监听即可如果想实现手机,笔记本电脑通过该电脑进行透明代理,那么可以开启Ubuntu的wifi分享功能让手机连入,然后开心的fan wall了,Ubuntu16.04开启Wifi分享功能网上说的很多,我这里就不浪费篇幅了
http://jingyan.baidu.com/article/363872ecd8f35d6e4ba16f97.html
如果想让局域网其他的电脑通过你的电脑进行透明代理,那么只需要让局域网的其他电脑将网关设置为你的电脑的局域网IP地址即可。Ubuntu默认就可以做网关使用,只要你的电脑网关配置正确即可,如果我的电脑ip是192.168.1.81的话,真实的网关是192.168.1.254,那么局域网内其他电脑可以做如下配置


像Openwrt这样的系统默认是不能做网关的,因为FORWARD表默认被DROP了,我们可以通过iptables手动打开
sudo iptables -I FORWARD -j ACCEPT

 

另外,如果你不使用SSH进行代理,而是Shadowsocks,那么不需要用redsocks多走一层,直接用ss-redir即可,方法可以看我之前的一篇文章《Ubuntu编译运行ss-redir打造透明代理Wifi环境》


后记:
在运行了一段时间后发现,redsocks2在上游代理出现问题的时候,还是会向Redsocks1一样使NetworkManager崩溃导致无线网卡停止工作,但是频率不redsocks1降低了很多。
我写了一个启动,停止和终止redsocks2的脚本,可以放在定时任务里定时重启,记得使用root权限,分享给大家
启动脚本 start.sh
/home/alex/redsocks2 -c ./config/redsocks.conf停止脚本,注意下面不是单引号,而是键盘左上角那个引号,stop.sh
kill -9  `pgrep redsocks2 `重启脚本
start.shstop.sh
除了使用pgrep自动探测pid以外,还可以在启动脚本里添加-p参数,然后使用kill `cat /home/alex/pid/redsocks2.pid`(参数是我自己规定的pid文件位置)获得pid,但是这样麻烦,就不用这种方式了。

from https://blog.csdn.net/lvshaorong/article/details/52933544 

---------

WiFi热点分享S-S流量实现全局透明代理

平时使用s-s或SSH科&学*上%网的时候,感觉速度和稳定性和速度比VPN强不少,但是独乐乐不如众乐乐,如何把我连上ss的电脑做成热点,通过wifi分享给周围其他的人呢?又如何将ss变成一个全局的透明代理,而不仅仅限于浏览器和少数几个支持代理的软件呢?平时使用s-s或SSH科&学*上%网的时候,感觉速度和稳定性和速度比VPN强不少,但是独乐乐不如众乐乐,如何把我连上ss的电脑做成热点,通过wifi分享给周围其他的人呢?又如何将ss变成一个全局的透明代理,而不仅仅限于浏览器和少数几个支持代理的软件呢?
做此项研究的起因是公司的一个同事需要科学上网做开发,于是我把ss通过Privoxy转换成http代理爽快的给她用了,但是她反映没什么作用,我看了一下才知道,她在电脑里部署了一个apache服务器用来运行php服务,php程序中有一个耗时操作是链接远在新加坡的MYSQL服务器获取数据,但是该MYSQL服务器被墙了访问很慢,于是php就卡住了,需要想办法让apache服务也翻出墙去,而apache并没有设置代理的相关选项。
如果有一个wifi,链接上该wifi以后电脑里的全部程序都实现了S-S代理,不需要配置这配置那设置各种代理,那岂不是效率高得多,于是从这个出发点开始,我开始用手上的Ubuntu电脑制作一个可以科学上网的笔记本PC路由器。
如果你手上有老旧的笔记本电脑舍不得扔的话,不妨改造成一个科学上网路由器,发挥最大价值。


该方法同样适用于分享一个wifi给PS4这样的设备去外网玩游戏用
 大体思路
我的Ubuntu笔记本有两块网卡,一块插网线的有线网卡,一块WIFI无线网卡,用Ubuntu系统自带的功能将无线网卡做成一个热点,然后该无线网卡以有线网卡为网关,所有流量流经有线网卡,当有设备通过WIFI链接上我无线网卡分享出的热点后,所有的流量经过iptables的端口转发后发送给redsocks,再经redsocks发送给S-S的客户端,最后将流量发送给远程代理服务器,这样无线网卡就变成了一个透明代理,所有通过我电脑分享WIFI上网的设备都实现了全局代理。
 所需设备和软件
Ubuntu设备一台,据备无线网卡和有线网卡(我用的是一台普通的ThinkPad笔记本)。
一个S-S帐号(一般十块钱左右一月,网上很多卖的)。
S-S 客户端
redsocks服务(Ubuntu直接使用apt-get指令安装即可)后记:推荐使用redsocks2
iptables服务(Ubuntu自带的即可)


 部署过程
第一步:安装SS客户端
这个方面网上有很多文章介绍,这里就不多说了,总之需要在本机开启一个socks5代理的端口,如果比如127.0.0.1:1080。
(ps:如果要分享给区域网其他用户使用这个端口,就配置成局域网地址:1080比如192.168.1.81:1080)
因为Ubuntu上命令行的SS,也就是通过apt-get install sslocal安装的S-S版本太低,不支持RC4-MD5加密方法(python 支持),于是我这里用的是图形界面的S-S-Qt5
(ps:图形界面的S-S-Qt5稳定性不强,经常请求数一多和流量一高的时候就崩溃,所以推荐去编译github上最新的SS命令行客户端,具体步骤可以参考我的博文《Ubuntu编译运行ss-redir打造透明代理Wifi环境》,最新C语言版的SS我没有见过崩溃的情况出现,非常稳定)。
大体的配置如下:


注:为了防止代理服务器DNS解析出问题,上面的“服务器地址”推荐直接使用IP地址,而不是域名。
第二步:部署redsocks服务
redsocks是非常好用的代理软件,用于把普通的tcp流量转换成socks5协议的流量,是这个实现中的关键。
后记:redsocks本身有很多bug,造成redsocks运行极不稳定,推荐使用国内一大神修改后的Redsocks2,稳定性极高,并且集成了SS功能在里面,Redsocks2可以完全取代ss客户端,具体可以参考我的博客《Ubuntu编译运行Redsocks2实现透明代理》,注意,redsocks2的配置文件也和redsocks不同。
部署起来也不麻烦,首先通过下面的指令进行安装
sudo apt-get updatesudo apt-get install redsocks然后修改redsocks的配置文件 /etc/redsocks.conf,如下base { // debug: connection progress & client list on SIGUSR1 log_debug = off;  // info: start and end of client session log_info = on;  /* possible `log' values are: *   stderr *   "file:/path/to/file" *   syslog:FACILITY  facility is any of "daemon", "local0"..."local7" */ log = "syslog:daemon";  // detach from console daemon = on;  /* Change uid, gid and root directory, these options require root * privilegies on startup. * Note, your chroot may requre /etc/localtime if you write log to syslog. * Log is opened before chroot & uid changing. */ user = redsocks; group = redsocks; // chroot = "/var/chroot";  /* possible `redirector' values are: *   iptables   - for Linux *   ipf        - for FreeBSD *   pf         - for OpenBSD *   generic    - some generic redirector that MAY work */ redirector = iptables;} redsocks { /* `local_ip' defaults to 127.0.0.1 for security reasons, * use 0.0.0.0 if you want to listen on every interface. * `local_*' are used as port to redirect to. */ local_ip = 0.0.0.0;//本地监听的ip地址和端口,一般默认即可 local_port = 12345;  // `ip' and `port' are IP and tcp-port of proxy-server // You can also use hostname instead of IP, only one (random) // address of multihomed host will be used. ip = 127.0.0.1;//S-S 客户端提供的socks5代理端口 port = 1080;   // known types: socks4, socks5, http-connect, http-relay type = socks5;  // login = "foobar";//使用SS客户端一般不需要用户名和密码 // password = "baz";} redudp {//这个配置是UDP请求转TCP请求的配置,用于DNS转换 // `local_ip' should not be 0.0.0.0 as it's also used for outgoing // packets that are sent as replies - and it should be fixed // if we want NAT to work properly. local_ip = 0.0.0.0;//不要修改,保持默认 local_port = 10053;//不要修改,保持默认  // `ip' and `port' of socks5 proxy server. ip = 127.0.0.1;//S-S 客户端提供的socks5代理端口 port = 1080; //login = username;//使用客户端一般没有用户名和密码 //password = pazzw0rd;  // kernel does not give us this information, so we have to duplicate it // in both iptables rules and configuration file.  By the way, you can // set `local_ip' to 127.45.67.89 if you need more than 65535 ports to // forward ;-) // This limitation may be relaxed in future versions using contrack-tools. dest_ip = 8.8.8.8;//DNS的服务器地址,推荐8.8.8.8 dest_port = 53;//DNS的服务器的服务端口,使用默认的53即可  udp_timeout = 30; udp_timeout_stream = 180;} dnstc {//配置UDP DNS转发端口 // fake and really dumb DNS server that returns "truncated answer" to // every query via UDP, RFC-compliant resolver should repeat same query // via TCP in this case. local_ip = 127.0.0.1;//给DNS请求 UDP包转TCP包的转发地址,注意这里不要改成0.0.0.0 local_port = 5300;//给DNS请求 UDP包转TCP包的转发接口}
然后重启redsocks服务$ sudo service redsocks start


第三步:也是最容易出错的一步了,就是使用iptables配置相关路由协议
我这里把我配置的贴出来
//避免局域网回路sudo iptables -t nat -A PREROUTING -d 127.0.0.0/24 -j RETURN sudo iptables -t nat -A PREROUTING -d 192.168.0.0/16 -j RETURN//让发给其他设备的数据包顺利通过,下面的10.42.0.0/16是连接了Ubuntu热点的设备的ip地址段sudo iptables -t nat -A PREROUTING -d 10.42.0.0/16 -j RETURN//将其他的数据包,也就是其他设备访问网络的数据包全部转发到redsocks的服务端口sudo iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 12345
//配置好上面的路由规则就可以实现所有连接热点的设备自动科学上网了,但是DNS解析还是在墙内解析,会碰到DNS污染无法访问facebook等网站,所以下面将DNS请求包也转发至SS
//将UDP的DNS解析请求通过redsocks转换成tcp的DNS请求sudo iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 5300//将TCP的DNS请求通过SS发送给SS客户端进行远程墙外解析sudo iptables -t nat -A OUTPUT -p tcp --dport 53 -j REDIRECT --to-ports 12345
这里不得不说一下,在设置了上面的PREROUTING规则之后,连上笔记本分享wifi的设备就已经把所有的tcp流量走了S-S代理,但是使用udp协议的DNS查询请求还是走的本地,而墙内对facebook,twitter,google这样的网站一般都进行了DNS污染,也就是解析他们的域名时会返回错误的IP地址。即使把DNS服务器设置成8.8.8.8或者OpenDNS也会因为其他服务器的DNS缓存而得到错误的IP地址,况且8.8.8.8等DNS服务器的流量早就已经被墙了,根本ping不通。所以我们需要让DNS解析请求也经过SS代理服务器进行解析,但是redsocks不支持udp协议包的转发,而且有些SS代理服务器也不支持udp协议,所以此时我们就需要将udp协议包转换成tcp协议包,发送到SS代理服务器解析,然后再以tcp协议包发回,获得解析结果。这些步骤redsocks已经设计好了,只需要向上面贴的加上OUTPUT路由协议即可实现。
但是按上面的iptables配置添加了OUTPUT的路由协议,我Ubuntu本机应用的DNS解析都瘫痪了,但好在我可以让浏览器和其他服务直接挂S-S的客户端进行上网,也就是不走系统默认的DNS解析,而是让每个应用自主的使用代理解析DNS,于是也就忽略了这个缺陷。
下面贴一下DNS被污染后的解析结果


可以看到IP被指向了非美国的IP,而curl这个IP是得不到任何相应的,下面贴一下经过redsocks udp转tcp协议后正确DNS解析的结果


第四步:修改Ubuntu的DNS解析服务器
只需要修改/etc/resolv.conf文件,如下将默认的127.0.0.1前面加上#,然后添加8.8.8.8做dns服务器
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN#nameserver 127.0.0.1nameserver 8.8.8.8将DNS服务器改成8.8.8.8,以后的DNS请求就会转换成tcp协议通过SS代理服务器的转发到代理服务器当地的8.8.8.8解析后返回,防止DNS污染
保存以后一般立即生效,无需重启
后记:该方法会导致Ubuntu系统自身无法获得DNS结果而无法上网,但是wifi客户端是没有问题的,最方便的解决方案是让Ubuntu本机的dnsmasq请求OpenDNS的非53端口,详细做法可以看我的博客《Dnsmasq+ipset+iptables基于域名的流量管理》,但是更好的办法是使用pdnsd将UDP的DNS请求转换为TCP协议的请求来防止投毒污染,具体做法可以参考我的博客《Ubuntu16.04用Pdnsd替换dnsmasq防止DNS污染》

第五步:开启Ubuntu的Wifi热点功能
开启该项功能不麻烦,可以参考下面经验
http://jingyan.baidu.com/article/363872ecd8f35d6e4ba16f97.html


好了,目前为止该做的都已经完成了,现在可以打开手机链接一下试试科学上网好使不好使,推荐首先测试国内网站,排除DNS污染的影响,比如百度搜索"ip"看看自己的ip是否已经变成了代理服务器的ip,然后再访问被墙网站。


 开发中遇到的坑
首先就是Ubuntu分享出来的WIFI,除了小米手机意外的设备,比如电脑,iphone,Android手机连接都没有问题,但是小米手机一连接该WIfi我的笔记本无线网卡就会挂掉,Ubuntu提示“设备未就绪”,经过一番调试,发现这有可能和udp DNS转tcp有关,我当时为了减少WIFI信号上的冲突,将无线网卡的频率限制在了2.4G的波段4,于是小米手机链接后网卡挂是必现事件,后来将波段改成了自动之后,Ubuntu给我设置在了波段一,网卡挂掉的频率减少了很多,不是必现了。后来我又加上了WIFI密码,网卡几乎就不挂了(之前我都不设WIFI密码,任何设备都可以连接)。所以在这里推荐将波段设置为自动,并且设置连接密码来提高稳定性。


当然用上面的方式,在接入设备多的时候还是会导致无线掉线,最好的方式还是用专门的无线路由器来连接客户端而不是使用Ubuntu电脑自带的小wifi网卡,然后把Ubuntu电脑作为网关进行流量转发实现代理,相关实现可以看我的博客《OpenWrt基于HAProxy的透明代理负载均衡和高可用部署》


还有一个问题不得不说,redsocks和S-S-Qt5一样在Ubuntu上运行的稳定性很差,连接的人数一多,或者数据传输量比较大的时候会莫名其妙的挂掉,一般我都使用nslookup命令来查询DNS测试是否宕机,如果能查寻到正确结果,说明redsocks和S-S都没问题,反之这两个服务至少挂掉了一个,redsocks服务挂掉之后12345端口并不会关掉,使用netstat -ntl还是可以看到,但是如果S-S服务挂了,那么1080端口就看不到了,通过netstat -ntl命令就可以查到是哪个服务挂了,如果是redsocks服务挂掉,可以使用
$ sudo service redsocks restart
来重启服务,一般重启后几十秒后就会恢复正常
一般redsocks挂都是因为too many open files,也就是说redsocks建立的socks连接数超过linux内核的限制,ubuntu系统默认限制是1024,需要修改配置文件来提高这个限制,需要编辑 /etc/security/limits.conf这个文件如下

#*               soft    core            0#root            hard    core            100000#*               hard    rss             10000#@student        hard    nproc           20#@faculty        soft    nproc           20#@faculty        hard    nproc           50#ftp             hard    nproc           0#ftp             -       chroot          /ftp#@student        -       maxlogins       4* soft nofile 65000* hard nofile 65000# End of file
主要是中间65000两句,配置完成后重启计算机,使用ulimit -n来查看当前文件限制,如果返回65000说明修改成功。S-S稳定性提高方案是将客户端移到别的电脑上,或者使用最新的python版或者libev版,我使用windows客户端稳定性极高,几乎不会掉线。
为了进一步提高redsocks的稳定性,我使用crontab每分钟重启一次redsocks,不然的话虽然文件限制提高了,但是redsocks并不会清理某些已没用的连接,所以需要定时重启一下redsocks(redsocks2已经解决这一问题)方法如下:
首先修改crontab的配置文件
$ sudo crontab -e
在最下面添加这样一行
*/10 * *   *   *     /etc/init.d/redsocks restart
然后重启crontab服务
sudo service cron restart
过几分钟观察crontab定时任务有没有很好的运行
service cron status


这样每10分钟redsocks都会重启一次redsocks,就不会出现too many open files导致无法连通网络了
后记:上面的方法并不优雅,推荐使用Redsocks2,没有不关闭连接的bug,几乎不会崩溃,详情可以看我的博客《Ubuntu编译运行Redsocks2实现透明代理》
 高负载分流方案
这么好的东西,只需连上一个WIFI就能实现全局科学上网,速度还比VPN快好多,当然会有很多人用,人数多了之后主要的瓶颈就在wifi信号和ss流量上,目前我使用的单个节点能平均能跑到10Mb/s,峰值能达到30Mb/s感觉还够用,但是如果以后人数更多,加上下载和看视频的流量,也许就捉襟见肘了。那么我们可以使用多个SS代理服务器进行分流,我打算这么做,1台延迟低的节点做DNS解析,主要是得益于redsocks的DNS和普通流量分离的做法,剩下几个节点做数据分流。分流方案我打算用ip地址进行分流,因为Ubuntu的无线网卡有DHCP功能,而且对连接设备的ip分配是随机的,于是可以根据设备的ip进行分段分流。首先需要实现的是开启多个redsocks实例,监听不同的端口,这个比较容易实现,首先我们需要复制原来的配置文件并且进行修改,比如将原来的1080端口换成1081端口,然后再开启一个S-S客户端实例挂在另一个代理节点在127.0.0.1:1081接口,这个使用S-S-Qt5很容易实现。我们把新的redsocks配置文件命名为 redsocks2
然后我们使用-c参数开启redsocks实例,监听两个不同的端口实现分流
$ sudo /usr/bin/redsocks -c /etc/redsocks
$ sudo /usr/bin/redsocks -c /etc/redsocks2
然后修改S-S客户端,监听1080和1081两个端口分别使用不同的节点


然后使用iptable路由协议根据ip地址进行分流
$ sudo iptables -t nat -I PREROUTING 5 -p tcp -m iprange --src-range 10.42.0.100-10.42.0.254 -j REDIRECT --to-ports 23456
$ sudo iptables -t nat -A PREROUTING -p tcp -s 10.42.0.0/16 -j REDIRECT --to-ports 12345
这样就将一半的流量分流至了另一个ss站点,该WIFI的带宽瞬间增长一倍。使用这种方案还能配置更多节点,让WIFI的瓶颈不再是带宽限制,最终实现全公司人科学上网工作。
后记:上面的仅仅是通过ip段来实现负载均衡,但是对于SS服务端没有实现均衡,最好的方式不是对客户端进行均衡,而是将客户端发来的所有流量负载均衡和高可用到多个不同的ss服务器上去,实现方法可以看我的博客《OpenWrt基于HAProxy的透明代理负载均衡和高可用部署》
另外有人会说这样使用iptables折腾是不是太麻烦了,如果有一个VPN帐号,Ubuntu原生在分享Wifi的时候就可以自动配置,根本不需要任何配置,用Windows使用VPN之后再加上WIFI共享精灵等软件共享出来的也是VPN科学上网后的,那我们为什么还非要搞的这么复杂呢?
S-S使用socks5协议,是一种将流量压缩并加密的优秀传输协议,相比起PPTP的VPN隧道具有几个明显的优势:
1、安全性好,数据传输经过了充分的加密,不容易深度包检测发现流量特征
2、稳定性好,L2TP掉线率很高,并且掉线以后往往缺乏自动重连的机制,但是S-S的客户端一般不会轻易掉线
3、服务器搭建成本低,不需要配置密钥,只需开启一个服务即可
4、速度快,S-S的速度在请求人数多的时候非常明显,并且可以配合锐速这样种变态功能进行加速,效果非常好。

from https://blog.csdn.net/lvshaorong/article/details/52470012 

在Linux 桌面系统下,用shadowsocks + iptables + ss-redir 实现全局代理


为了实现socks5全局代理我研究了很多天,网上的教程都不是给小白看的,很多问题根本没有说指出,作为一个小白,我一定详细的写好这篇文章,让每个人都能配置好全局代理! 
好了,其实首先就是要有一个服务器,网上的有的文章有的根本没提服务端需要的配置(服务端代理也必须也为socks5,因为我之前服务端有https代理,我以为就不需要配置服务端了,这让我走了很多坑)

1.配置服务端

在终端下载 shadowsocks-libev 这个软件,不同系统下载的方法不同,主要就是分两类系统下载 
(ubuntu 类)

sudo apt-get install shadowsocks

或者(centos类)

sudo yum install shadowsocks

下载完成后会有ssservice 这个工具 命令就是

ssservice -c 配置文件

下面我来写一个配置文件 配置文件内容如下(如果大家要复制粘贴的话一定要把注释去掉,否则不能正确执行的)

{
    "server":"xx.xx.xx.xx", //你的服务器的ip地址
    "server_port":80, //客户端访问服务器的端口(这个端口一定是开着的,保证客户端可以访问到服务器的代理),
    "password":"xxxxxxx", //密码 随便设置(不过必须要设置一个密码,否则服务不能运行)
    "method":"rc4-md5",  //这个必填,就写这个rc4-md5就行了
    "local_address":"0.0.0.0",//这个必须为0.0.0.0
    "local_port":1080, //设置1080就可以了
    "fast_open":false //这个没什么用,如果设置true说是可以提高加载速度,不过我感觉也没什么效果,按照其他文章写得都是false,所以我们也设置为false吧
}

这里还要注意最后一个配置项结束后没有逗号,其余每个配置项都要有逗号 
写完这个配置项 把它保存为 shadowsocks.json(其实保存什么样的后缀名都可以读出来,不过我还是习惯于写.json了) 
然后运行命令

ssservice -c shadowsocks.json

如果报错

socket.error: [Errno 98] Address already in use

就说明你的端口(我配置文件中设置的是80,这个看你设置的是多少了)被占用了 
两种解决办法 、 
1.结束掉占用端口的服务 
2.换别的端口 
怎么结束,或者怎么查看自己开启的端口 百度去吧,我这里不多说了

如果没报错 服务端就已经配好了

2.客户端 
下载shadowsocks-libev 
ubuntu类型系统 输入

sudo apt-get install shadowsocks-libev

如果没找到这个软件那就可以下载我的资源点我点我! 
注意:这个软件是deb的如果你是centos系列的那就没办法了,去github搜索shaodowsocks-libev这个项目自己编译安装吧!

centos类型系统 输入

sudo yum install shadowsocks-libev

安装完成后会有ss-redir 
命令就是

ss-redir -c 配置文件

配置文件同理还是以json为后缀名 
配置文件如下(自己新建一个shadowsocks.json文件,如果大家要复制粘贴的话一定要把注释去掉,否则不能正确执行的)

{
    "server":"xxx.xxx.xxx.xxx",  //服务器ip地址
    "server_port":80,  //访问服务器的端口(要跟你服务器上面设置的一样,我设置的是80)
    "timeout":600,  //设置的超时,按照我设置的就可以了
    "password":"xxxxxxx",  //密码要跟你服务器上设置的一样
    "method":"rc4-md5",  //还是跟服务器上配置的一样
    "local_address":"0.0.0.0",  //这个必须为0.0.0.0
    "local_port":1080,  //设置1080就行
    "fast_open":false   //和服务器上配置的一样
}

这个配置完后我们还需要写一些iptables规则,打开命令行,输入如下:

iptables -t nat -N SHADOWSOCKSR
iptables -t nat -A SHADOWSOCKSR -d 0.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 10.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 100.64.0.0/10 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 127.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 169.254.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 172.16.0.0/12 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 192.168.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 224.0.0.0/4 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 240.0.0.0/4 -j RETURN
iptables -t nat -A SHADOWSOCKSR -p tcp -j REDIRECT --to-ports 1080
iptables -t nat -I PREROUTING -p tcp -j SHADOWSOCKSR
iptables -t nat -A OUTPUT -p tcp -j SHADOWSOCKSR

(上面的命令要切换到root用户去执行的,因为我发现有的普通用户是没有iptables命令的)

为了方便大家复制粘贴,我在下面简单的说一下这几条的命令的大致含义 
就是把你本机所有产生的流量转发给1080端口去处理,而上面的大多数的命令是忽略局域网产生的流量,就是不转发局域网产生的流量(具体链什么含义去看http://www.linuxidc.com/Linux/2016-09/134832.htm这篇文章,很详细) 
删除上面的命令是

iptables -t nat -F

其实你现在的全局代理就可以用了,在命令行里输入

ss-redir -c shadowsocks.json

这样你的全局代理就生效了

但是这些命令输入完之后,重启后就会失效,而且还需要启动ss-redir服务,所以我们这里做一个脚本 
脚本的功能是: 
1.运行这个脚本会执行iptables这些命令 
2.启动ss-redir这个服务 
3.按回车后,关闭ss-redir 这个服务,并删除所用iptables的规则 
脚本如下:

#!/bin/bash
iptables -t nat -N SHADOWSOCKSR
iptables -t nat -A SHADOWSOCKSR -d 0.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 10.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 100.64.0.0/10 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 127.0.0.0/8 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 169.254.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 172.16.0.0/12 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 192.168.0.0/16 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 224.0.0.0/4 -j RETURN
iptables -t nat -A SHADOWSOCKSR -d 240.0.0.0/4 -j RETURN
iptables -t nat -A SHADOWSOCKSR -p tcp -j REDIRECT --to-ports 1080
iptables -t nat -I PREROUTING -p tcp -j SHADOWSOCKSR
iptables -t nat -A OUTPUT -p tcp -j SHADOWSOCKSR
ss-redir -c /home/wshuo/shadowsocks.json &
read -p "按回车关闭代理"
killall ss-redir
iptables -t nat -F
echo "已经退出代理"
exit 0

(这个脚本要在 root 用户下执行,因为iptables的命令是root下的) 
把这个脚本保存为 dl.sh 文件 
这样你只需输入./dl.sh 
就能启动全局代理,而你按一下回车就退出全局代理 了,很方便.

在Debian vps上,使用 gdnsd 自建 DNS 服务并分区解析

 

gdnsd 是一款权威 DNS (Authoritative-only DNS)服务器软件,因为自带 GeoIP 插件,所以很适合自建 CDN 做分区解析,著名的喂鸡百科就是使用 gdnsd 进行全球 CDN 分区解析

众所周知,天朝的网络环境,国内访问国外慢,同理国外访问国内也慢,所以我们很有必要搭建 CDN 并且使用 DNS 进行分区解析

而国内比较知名的权威 DNS 服务商如 CloudXNSDNSpod 他们免费版的 DNS 服务器都在国内,这样会造成国外的用户解析你的域名很慢,同理,如果使用国外的权威 DNS 服务商如 CloudflareAWS Route53 他们的 DNS 服务器都部属在国外,国内访问基本要走美国节点,这样会造成国内的用户解析你的域名很慢

所以我们需要选择一家对国内外速度都友好的 ISP 来托管你的权威 DNS 服务器,如果您没有找到合适的,我们这里推荐 cat.net 以及阿里云国际版

以下安装步骤都在 root 用户下完成,请自行使用 su 命令切换到 root 用户

1、注册 DNS 服务器

假设您的 DNS 域名是 example.com ,购买并安装好了两台 NS 服务器,分别为

ns1.example.com 对应 IPv4 192.0.2.2 IPv6 2001:DB8::2
ns2.example.com 对应 IPv4 192.0.2.3 IPv6 2001:DB8::3

首先,您需要在您的域名注册商注册 Name Servers 由于每个注册商的控制面板不同,我们这里以 cat.net 为例,登陆 Custom Portal 后,点击 Domains > My Domains 如图

然后进入您的域名管理页面,点击小工具的箭头,如图

接着点击左侧的 Private Nameservers 如图

然后在右侧即可注册、管理或删除 NS 服务器,如图

我们分别注册 ns1 和 ns2 即可

PS: cat.net 后台只能一次提交注册一个 IP 地址,如果需要一个 NS 服务器对应多个 IP 地址,则只需要发服务单让客服帮忙修改即可

好了,到这里我们已经注册好 NS 服务器,接下来开始搭建 gdnsd

2、安装 gdnsd

Debian 9.x 自带的 gdnsd 已有编译好的版本,所以我们不需要编译安装,直接一条命令即可,同样适合 Debian 8.x

apt-get install gdnsd

如果加了 Backports 则可以使用

apt-get -t stretch-backports install gdnsd

Debian 8.x 则是

apt-get -t jessie-backports install gdnsd

记得检查系统或服务商的防火墙,我们需要打开的端口是 TCP / UDP 的 53 端口,请安装后检查服务商是否给您打开了这个端口,否则 DNS 是无法工作的

3、配置 gdnsd

gdnsd 的 Github Wiki 上已经提供了很详细的 config 以及 zonefile 配置,但是对新手来说坑比较多,由于我们的需求是根据国内外分区解析,所以这里我简单的提供一下本站的配置文件,感谢肥猫童鞋的细心指导

这里假设阁下的网站域名是 example.org 国内服务器节点 IPv4 为 192.0.2.4 IPv6 为 2001:DB8::4 国外服务器节点 IPv4 为 192.0.2.5 IPv6 为 2001:DB8::5

那我们的逻辑就是,当国内用户请求 example.org 解析的时候, gdnsd 判断用户本地的 DNS 是否在国内,是的话解析到国内对应的服务器节点,如果不是,则默认解析到国外服务器节点,能理解这个逻辑以后我们就开始配置吧

首先登陆 ns1.example.com

ssh root@ns1.example.com

gdnsd 需要有一个对应的 config 文件,需要自己创建,这里默认新建一个 /etc/gdnsd/config 文件,输入以下内容

options => {
  listen => any
  dns_port => 53
  chaos_response => "SBDNS"
}

service_types => {
  example_monitor => {
    plugin => http_status
    ok_codes => [200, 301, 302, 403, 404]
    vhost => example.org
    url_path => /
  }
}

plugins => { geoip => {
  maps => {
    china_map => {
      geoip_db => GeoLiteCity.dat
      datacenters => [default-dc, cn-dc]
      map => {
        AS => {CN => [cn-dc, default-dc]}
      }
    }
	
  }
  resources => {
  
    example_org => {
      map => china_map
      service_types => example_monitor
      dcmap => {
	  
        cn-dc => {
		addrs_v4 => 192.0.2.4
		addrs_v6 => 2001:DB8::4
		},

        default-dc => {
		addrs_v4 => 192.0.2.5
		addrs_v6 => 2001:DB8::5
		},
		
      }
    }

    }
	
  }
  
}

我们来一条一条解释

options => {
  listen => any
  dns_port => 53
  chaos_response => "SBDNS"
}

options 是 gdnsd 的配置选项,一般无特殊需求的话可以监听本机的所有 IP ,所以这里 listen 选的是 any, DNS 服务器端口选默认的 53chaos_response 则是 DNS 返回的软件版本,可以自己随便指定个名字

service_types => {
  example_monitor => {
    plugin => http_status
    ok_codes => [200, 301, 302, 403, 404]
    vhost => example.org
    url_path => /
  }
}

这里因为我们开启了监控,并且使用的插件是 http_status ,如果不需要监控的话可以忽略

plugins => { geoip => {
  maps => {
    china_map => {
      geoip_db => GeoLiteCity.dat
      datacenters => [default-dc, cn-dc]
      map => {
        AS => {CN => [cn-dc, default-dc]}
      }
    }
	
  }
  resources => {
  
    example_org => {
      map => china_map
      service_types => example_monitor
      dcmap => {
	  
        cn-dc => {
		addrs_v4 => 192.0.2.4
		addrs_v6 => 2001:DB8::4
		},

        default-dc => {
		addrs_v4 => 192.0.2.5
		addrs_v6 => 2001:DB8::5
		},
		
      }
    }

    }
	
  }
  
}

这一段才是最重要的,也是本文的精髓所在,这里我们启用了 GeoIP 插件,设置的默认解析到国外的节点,国内用户对应一个 datacenter 叫做 cn-dc ,只要 gdnsd 判断该用户是国内请求的解析,那么就返回我们设置的国内 IP ,否则就返回默认的国外节点,如果不需要 IPv4 则可以直接写

cn-dc => 192.0.2.4
default-dc  => 192.0.2.5

更多的 GeoIP 配置信息可以在 Github Wiki 页面中找到

4、安装 GeoIP 数据库

我们的数据库使用的是 Maxmind 免费的 GeoLite City,大多数情况下也足够使用,下载和解压的命令如下

cd /etc/gdnsd/geoip && wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz && gzip -df GeoLiteCity.dat.gz

5、配置 zonefile

首先,细心的读者肯定发现我们还没配置 DNS 域名 example.com 所以新建一个 /etc/gdnsd/zones/example.com 文件,举例如下

$TTL	86400

@	IN	SOA ns1.example.com.	hostmaster.example.com.	(
	1      ; serial
	7200   ; refresh
	900    ; retry
	1209600     ; expire
	10800    ; ncache
)

@		NS		ns1.example.com.
@		NS		ns2.example.com.

ns1		A	192.0.2.2
ns2		A 	192.0.2.3

ns1     AAAA	2001:DB8::2
ns2     AAAA	2001:DB8::3

这里默认设置的 TTL 是 86400 也就是一天,可以根据需要修改

接着需要创建 /etc/gdnsd/zones/example.org 文件,举例如下

$TTL	3600

@	IN	SOA ns1.example.com.	hostmaster.example.com.	(
	1      ; serial
	7200   ; refresh
	900    ; retry
	1209600     ; expire
	10800    ; ncache
)

@		NS		ns1.example.com.
@		NS		ns2.example.com.

@		DYNA	geoip!example_org

www		CNAME	example.org.

6、检查 gdnsd 配置

一条命令即可

gdnsd checkconf

如果最后三行输出如下,即成功配置

# info: rfc1035: Loaded 71 zonefiles from '/etc/gdnsd/zones/'
# info: rfc1035: quiescence time is 3 seconds
# info: Configuration and zone data loads just fine

7、重启 gdnsd

如果修改了 config 文件,那么我们则需要重启 gdnsd 服务,如果之后只是修改 zonefile 那么则无需这个步骤

gdnsd restart

8、安装配置 ns2.example.com 并同步

由于 gdnsd 是个轻量级的 DNS 服务器,不带同步功能,所以您需要按照上面的步骤重新配置一次 ns2.example.com 并且让他重启生效,为了今后方便同步,我们可以使用 rsync 来进行

首先,在 ns1 和 ns2 都安装 rsync

apt-get install rsync

然后我们以 ns1 作为 master ,ns2 作为 slave ,每次修改 ns1 的文件并且自动同步到 ns2,以下命令均在 ns1 操作

生成 SSH Key

ssh-keygen -t ed25519

查看并复制公钥 id_ed25519.pub

cat ~/.ssh/id_ed25519.pub

把公钥的内容复制到 ns2 服务器的 ~/.ssh/authorized_keys 即可

然后执行同步

rsync -avz --delete /etc/gdnsd/ ns2.example.com:/etc/gdnsd/

也可以写入 bash 脚本,比如 sync.sh

CONFDIR=/etc/gdnsd
rsync -avz --delete $CONFDIR/ ns2.example.com:/etc/gdnsd/

赋予权限

chmod +x sync.sh

之后就可以直接执行脚本,不需要每次输入代码

./sync.sh

另外这里还有肥猫写的更新 GeoIP 数据库的脚本 geoip.sh

URL=http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
FILENAME=GeoLiteCity.dat.gz
DIR=/etc/gdnsd/geoip
cd $DIR; rm -f $FILENAME; wget $URL; gzip -df $FILENAME

9、修改域名 DNS 服务器

这个应该大多数读者会,直接去您的注册商把 example.com 和 example.org 的 DNS 服务器设置为 ns1.example.com 和 ns2.example.com 并耐心等待生效

10、测试生效

一般耐心等待一段时间(取决于您的旧 DNS 服务器 TTL 失效时间)后,我们自建的 gdnsd 已经生效,建议找一台国内的机器和国外的 Linux 机器来分别测试,Windows 下命令不好记,嘎嘎

首先安装必要的 DNS 工具

Debian / Ubuntu 下

apt-get install dnsutils

CentOS 下

yum install bind-utils

然后我们使用 dig 命令来检测

首先检测 NS 记录是否生效

root@debian ~ # dig NS example.com +short
ns1.example.com.
ns2.example.com.

检测 A 记录或 AAAA 记录是否生效

国内对应解析到 192.0.2.4 和 2001:DB8::4

root@china ~ # dig A example.com +short @223.5.5.5
192.0.2.4
root@china ~ # dig AAAA example.com +short @223.5.5.5
2001:DB8::4

国外对应解析到 192.0.2.5 和 2001:DB8::5

root@australia ~ # dig A example.com +short @8.8.8.8
192.0.2.5
root@australia ~ # dig AAAA example.com +short @8.8.8.8
2001:DB8::5

更多节点检测的话可以去 ping.chinaz.com 或 just-ping.com 查看全国以及全世界各地的解析情况

检测 DNS 是否生效的话可以使用 IntoDNS

from http://web.archive.org/web/20181127035122/https://sb.sb/blog/debian-install-gdnsd/

危机前夜的中国困境

 

不用条分缕析,我们清楚看到:中国正在进入新一轮“前途是光明的,道路是曲折的”历史循环,经过近30多年跨越式实质是经济大跃进后,高积累、高发展和高能耗带来的诸多弊端已显露无遗,社会沉苛已久的矛盾已到了大爆发的临界点,改良式的修补已无济于事,而腐败形成的“跑冒滴漏”业已形成蚁穴溃堤之隐,但倒逼改革和高层设计在左右之争中仍没形成在国家有效治理上的合力,这实在是遗憾,是走传统调整、改革、整顿、提高的老路,还是以壮士断腕之决毅,进行全方位结构性的改革?时代给中国的时间的确不多了。

按经济权威人士——中央财经办主任刘鹤的观点,未来中国经济既不是U型,也不是V型而是L型。无论什么型,说明中国模式并未成型,从风景这边独好,到时下经济困局,我们只能这么说:无限风光已到险峰!

 

金融危机诱发性征兆初显

几年前政治导向刊物《求是》杂志发文,称“中国是全球发展最好的国家”,我私下在猜测,《求是》杂志如此这般高调吟诵时,有个人已经焦虑到不行,他不是别人,正是新上任的国家总管李克强总理。

李克强刚上任之初,也怀有“全民红利”思想,但接下来大半年时间里,他发现中国经济赖以增长的发展模式似乎已经失灵,那一时期,国家投入的货币总量并不低于往年,但刚性的GDP好像绵花糖一样软绵绵地膨大,李克强意识到必须对量化宽松的货币政策进行铁腕调控,否则一味地开闸放水,崩而未溃的经济将不可能维持下去。

结果都已是世人皆知,2013年6月中旬,央行稍动真格,一直爹疼娘爱,毫无抗压能力的各大国有银行,就凸显钱荒,中国银行间短期拆借利率竟然一夜飙到了25%,股市一泄千里,富豪午间打了个盹就流失几十上百亿元资金,央行迫于无奈,只得重启闸口。

对此,被喻为中国改革派的央行行长周小川意味深长地表示,市场已基本理解了央行的“实弹演习”,只是周行长话音未落,他就不得不再施怀柔政策,为亲骨肉们雪中送炭。

这就是中国经济虚弱无力的真实表现,也许很多人都难解其中之谜,为何胡温体制一转手到新一届政府,就出现了如此巨大的动荡?

其实这与李克强们无关,只与中国政治经济体制的惯性润滑方式有关。2008年,当美国金融危机暴发时,正值中国奥运会盛典之年,保稳定促增长的结果,不是将危机趁势转化为中国产业调整的良机,而是彰显万能政府超越经济规律的阔绰,4万亿救市方案被高调无比地推了出来,当时就有许小年等大批经济学者痛陈这是“祸水”,不出两年,CPI必然疯涨,形成新的量变泡沫,最终将自尝苦果。

两年不到,果然应验,但此时十八大已经临近,政府束手无策,不得不从政治高度再次祭出凯恩斯主义,继续用量化宽松的货币政策确保十八大前经济与社会的全面稳定,4万亿的2.0版赓即又推了出来,泡沫就这样越吹越大,产业沉苛积重难返,老百姓手中的钱一天天缩水,内心焦灼但强挺硬扛的温家宝心知肚明:这烫手的山芋只能交给下一届政府了去处理了。

但思维脱节、政治敏感的官媒却早已按奈不住太平盛世的狂欢,竭尽汉文溢美之词,大赞风景这边独好!美国媒体也用脱口秀的方式调侃,党支部降至华尔街,连美国都有救了!

没错,中国确实做过金融危机的救火队员。1998年亚洲金融危机从泰国诱发时,资本机会主义的商业哲学曾在中国发挥到了极至,在一个特定的环境下,中国确实成为那次危机最大的受益者。

时间回逆,1998年亚洲金融危机暴发时,因着自1989年以来的政治经济低靡,中国国家统计口径中“净误差与遗漏”项目已连续9年为负,1997年竟然高达221亿美元,这意味着当年借的外债,差不多又通过地下渠道出逃,重新流出了中国。好了,亚洲金融危机在这临界点上暴发了,资本趋利避害,向利润最高方向流动的结果,给市场发育不全、经济相对稳定的中国带来一次天赐的际遇,当年资本出逃现象得以遏止并从此逆转,热钱开始大举流入中国,此后十多年里,热钱与中国政府主导的投资型经济一拍即合,在股市、房地产业和人民币升值热炒中翻云覆雨、神出鬼没、兴风作浪。

任何一个欧美国家的财富集累方式都远不如转轨中的中国来得这般传奇,由于体制使然,权力与财富的拥有者对环境和资源的占有量从优,他们更容易在资本市场上获利,使中国成为全球权力寻租最大的“角斗场”,生产资料与市场价值的关系被反复扭曲,甚至兽性湮灭人性,经济如同纵欲过度的男人,过早透支了明天的健康,导致当下中国社会腐败、农村环境恶化,城市夏天看海,冬天吸霾,国民贫富差距也几近无解。

 

透支的繁荣一定要偿还

中国政府一直是经济发展的总导演和主角,这30多年来似乎也显示他们的确是“逢凶化吉,遇难呈祥”的高手,但有一点必须明白,低年级成绩好的同学,进入高年级时,就是从普通学生进入精英学子的过程,身心环境都会发生深刻的变化。

中国经济特别值得关注的两个方向是:

一、这几年国家对房地产的调控力度史无前例,但房地产依然涨声一片,北、上、广土地成交量巨增,差不多大半年时间就超过了上一年土地成交量的总和,而土地增值速度的急速攀升,本身就是对政府自我控调政策的反讽,也说明宏观调控面对失缰的经济已失去杆杠作用,调控反倒加大了行政在经济领域中的支配权,增生了权力寻租的机会,西方不承认中国市场经济地位,不是没有道理的。

二、这几年国家货币投入增加很快,但经济却前所未有的疲软,这说明在产业失衡、产能过剩,经营粗放和科技研发乏力的市场环境下,资本找不到更好的投资方式,又暗暗回流到了房地产业,中国实体经济的分化人令人堪忧。

一个房地产业,足可将中国体制性弊端透彻得一清二楚,甚至不需要X光和显微镜!

其实,从朱镕基时代开始的分税制,中央政府就已把地方政府就逼上了“自我救赎”之路,作为GDP政绩考核的需要,缺钱缺粮的地方政府要发展,又不能违背法律直接向市场借贷,怎么办?于是各地纷纷成立国企投资公司,以此为平台,向市场融资,土地成为政府资源垄断中最大的抵押品,经营城市变成了经营土地。地方政府的钱袋与房地产开发商紧密捆绑在一起,成为钱途合一的盟友,称其为经济联姻也不为过,甚至不惜动用国家警力参与由开发商主导的暴力拆迁,与民争利,上访潮波澜壮阔,中国房价当惊世界殊!

一个更残酷的事实就此呈现:如果房地产泡沫破裂,那就意味着金融风险。

几年前,人们就在问,中国金融危机来了吗?患得患失的危机意识下,人们似乎更相信政府攻守全备的调控能力,的确,危机像遥远的传说,让所有预言都成为“水中月镜中花”。

但很少有人能在抽丝剥茧中,看到由政府主导的经济投资效率与收益都十分低下,而举债发展的结果,使各级地方政府背负了天量债务,单靠财税是没法偿还的,怎么办?唯有印钞。

据央行公布的数据,短短四五年时间里,中国的货币供应量就从60万亿上升到近180万亿以上,居世界第一,中国才是全球最大的“印钞机”。而这一时期地方政府、国企的债务规模已达175万亿元左右,仅2015年中国非金融部门的债务就达到了GDP的2.6倍。

据瑞银估算,中国政府为了支撑经济增长,决策层将2016年全年新增信贷目标从2015年的18万亿元提高至23万亿元。按此速度,预计到2020年债务占GDP的比重可能将超过3倍。

时间像一个永不停竭的沙漏,不断将财富吞进纳出,如今,中国多地方政府债务率都超过了警戒线,贵州省的债务率甚至高达207%,象浙江样富庶的东部发达省份,其债务率也快踩到红线上。举债下的繁荣差不多就相当一位借钱扮帅的阔少,终究是要梦回现实的。

所有繁荣在尖刻、沉重的数据面前,都应当有沉痛的默哀。郎咸平说中国99%的白领会在未来十年破产,沦回贫困阶层,此话虽然有郎式风格的过头,亦显出主流经济学者对中国未来的悲观,我们过去靠政府威权下的“缩骨功”,躲过了两场金融危机,但如果真的要来,不,是早晚一定要来的那场危机,一定是“病来如山倒,病去如抽丝。”

经济阴盛阳虚是注定的了,从今年以来的表现来看,即使再泡沫化地推出4万亿乃至10万亿救市的第N版,中国亦无法再现“高增长”的黄金时期了,印钞的结果,只会将人民币幻化为国民党大陆统治未期的金元券,那时一捆金元券还买不到一个狗不理包子,甚至许多市民入厕用的手纸都是百元大钞。

但是,如果中国经济从周期性衰退遁入到结构性衰退,那意味着什么?意味着透支的繁荣一定要偿还;意味着经济改革将不再是政府主导的修补,而是全领域结构性改革,关于这一点,李克强领导的政府怎么都绕不过去;习大也说,改革由人民说了算!

利益集团改革阻力如同巷战

中国于2001年加入WTO,今年已是第15个年头了,此前关于中国市场经济地位的约定并没有水到渠成,全球承认中国为市场经济的国家屈指可数,欧美绝大多数国家乃至在中国崛起中受益巨大的日本也公开宣布,他们不会承认中国大陆市场经济地位。

大网网民又是一片“帝吧出征,寸草不生的”声讨,并从政治高度认定,这就是欧美纠集日本右翼等敌对势力玩弄的诡计,目的是试图阻止中国大国复兴的步伐。

事实上,我们更应从自身找原因。别的不说,人家政府是服务型的,国家法律根本不允许政府直接参与竞争领域的经济活动;而中国差不多都是政府搭台,经济唱戏——银行是政府的,高速公路是政府的,医院、学校是政府的,工会是政府的,甚至连厕所也可以成为政府名下的“小金库”。央企有150多家,地方国企近13万家,说白了,政府垄断了经济资源的70%,规则永远是朝他们制定的,权力寻租成为民企官商合流下迫不得以的求生选择。

值得注意的倾向是,政府数次推出的4万亿救市方案,钱主要流向了国企,这些年国进民退,如秃子头上的虱子,明摆着,但政府一直羞于承认,那么事实是:政府收入占国民经济的比重,从1996年的12%上升到了2015年的45%左右,这还没有包括其他的预算外收入,这说明什么?说明政府收入占GDP的比重已经重回八十年代早中期改革开放初的形态,带有深刻的计划经济的痕迹,这显然是隐形退步。

这样的经济体制的确是中国独门绝学,政府原本想在不改变政治体制的条件下,利用威权主义的官商哲学,集中力量办大事,进而有超越资本主义市场经济的优越性,但结果是:盘根错节的关系网、惊人的社会不公、庞大的既得利益集团,不断恶化的环境、扭曲的市场价值、钝化了的产业竞争和毫无创新能力的科技跟风,如果不进行结构性的改革,中国经济的前景无疑将黯然无光,在资源耗尽后重回初级产业老路,也就是说几十年经济改革归零。

李克强在上任之初答中外记者问时说,改革比触动灵魂还难,但即使如此,也要有壮士断腕的决心。王岐山在推荐《旧制度与大革命》一书时,也直率地说,我们知道现在所作的只是在治标,但我们要为治本迎得时间。

什么是治本?简单地说就是要进行结构性改革,回归市场经济的普世法则中去,这意味着中国经济的所有制将全面改变,政府必须制定一个中长期经济改革蓝图,最终退出市场操盘手角色,真正转型为服务型政府;金融、国企业也将完成“非特色”化的市场改造,主流方向是私有化,想不想做,做与不做,都必然要做,只要中国不走老路(退也退不回去的了),必然要融入“全球同此凉热”的大市场中,成为规则的遵守者。

当然,与此配套的必然是政治改革,渐进稳妥的政治改革是必须的和紧迫的,只当垄断寄生下的国营企业主体性退出市场竞争领域后,经济的资源配置才会趋于公平,市场才能发挥它最大的能效,而此后,威权才能回归民权,这是意识形态方面的全民福利。

但现实的艰难令人窒息,看到了和做得到,存在非常巨大的差距,即使是在治标方面,利益集团的阻力就如同残酷的巷战。

全国现存有上万项各类收费审批事项,几年前,李克强就准备砍掉一半,但刀没下,就遭到各地异乎寻常的顽强抵抗,许多部门花样百出、耍尽手段与中央捉迷藏,隐匿上报的收费项目多次被打回,但仍不死心要拚死一搏,完全是社会百态下的群丑图。

清华大学社会学系“社会发展课题组”把这种现象称之为“转型陷阱”!意指改革和转型过程中造就的既得利益集团,要求把过渡时期的体制定型化,形成能促使自己利益最大化的“混合型体制”,从而使改革原动力丧失怠尽。

世界日趋艰难,李克强手上的牌也并不多,许多大好机会在“今日复今日”的过往历史中白白错失了,小平遗产已不够用,但超越小平,谁都没那见识和魅力,待落到李克强肩头时,还没等卧薪尝胆,金融危机似乎已隔窗敲门,

是退避三舍,还是破釜沉舟?李克强的选择面只能非A即B,仅有沉着是不够的,游离或绕路无非是让危机继续击鼓传花,事实上,以前就是这样得过且过玩大的,一矣被李克强接上手,中国所有城市都面临手术,省长们的腹部都隐隐发痛,刮骨疗毒已不足为惜,恐怕是一些体制性脏器都得更换,特别是意识形态方面的社资问题,从不争论到重新争论,耗费了许多宝贵的时间和精力。

所有迹象都在显明,曾经引以为豪的中国红利正在很消失,并且成为中国的拖累。

纵观2016年以来市场及汇率的起伏动荡,加快了资本外逃的步伐,目前,经济危机还没有真正开始,仅仅只是局部产业与局部地方的危机的预演。但危机酝酿阶段停留的时间越长,最后引爆时的反应就越惨烈.