Merge pull request #165 from v2board/dev

1.2.4
This commit is contained in:
tokumeikoi 2020-04-05 15:32:38 +08:00 committed by GitHub
commit 495a5f89c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 993 additions and 119 deletions

1
.gitignore vendored
View File

@ -9,6 +9,7 @@
.env.backup
.phpunit.result.cache
.idea
.lock
Homestead.json
Homestead.yaml
npm-debug.log

View File

@ -69,11 +69,16 @@ class ResetTraffic extends Command
$users = [];
foreach ($user->get() as $item) {
$expireDay = date('d', $item->expired_at);
if ($expireDay === date('d') || (string)$lastDay === '29' || (string)$lastDay === '30') {
$today = date('d');
if ($expireDay === $today) {
array_push($users, $item->id);
}
if (($today === $lastDay) && $expireDay >= $lastDay) {
array_push($users, $item->id);
}
}
$user->whereIn('id', $users)->update([
User::whereIn('id', $users)->update([
'u' => 0,
'd' => 0
]);

View File

@ -49,7 +49,7 @@ class SendRemindMail extends Command
private function remindExpire($user)
{
if (($user->expired_at - 86400) < time() && $user->expired_at > time()) {
if ($user->expired_at !== NULL && ($user->expired_at - 86400) < time() && $user->expired_at > time()) {
SendEmailJob::dispatch([
'email' => $user->email,
'subject' => '在' . config('v2board.app_name', 'V2board') . '的服务即将到期',
@ -66,7 +66,7 @@ class SendRemindMail extends Command
{
if ($this->remindTrafficIsWarnValue(($user->u + $user->d), $user->transfer_enable)) {
$sendCount = MailLog::where('created_at', '>=', strtotime(date('Y-m-1')))
->where('template_name', 'mail.sendRemindTraffic')
->where('template_name', 'like', '%remindTraffic%')
->count();
if ($sendCount > 0) return;
SendEmailJob::dispatch([

View File

@ -106,6 +106,9 @@ class ConfigController extends Controller
abort(500, '修改失败');
}
\Artisan::call('config:cache');
if (function_exists('opcache')) {
opcache_reset();
}
return response([
'data' => true
]);

View File

@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin;
use App\Http\Requests\Admin\ServerSave;
use App\Http\Requests\Admin\ServerUpdate;
use App\Services\ServerService;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\ServerGroup;
@ -41,6 +42,12 @@ class ServerController extends Controller
$params['tags'] = json_encode($params['tags']);
}
if (isset($params['dnsSettings'])) {
if (!is_object(json_decode($params['dnsSettings']))) {
abort(500, 'DNS规则配置格式不正确');
}
}
if (isset($params['ruleSettings'])) {
if (!is_object(json_decode($params['ruleSettings']))) {
abort(500, '审计规则配置格式不正确');
@ -190,4 +197,13 @@ class ServerController extends Controller
'data' => true
]);
}
public function viewConfig(Request $request)
{
$serverService = new ServerService();
$config = $serverService->getConfig($request->input('node_id'), 23333);
return response([
'data' => $config
]);
}
}

51
app/Http/Controllers/Client/ClientController.php Executable file → Normal file
View File

@ -38,6 +38,12 @@ class ClientController extends Controller
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'clash') !== false) {
die($this->clash($user, $server));
}
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Surfboard') !== false) {
die($this->surge($user, $server));
}
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Surge') !== false) {
die($this->surge($user, $server));
}
}
die($this->origin($user, $server));
}
@ -89,6 +95,51 @@ class ClientController extends Controller
return base64_encode($uri);
}
private function surge($user, $server)
{
$proxies = '';
$proxyGroup = '';
foreach ($server as $item) {
// [Proxy]
$proxies .= $item->name . ' = vmess, ' . $item->host . ', ' . $item->port . ', username=' . $user->v2ray_uuid . ', tls=' . ($item->tls ? "true" : "false");
if ($item->network == 'ws') {
$proxies .= ', ws=true';
if ($item->networkSettings) {
$wsSettings = json_decode($item->networkSettings);
if (isset($wsSettings->path)) $proxies .= ', ws-path=' . $wsSettings->path;
if (isset($wsSettings->headers->Host)) $proxies .= ', ws-headers=' . $wsSettings->headers->Host;
}
}
$proxies .= "\r\n";
// [Proxy Group]
$proxyGroup .= $item->name . ', ';
}
try {
$rules = '';
foreach (glob(base_path() . '/resources/rules/' . '*.surge.conf') as $file) {
$rules = file_get_contents("$file");
}
} catch (\Exception $e) {}
// Subscription link
$subsURL = 'http';
if (isset( $_SERVER['HTTPS'] ) && strtolower( $_SERVER['HTTPS'] ) == 'on') {
$subsURL .= 's';
}
$subsURL .= '://';
if ($_SERVER['SERVER_PORT'] != ('80' || '443')) {
$subsURL .= $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI'];
} else {
$subsURL .= $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
}
$rules = str_replace('{subs_link}',$subsURL,$rules);
$rules = str_replace('{proxies}',$proxies,$rules);
$rules = str_replace('{proxy_group}',rtrim($proxyGroup, ', '),$rules);
return $rules;
}
private function clash($user, $server)
{
$proxy = [];

View File

@ -77,15 +77,15 @@ class OrderController extends Controller
private function getSurplusValue(User $user)
{
$plan = Plan::find($user->plan_id);
switch ($plan->type) {
case 0: return $this->getSurplusValueByCycle($user, $plan);
case 1: return $this->getSurplusValueByOneTime($user, $plan);
if ($user->expired_at === NULL) {
return $this->getSurplusValueByOneTime($user, $plan);
} else {
return $this->getSurplusValueByCycle($user, $plan);
}
}
private function getSurplusValueByOneTime(User $user, Plan $plan)
{
$trafficUnitPrice = 0;
$trafficUnitPrice = $plan->onetime_price / $plan->transfer_enable;
if ($user->discount && $trafficUnitPrice) {
$trafficUnitPrice = $trafficUnitPrice - ($trafficUnitPrice * $user->discount / 100);
@ -97,22 +97,22 @@ class OrderController extends Controller
private function getSurplusValueByCycle(User $user, Plan $plan)
{
$dayPrice = 0;
$price = 0;
if ($plan->month_price) {
$dayPrice = $plan->month_price / 2592000;
$price = $plan->month_price / (31536000 / 12);
} else if ($plan->quarter_price) {
$dayPrice = $plan->quarter_price / 7862400;
$price = $plan->quarter_price / (31536000 / 4);
} else if ($plan->half_year_price) {
$dayPrice = $plan->half_year_price / 15811200;
$price = $plan->half_year_price / (31536000 / 2);
} else if ($plan->year_price) {
$dayPrice = $plan->year_price / 31536000;
$price = $plan->year_price / 31536000;
}
// exclude discount
if ($user->discount && $dayPrice) {
$dayPrice = $dayPrice - ($dayPrice * $user->discount / 100);
if ($user->discount && $price) {
$price = $price - ($price * $user->discount / 100);
}
$remainingDay = $user->expired_at - time();
$result = $remainingDay * $dayPrice;
$result = $remainingDay * $price;
return $result > 0 ? $result : 0;
}
@ -431,7 +431,7 @@ class OrderController extends Controller
private function stripeAlipay($order)
{
$currency = config('stripe_currency', 'hkd');
$currency = config('v2board.stripe_currency', 'hkd');
$exchange = Helper::exchange('CNY', strtoupper($currency));
if (!$exchange) {
abort(500, '货币转换超时,请稍后再试');
@ -463,7 +463,7 @@ class OrderController extends Controller
private function stripeWepay($order)
{
$currency = config('stripe_currency', 'hkd');
$currency = config('v2board.stripe_currency', 'hkd');
$exchange = Helper::exchange('CNY', strtoupper($currency));
if (!$exchange) {
abort(500, '货币转换超时,请稍后再试');

View File

@ -4,6 +4,7 @@ namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Http\Requests\User\UserUpdate;
use App\Http\Requests\User\UserChangePassword;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Plan;
@ -23,14 +24,8 @@ class UserController extends Controller
]);
}
public function changePassword(Request $request)
public function changePassword(UserChangePassword $request)
{
if (empty($request->input('old_password'))) {
abort(500, '旧密码不能为空');
}
if (empty($request->input('new_password'))) {
abort(500, '新密码不能为空');
}
$user = User::find($request->session()->get('id'));
if (!Helper::multiPasswordVerify(
$user->password_algo,

View File

@ -44,7 +44,7 @@ class ConfigSave extends FormRequest
'stripe_sk_live' => '',
'stripe_pk_live' => '',
'stripe_webhook_key' => '',
'stripe_currency' => 'in:hkd,usd,sgd',
'stripe_currency' => 'in:hkd,usd,sgd,eur,gbp',
// bitpayx
'bitpayx_enable' => 'in:0,1',
'bitpayx_appsecret' => '',

View File

@ -20,7 +20,8 @@ class ServerSave extends FormRequest
'network' => 'required|in:tcp,kcp,ws,http,domainsocket,quic',
'networkSettings' => '',
'ruleSettings' => '',
'tlsSettings' => ''
'tlsSettings' => '',
'dnsSettings' => ''
];
/**
* Get the validation rules that apply to the request.

View File

@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests\User;
use Illuminate\Foundation\Http\FormRequest;
class UserChangePassword extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'old_password' => 'required',
'new_password' => 'required|min:8'
];
}
public function messages()
{
return [
'old_password.required' => '旧密码不能为空',
'new_password.required' => '新密码不能为空',
'new_password.min' => '密码必须大于8位数'
];
}
}

View File

@ -29,6 +29,7 @@ class AdminRoute
$router->post('/server/drop', 'Admin\\ServerController@drop');
$router->post('/server/update', 'Admin\\ServerController@update');
$router->post('/server/copy', 'Admin\\ServerController@copy');
$router->post('/server/viewConfig', 'Admin\\ServerController@viewConfig');
// Order
$router->get ('/order/fetch', 'Admin\\OrderController@fetch');
$router->post('/order/repair', 'Admin\\OrderController@repair');

View File

@ -8,7 +8,7 @@ use App\Models\Server;
class ServerService
{
CONST SERVER_CONFIG = '{"api":{"services":["HandlerService","StatsService"],"tag":"api"},"stats":{},"inbound":{"port":443,"protocol":"vmess","settings":{"clients":[]},"sniffing":{"enabled": true,"destOverride": ["http","tls"]},"streamSettings":{"network":"tcp"},"tag":"proxy"},"inboundDetour":[{"listen":"0.0.0.0","port":23333,"protocol":"dokodemo-door","settings":{"address":"0.0.0.0"},"tag":"api"}],"log":{"loglevel":"debug","access":"access.log","error":"error.log"},"outbound":{"protocol":"freedom","settings":{}},"outboundDetour":[{"protocol":"blackhole","settings":{},"tag":"block"}],"routing":{"rules":[{"inboundTag":"api","outboundTag":"api","type":"field"}]},"policy":{"levels":{"0":{"handshake":4,"connIdle":300,"uplinkOnly":5,"downlinkOnly":30,"statsUserUplink":true,"statsUserDownlink":true}}}}';
CONST SERVER_CONFIG = '{"api":{"services":["HandlerService","StatsService"],"tag":"api"},"dns":{},"stats":{},"inbound":{"port":443,"protocol":"vmess","settings":{"clients":[]},"sniffing":{"enabled":true,"destOverride":["http","tls"]},"streamSettings":{"network":"tcp"},"tag":"proxy"},"inboundDetour":[{"listen":"0.0.0.0","port":23333,"protocol":"dokodemo-door","settings":{"address":"0.0.0.0"},"tag":"api"}],"log":{"loglevel":"debug","access":"access.log","error":"error.log"},"outbound":{"protocol":"freedom","settings":{}},"outboundDetour":[{"protocol":"blackhole","settings":{},"tag":"block"}],"routing":{"rules":[{"inboundTag":"api","outboundTag":"api","type":"field"}]},"policy":{"levels":{"0":{"handshake":4,"connIdle":300,"uplinkOnly":5,"downlinkOnly":30,"statsUserUplink":true,"statsUserDownlink":true}}}}';
public function getAvailableUsers($groupId)
{
@ -43,6 +43,24 @@ class ServerService
$json->inboundDetour[0]->port = (int)$localPort;
$json->inbound->port = (int)$server->server_port;
$json->inbound->streamSettings->network = $server->network;
$this->setDns($server, $json);
$this->setNetwork($server, $json);
$this->setRule($server, $json);
$this->setTls($server, $json);
return $json;
}
private function setDns(Server $server, object $json)
{
if ($server->dnsSettings) {
$dns = json_decode($server->dnsSettings);
$json->dns = $dns;
}
}
private function setNetwork(Server $server, object $json)
{
if ($server->networkSettings) {
switch ($server->network) {
case 'tcp':
@ -65,7 +83,10 @@ class ServerService
break;
}
}
}
private function setRule(Server $server, object $json)
{
if ($server->ruleSettings) {
$rules = json_decode($server->ruleSettings);
// domain
@ -85,7 +106,10 @@ class ServerService
array_push($json->routing->rules, $protocolObj);
}
}
}
private function setTls(Server $server, object $json)
{
if ((int)$server->tls) {
$tlsSettings = json_decode($server->tlsSettings);
$json->inbound->streamSettings->security = 'tls';
@ -102,7 +126,5 @@ class ServerService
}
$json->inbound->streamSettings->tlsSettings->certificates[0] = $tls;
}
return $json;
}
}

View File

@ -63,5 +63,11 @@
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
]
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
}
}
}

View File

@ -236,5 +236,5 @@ return [
| The only modification by laravel config
|
*/
'version' => '1.2.3'
'version' => '1.2.4'
];

View File

@ -129,12 +129,13 @@ CREATE TABLE `v2_server` (
`tls` tinyint(4) NOT NULL DEFAULT '0',
`tags` varchar(255) DEFAULT NULL,
`rate` varchar(11) NOT NULL,
`network` varchar(11) NOT NULL,
`network` text NOT NULL,
`settings` text,
`rules` text,
`networkSettings` text,
`tlsSettings` text,
`ruleSettings` text,
`dnsSettings` text,
`show` tinyint(1) NOT NULL DEFAULT '0',
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
@ -243,4 +244,4 @@ CREATE TABLE `v2_user` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 2020-03-17 14:16:01
-- 2020-03-30 09:56:24

View File

@ -200,3 +200,7 @@ ADD `tlsSettings` text COLLATE 'utf8_general_ci' NULL AFTER `tls`;
ALTER TABLE `v2_order`
ADD `balance_amount` int(11) NULL COMMENT '使用余额' AFTER `refund_amount`;
ALTER TABLE `v2_server`
CHANGE `network` `network` text COLLATE 'utf8_general_ci' NOT NULL AFTER `rate`,
ADD `dnsSettings` text COLLATE 'utf8_general_ci' NULL AFTER `ruleSettings`;

View File

@ -1,25 +0,0 @@
version: '3'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_ROOT_PASSWORD=123456
volumes:
- ./docker/mysql:/var/lib/mysql
- ./install.sql:/install.sql
phpfpm:
image: bitnami/php-fpm
volumes:
- .:/app
nginx:
image: nginx
depends_on:
- phpfpm
volumes:
- .:/app
- ./docker/nginx:/etc/nginx/conf.d
ports:
- 8964:80

View File

@ -1,2 +0,0 @@
*
!.gitignore

View File

@ -1,3 +0,0 @@
*
!.gitignore
!nginx.conf

View File

@ -1,52 +0,0 @@
server {
# 监听 HTTP 协议默认的 [80] 端口。
listen 80;
# 绑定主机名 [example.com]。
server_name localhost;
# 服务器站点根目录 [/example.com/public]。
root /app/public;
# 添加几条有关安全的响应头;与 Google+ 的配置类似,详情参见文末。
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
# 站点默认页面;可指定多个,将顺序查找。
# 例如,访问 http://example.com/ Nginx 将首先尝试「站点根目录/index.html」是否存在不存在则继续尝试「站点根目录/index.htm」以此类推...
index index.html index.htm index.php;
# 指定字符集为 UTF-8
charset utf-8;
# Laravel 默认重写规则;删除将导致 Laravel 路由失效且 Nginx 响应 404
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# 关闭 [/favicon.ico] [/robots.txt] 的访问日志。
# 并且即使它们不存在,也不写入错误日志。
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
# [404] 错误交给 [/index.php] 处理,表示由 Laravel 渲染美观的错误页面。
error_page 404 /index.php;
# URI 符合正则表达式 [\.php$] 的请求将进入此段配置
location ~ \.php$ {
# 配置 FastCGI 服务地址,可以为 IP:端口,也可以为 Unix socket。
fastcgi_pass phpfpm:9000;
# 配置 FastCGI 的主页为 index.php。
fastcgi_index index.php;
# 配置 FastCGI 参数 SCRIPT_FILENAME $realpath_root$fastcgi_script_name。
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
# 引用更多默认的 FastCGI 参数。
include fastcgi_params;
}
# 通俗地说,以上配置将所有 URI .php 结尾的请求,全部交给 PHP-FPM 处理。
# 除符合正则表达式 [/\.(?!well-known).*] 之外的 URI全部拒绝访问
# 也就是说,拒绝公开以 [.] 开头的目录,[.well-known] 除外
location ~ /\.(?!well-known).* {
deny all;
}
}

3
init.sh Normal file
View File

@ -0,0 +1,3 @@
wget https://getcomposer.org/download/1.9.0/composer.phar
php composer.phar install -vvv
php artisan v2board:install

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,817 @@
#!MANAGED-CONFIG {subs_link} interval=43200 strict=true
[General]
loglevel = notify
interface = 127.0.0.1
skip-proxy = localhost, *.local, 0.0.0.0/8, 10.0.0.0/8, 17.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.0.0.0/24, 192.0.2.0/24, 192.168.0.0/16, 192.88.99.0/24, 198.18.0.0/15, 198.51.100.0/24, 203.0.113.0/24, 224.0.0.0/4, 240.0.0.0/4, 255.255.255.255/32
ipv6 = false
dns-server = 1.2.4.8, 114.114.114.114, 223.5.5.5, 8.8.8.8, system
exclude-simple-hostnames = true
enhanced-mode-by-rule = true
[Proxy]
{proxies}
[Proxy Group]
Proxy = select, auto, fallback, {proxy_group}
auto = url-test, {proxy_group}, url=http://www.gstatic.com/generate_204, interval=600
fallback = fallback, {proxy_group}, url=http://www.gstatic.com/generate_204, interval=600
[Host]
localhost = 127.0.0.1
store.steampowered.com = 23.50.18.229
autodraw.com = 216.239.38.21
www.w3schools.com = 192.229.173.207
[Rule]
# REJECT Start
// Tracking-Protection
DOMAIN-SUFFIX,google-analytics.com,REJECT
DOMAIN-SUFFIX,adjust.com,REJECT
DOMAIN-SUFFIX,appsflyer.com,REJECT
DOMAIN-SUFFIX,umengcloud.com,REJECT
DOMAIN-SUFFIX,umeng.com,REJECT
DOMAIN-SUFFIX,cnzz.com,REJECT
DOMAIN-SUFFIX,growingio.com,REJECT
DOMAIN-SUFFIX,inmobi.com,REJECT
DOMAIN-SUFFIX,inmobi.cn,REJECT
DOMAIN-SUFFIX,lnk0.com,REJECT
DOMAIN-SUFFIX,serving-sys.com,REJECT
DOMAIN,cdn.segment.com,REJECT
DOMAIN,data.flurry.com,REJECT
DOMAIN,static.jpush.cn,REJECT
DOMAIN,js.users.51.la,REJECT
// Advertisement-Protection
DOMAIN-SUFFIX,googleadservices.com,REJECT
DOMAIN-SUFFIX,googlesyndication.com,REJECT
DOMAIN-SUFFIX,googleadsserving.cn,REJECT
DOMAIN-SUFFIX,admaster.com.cn,REJECT
DOMAIN-SUFFIX,adinall.com,REJECT
DOMAIN-SUFFIX,aerserv.com,REJECT
DOMAIN-SUFFIX,adview.cn,REJECT
DOMAIN-SUFFIX,cocounion.com,REJECT
DOMAIN-SUFFIX,ctrmi.com,REJECT
DOMAIN-SUFFIX,doubleclick.net,REJECT
DOMAIN-SUFFIX,irs01.com,REJECT
DOMAIN-SUFFIX,kejet.net,REJECT
DOMAIN-SUFFIX,miaozhen.com,REJECT
DOMAIN-SUFFIX,moatads.com,REJECT
DOMAIN-SUFFIX,mopub.com,REJECT
DOMAIN-SUFFIX,qchannel01.cn,REJECT
DOMAIN-SUFFIX,tanx.com,REJECT
DOMAIN-SUFFIX,tuanxue360.net,REJECT
DOMAIN,ad.12306.cn,REJECT
DOMAIN,adxserver.ad.cmvideo.cn,REJECT
DOMAIN,ads-twitter.com,REJECT
DOMAIN,adshow.58.com,REJECT
DOMAIN,ads.simplepath.com,REJECT
DOMAIN,ads.nexage.com,REJECT
DOMAIN,adplatform.vrtcal.com,REJECT
DOMAIN,ad.jiemian.com,REJECT
DOMAIN,ggs.myzaker.com,REJECT
DOMAIN,adshows.21cn.com,REJECT
DOMAIN,ad-cn.jovcloud.com,REJECT
DOMAIN,sugar.zhihu.com,REJECT
// Baidu
DOMAIN-SUFFIX,baidustatic.com,REJECT
DOMAIN,hm.baidu.com,REJECT
DOMAIN,hmma.baidu.com,REJECT
DOMAIN,mobads.baidu.com,REJECT
DOMAIN,mobads-logs.baidu.com,REJECT
DOMAIN,wn.pos.baidu.com,REJECT
// -Baidu_high-acc-ip
DOMAIN,ps.map.baidu.com,REJECT
DOMAIN,sv.map.baidu.com,REJECT
DOMAIN,offnavi.map.baidu.com,REJECT
DOMAIN,newvector.map.baidu.com,REJECT
DOMAIN,ulog.imap.baidu.com,REJECT
DOMAIN,newloc.map.n.shifen.com,REJECT
// Ali
DOMAIN,adash-c.ut.taobao.com,REJECT
DOMAIN,adashxgc.ut.taobao.com,REJECT
DOMAIN,adashbc.ut.taobao.com,REJECT
DOMAIN,adash.man.aliyuncs.com,REJECT
DOMAIN,apoll.m.taobao.com,REJECT
DOMAIN,amdc.m.taobao.com,REJECT
// Tencent
DOMAIN,pingma.qq.com,REJECT
DOMAIN,mi.gdt.qq.com,REJECT
// -TencentVideo
DOMAIN-SUFFIX,l.qq.com,REJECT
DOMAIN,mtrace.qq.com,REJECT
// 163
DOMAIN-SUFFIX,analytics.126.net,REJECT
DOMAIN,iadmat.nosdn.127.net,REJECT
DOMAIN,static.ws.126.net,REJECT
// AutoNavi
DOMAIN,nbsdk-baichuan.alicdn.com,REJECT
// iQiyi
DOMAIN-SUFFIX,cupid.iqiyi.com,REJECT
DOMAIN,ifacelog.iqiyi.com,REJECT
DOMAIN,mbdlog.iqiyi.com,REJECT
DOMAIN,msg.71.am,REJECT
IP-CIDR,101.227.97.240/32,REJECT,no-resolve
IP-CIDR,101.227.200.28/32,REJECT,no-resolve
IP-CIDR,124.192.153.42/32,REJECT,no-resolve
// Youku
DOMAIN-SUFFIX,atm.youku.com,REJECT
DOMAIN,ad.mobile.youku.com,REJECT
DOMAIN,iyes.youku.com,REJECT
// Sohu
DOMAIN-SUFFIX,ads.sohu.com,REJECT
// -SohuVideo
DOMAIN-SUFFIX,aty.sohu.com,REJECT
DOMAIN,imp.optaim.com,REJECT
DOMAIN,v2.reachmax.cn,REJECT
DOMAIN,data.vod.itc.cn,REJECT
// Hunan_TV
DOMAIN-SUFFIX,da.mgtv.com,REJECT
DOMAIN-SUFFIX,da.hunantv.com,REJECT
DOMAIN-SUFFIX,log.hunantv.com,REJECT
DOMAIN,log.v2.hunantv.com,REJECT
DOMAIN,v2.log.hunantv.com,REJECT
// PPTV
DOMAIN,asimgs.pplive.cn,REJECT
// Le
DOMAIN-SUFFIX,webp2p.letv.com,REJECT
DOMAIN,ark.letv.com,REJECT
DOMAIN,g3.letv.com,REJECT
DOMAIN,n.mark.letv.com,REJECT
// XiMaLaYa
DOMAIN,ad.ximalaya.com,REJECT
DOMAIN,adse.ximalaya.com,REJECT
// Moji
DOMAIN,ad.api.moji.com,REJECT
DOMAIN,v1.log.moji.com,REJECT
// Kugou and Kuwo
DOMAIN,adserviceretry.kugou.com,REJECT
DOMAIN,ads.service.kugou.com,REJECT
DOMAIN,adsfile.bssdlbig.kugou.com,REJECT
DOMAIN,log.stat.kugou.com,REJECT
DOMAIN,log.web.kugou.com,REJECT
DOMAIN,kgmobilestat.kugou.com,REJECT
DOMAIN,kgmobilestatbak.kugou.com,REJECT
DOMAIN,mobilelog.kugou.com,REJECT
DOMAIN,mobilead.kuwo.cn,REJECT
DOMAIN,rich.kuwo.cn,REJECT
// Internet Service Provider Hijack
DOMAIN-SUFFIX,cszlks.com,REJECT
DOMAIN-SUFFIX,freedrive.cn,REJECT
DOMAIN-SUFFIX,fkku194.com,REJECT
DOMAIN-SUFFIX,fjlqqc.com,REJECT
DOMAIN-SUFFIX,kumihua.com,REJECT
DOMAIN-SUFFIX,mlnbike.com,REJECT
DOMAIN-SUFFIX,quanliyouxi.cn,REJECT
DOMAIN-SUFFIX,feih.com.cn,REJECT
DOMAIN-SUFFIX,51chumoping.com,REJECT
IP-CIDR,47.89.59.182/32,REJECT,no-resolve
// -ChinaNet
IP-CIDR,61.160.200.223/32,REJECT,no-resolve
IP-CIDR,61.160.200.242/32,REJECT,no-resolve
IP-CIDR,61.160.200.252/32,REJECT,no-resolve
IP-CIDR,111.175.220.164/32,REJECT,no-resolve
IP-CIDR,124.232.160.178/32,REJECT,no-resolve
IP-CIDR,175.6.223.15/32,REJECT,no-resolve
IP-CIDR,183.59.53.237/32,REJECT,no-resolve
IP-CIDR,218.93.127.37/32,REJECT,no-resolve
IP-CIDR,221.231.6.79/32,REJECT,no-resolve
IP-CIDR,222.186.61.91/32,REJECT,no-resolve
IP-CIDR,222.186.61.95/32,REJECT,no-resolve
IP-CIDR,222.186.61.96/32,REJECT,no-resolve
// -ChinaUnicom
// -Dr.Peng
IP-CIDR,10.72.25.13/32,REJECT,no-resolve
IP-CIDR,115.182.16.79/32,REJECT,no-resolve
IP-CIDR,118.144.88.126/32,REJECT,no-resolve
IP-CIDR,118.144.88.215/32,REJECT,no-resolve
IP-CIDR,124.14.21.147/32,REJECT,no-resolve
IP-CIDR,124.14.21.151/32,REJECT,no-resolve
IP-CIDR,180.166.52.24/32,REJECT,no-resolve
IP-CIDR,220.115.251.25/32,REJECT,no-resolve
IP-CIDR,222.73.156.235/32,REJECT,no-resolve
// Blacklist
DOMAIN-SUFFIX,makeding.com,REJECT
DOMAIN-SUFFIX,mairuan.com,REJECT
# REJECT End
# Proxy Start
// Apple
DOMAIN-SUFFIX,appsto.re,Proxy
DOMAIN-SUFFIX,me.com,Proxy
DOMAIN,s.mzstatic.com,Proxy
DOMAIN,gspe1-ssl.ls.apple.com,Proxy,force-remote-dns
DOMAIN,news-events.apple.com,Proxy,force-remote-dns
DOMAIN,news-client.apple.com,Proxy,force-remote-dns
DOMAIN,lookup-api.apple.com,Proxy
DOMAIN,api-glb-sea.smoot.apple.com,Proxy
DOMAIN,books.itunes.apple.com,Proxy
DOMAIN,hls.itunes.apple.com,Proxy
// Google
DOMAIN-SUFFIX,1e100.net,Proxy,force-remote-dns
DOMAIN-SUFFIX,abc.xyz,Proxy,force-remote-dns
DOMAIN-SUFFIX,admob.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,agoogleaday.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,ampproject.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,ampproject.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,ampproject.net,Proxy,force-remote-dns
DOMAIN-SUFFIX,android.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,androidify.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,appspot.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,blogger.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,blogblog.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,certificate-transparency.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,chrome.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,chromecast.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,chromeexperiments.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,chromercise.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,chromestatus.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,chromium.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,com.google,Proxy,force-remote-dns
DOMAIN-SUFFIX,data-vocabulary.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,deja.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,digisfera.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,domains.google,Proxy,force-remote-dns
DOMAIN-SUFFIX,feedburner.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,g.co,Proxy,force-remote-dns
DOMAIN-SUFFIX,get.how,Proxy,force-remote-dns
DOMAIN-SUFFIX,getmdl.io,Proxy,force-remote-dns
DOMAIN-SUFFIX,ggpht.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,gmail.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,gmodules.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,goo.gl,Proxy,force-remote-dns
DOMAIN-SUFFIX,google.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googleapis.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googleartproject.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googleblog.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlecode.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlecommerce.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googledomains.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googleearth.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googledrive.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlegroups.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlehosted.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googleideas.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlelabs.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlemail.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googleplay.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googleplus.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlesource.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlesyndication.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googletagmanager.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googletagservices.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googleusercontent.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlevideo.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,googlezip.net,Proxy,force-remote-dns
DOMAIN-SUFFIX,gstatic.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,gstatic.cn,Proxy,force-remote-dns
DOMAIN-SUFFIX,gvt0.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,gvt1.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,blogspot.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,html5rocks.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,iam.soy,Proxy,force-remote-dns
DOMAIN-SUFFIX,igoogle.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,like.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,nic.google,Proxy,force-remote-dns
DOMAIN-SUFFIX,panoramio.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,picasaweb.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,polymer-project.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,thinkwithgoogle.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,tiltbrush.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,recaptcha.net,Proxy,force-remote-dns
DOMAIN-SUFFIX,registry.google,Proxy,force-remote-dns
DOMAIN-SUFFIX,tensorflow.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,webmproject.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,whatbrowser.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,withgoogle.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,youtu.be,Proxy,force-remote-dns
DOMAIN-SUFFIX,youtube.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,youtube-nocookie.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,ytimg.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,zynamics.com,Proxy,force-remote-dns
// A
DOMAIN-SUFFIX,amazon.com,Proxy
DOMAIN-SUFFIX,amazonaws.com,Proxy
DOMAIN-SUFFIX,archive.org,Proxy
DOMAIN-SUFFIX,archive.is,Proxy
DOMAIN-SUFFIX,archive.li,Proxy
DOMAIN-SUFFIX,archives.gov,Proxy
DOMAIN-SUFFIX,appdownloader.net,Proxy
DOMAIN-SUFFIX,apk-dl.com,Proxy
DOMAIN-SUFFIX,apkfind.com,Proxy
DOMAIN-SUFFIX,apkpure.com,Proxy
DOMAIN-SUFFIX,apigee.com,Proxy
DOMAIN-SUFFIX,aol.com,Proxy
DOMAIN-SUFFIX,aolcdn.com,Proxy
DOMAIN-SUFFIX,anthonycalzadilla.com,Proxy
DOMAIN-SUFFIX,android-x86.org,Proxy
DOMAIN-SUFFIX,ancsconf.org,Proxy
DOMAIN-SUFFIX,allconnected.co,Proxy
DOMAIN-SUFFIX,apkleecher.com,Proxy
DOMAIN-SUFFIX,appsonplaystore.com,Proxy
DOMAIN-SUFFIX,awsstatic.com,Proxy
DOMAIN-SUFFIX,async.be,Proxy
DOMAIN-SUFFIX,appshopper.com,Proxy
DOMAIN-SUFFIX,armorgames.com,Proxy
DOMAIN-SUFFIX,avanquest.com,Proxy
DOMAIN-SUFFIX,adaymag.com,Proxy
DOMAIN-SUFFIX,app-measurement.com,Proxy
DOMAIN-SUFFIX,akamaiedge.net,Proxy
// B
DOMAIN-SUFFIX,bbc.com,Proxy
DOMAIN-SUFFIX,books.com.tw,Proxy
DOMAIN-SUFFIX,bloomberg.com,Proxy
DOMAIN-SUFFIX,bloglovin.com,Proxy
DOMAIN-SUFFIX,bitshare.com,Proxy
DOMAIN-SUFFIX,bitcointalk.org,Proxy
DOMAIN-SUFFIX,bit.do,Proxy
DOMAIN-SUFFIX,bit.ly,Proxy
DOMAIN-SUFFIX,bigsound.org,Proxy
DOMAIN-SUFFIX,bbtoystore.com,Proxy
DOMAIN-SUFFIX,boxun.com,Proxy
DOMAIN-SUFFIX,bandwagonhost.com,Proxy
DOMAIN-SUFFIX,bitvise.com,Proxy
DOMAIN-SUFFIX,blessing.studio,Proxy
DOMAIN-SUFFIX,btso.pw,Proxy
DOMAIN-SUFFIX,binance.com,Proxy
DOMAIN-SUFFIX,binance.cloud,Proxy
DOMAIN-SUFFIX,bitstamp.net,Proxy
DOMAIN-SUFFIX,beechat.io,Proxy
DOMAIN-SUFFIX,bing.com,Proxy
DOMAIN-SUFFIX,businessweek.com,Proxy
DOMAIN-SUFFIX,bitfinex.com,Proxy
DOMAIN-SUFFIX,bibox.com,Proxy
DOMAIN-SUFFIX,bitmex.com,Proxy
DOMAIN-SUFFIX,box.com,Proxy
// C
DOMAIN-SUFFIX,cnn.com,Proxy
DOMAIN-SUFFIX,cdninstagram.com,Proxy
DOMAIN-SUFFIX,cbc.ca,Proxy
DOMAIN-SUFFIX,census.gov,Proxy
DOMAIN-SUFFIX,cloudfront.net,Proxy
DOMAIN-SUFFIX,cn-proxy.com,Proxy
DOMAIN-SUFFIX,cccat.cc,Proxy
DOMAIN-SUFFIX,codepen.io,Proxy
DOMAIN-SUFFIX,cbsistatic.com,Proxy
DOMAIN-SUFFIX,coinegg.com,Proxy
DOMAIN-SUFFIX,css.network,Proxy
DOMAIN-SUFFIX,cradio.live,Proxy
// D
DOMAIN-SUFFIX,dw.com,Proxy
DOMAIN-SUFFIX,duckduckgo.com,Proxy
DOMAIN-SUFFIX,dropbox.com,Proxy
DOMAIN-SUFFIX,dropboxstatic.com,Proxy
DOMAIN-SUFFIX,dropboxusercontent.com,Proxy
DOMAIN-SUFFIX,disconnect.me,Proxy
DOMAIN-SUFFIX,dcmilitary.com,Proxy
DOMAIN-SUFFIX,digitaltrends.com,Proxy
DOMAIN-SUFFIX,daolan.net,Proxy
DOMAIN-SUFFIX,dol.gov,Proxy
DOMAIN-SUFFIX,disqus.com,Proxy
DOMAIN-SUFFIX,discuss.com.hk,Proxy
DOMAIN-SUFFIX,discord.gg,Proxy
DOMAIN-SUFFIX,discordapp.com,Proxy
DOMAIN-SUFFIX,discordapp.net,Proxy
DOMAIN-SUFFIX,doub.io,Proxy
DOMAIN-SUFFIX,dnvod.tv,Proxy
DOMAIN-SUFFIX,dailymotion.com,Proxy
DOMAIN-SUFFIX,dwnews.com,Proxy
DOMAIN-SUFFIX,dwnews.net,Proxy
DOMAIN-SUFFIX,devmate.com,Proxy
// E
DOMAIN-SUFFIX,extmatrix.com,Proxy
DOMAIN-SUFFIX,easybib.com,Proxy
DOMAIN-SUFFIX,easybib.com,Proxy
DOMAIN-SUFFIX,economist.com,Proxy
DOMAIN-SUFFIX,edgecastcdn.net,Proxy
DOMAIN-SUFFIX,everhelper.me,Proxy
DOMAIN-SUFFIX,envato-static.com,Proxy
// F
DOMAIN-SUFFIX,facebook.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,facebook.net,Proxy,force-remote-dns
DOMAIN-SUFFIX,fbcdn.net,Proxy,force-remote-dns
DOMAIN-SUFFIX,fb.com,Proxy
DOMAIN-SUFFIX,fb.me,Proxy
DOMAIN-SUFFIX,freeopenProxy.com,Proxy
DOMAIN-SUFFIX,fzlm.net,Proxy
DOMAIN-SUFFIX,flitto.com,Proxy
DOMAIN-SUFFIX,flipkart.com,Proxy
DOMAIN-SUFFIX,flickr.com,Proxy
DOMAIN-SUFFIX,staticflickr.com,Proxy
DOMAIN-SUFFIX,fdlstatic.com,Proxy
DOMAIN-SUFFIX,fastly.net,Proxy
DOMAIN-SUFFIX,flumeapp.com,Proxy
DOMAIN-SUFFIX,free-proxy.cz,Proxy
DOMAIN-SUFFIX,fc2.com,Proxy
DOMAIN-SUFFIX,firebaseio.com,Proxy
DOMAIN-SUFFIX,flightradar24.com,Proxy
// G
DOMAIN-SUFFIX,getcloudapp.com,Proxy
DOMAIN-SUFFIX,gunsamerica.com,Proxy
DOMAIN-SUFFIX,gravatar.com,Proxy
DOMAIN-SUFFIX,getlantern.org,Proxy
DOMAIN-SUFFIX,getfoxyProxy.org,Proxy
DOMAIN-SUFFIX,go.com,Proxy
DOMAIN-SUFFIX,go.jp,Proxy
DOMAIN-SUFFIX,gfw.press,Proxy
DOMAIN-SUFFIX,getdropbox.com,Proxy
DOMAIN-SUFFIX,github.io,Proxy
DOMAIN-SUFFIX,gitbooks.io,Proxy
DOMAIN-SUFFIX,greatfire.org,Proxy
DOMAIN-SUFFIX,getsync.com,Proxy
DOMAIN-SUFFIX,gumroad.com,Proxy
DOMAIN-SUFFIX,gdax.com,Proxy
DOMAIN-SUFFIX,gate.io,Proxy
DOMAIN-SUFFIX,gracecode.com,Proxy
DOMAIN,gist.github.com,Proxy
// H
DOMAIN-SUFFIX,howtoforge.com,Proxy
DOMAIN-SUFFIX,hootsuite.com,Proxy
DOMAIN-SUFFIX,homedepot.com,Proxy
DOMAIN-SUFFIX,hulu.com,Proxy
DOMAIN-SUFFIX,hk01.com,Proxy
DOMAIN-SUFFIX,huobi.com,Proxy
DOMAIN-SUFFIX,huobi.pro,Proxy
DOMAIN-SUFFIX,huobipro.com,Proxy
DOMAIN-SUFFIX,hitbtc.com,Proxy
// I
DOMAIN-SUFFIX,instagram.com,Proxy
DOMAIN-SUFFIX,icoco.com,Proxy
DOMAIN-SUFFIX,imgur.com,Proxy
DOMAIN-SUFFIX,instructables.com,Proxy
DOMAIN-SUFFIX,ift.tt,Proxy
DOMAIN-SUFFIX,is.gd,Proxy
DOMAIN-SUFFIX,imgbus.com,Proxy
DOMAIN-SUFFIX,i-scmp.com,Proxy
DOMAIN-SUFFIX,iask.ca,Proxy
DOMAIN-SUFFIX,issuu.com,Proxy
DOMAIN-SUFFIX,ixquick.com,Proxy
DOMAIN-SUFFIX,init.shop,Proxy
DOMAIN-SUFFIX,initiummall.com,Proxy
DOMAIN-SUFFIX,ipfs.io,Proxy
// J
DOMAIN-SUFFIX,jwpcdn.com,Proxy
DOMAIN-SUFFIX,jwpltx.com,Proxy
// K
DOMAIN-SUFFIX,kenengba.com,Proxy
DOMAIN-SUFFIX,keepvid.com,Proxy
DOMAIN-SUFFIX,kobo.com,Proxy
DOMAIN-SUFFIX,kucoin.com,Proxy
// L
DOMAIN-SUFFIX,line.me,Proxy
DOMAIN-SUFFIX,line-apps.com,Proxy
DOMAIN-SUFFIX,line-cdn.net,Proxy
DOMAIN-SUFFIX,line-scdn.net,Proxy
DOMAIN-SUFFIX,logmein.com,Proxy
DOMAIN-SUFFIX,lvv2.com,Proxy
DOMAIN-SUFFIX,live.com,Proxy
DOMAIN-SUFFIX,linkcoin.pro,Proxy
// M
DOMAIN-SUFFIX,mp3buscador.com,Proxy
DOMAIN-SUFFIX,medium.com,Proxy
DOMAIN-SUFFIX,mlssoccer.com,Proxy
DOMAIN-SUFFIX,marketwatch.com,Proxy
DOMAIN-SUFFIX,nih.gov,Proxy
DOMAIN-SUFFIX,mycnnews.com,Proxy
DOMAIN-SUFFIX,maplestage.com,Proxy
DOMAIN-SUFFIX,mozilla.net,Proxy
DOMAIN-SUFFIX,mobypicture.com,Proxy
DOMAIN-SUFFIX,msn.com,Proxy
// N
DOMAIN-SUFFIX,nytimes.com,Proxy
DOMAIN-SUFFIX,nytimg.com,Proxy
DOMAIN-SUFFIX,nyti.ms,Proxy
DOMAIN-SUFFIX,nytstyle.com,Proxy
DOMAIN-SUFFIX,nyt.com,Proxy
DOMAIN-SUFFIX,nrk.no,Proxy
DOMAIN-SUFFIX,newipnow.com,Proxy
DOMAIN-SUFFIX,ndr.de,Proxy
DOMAIN-SUFFIX,nasa.gov,Proxy
DOMAIN-SUFFIX,netflix.com,Proxy
DOMAIN-SUFFIX,netflix.net,Proxy
DOMAIN-SUFFIX,nflxext.com,Proxy
DOMAIN-SUFFIX,nflximg.com,Proxy
DOMAIN-SUFFIX,nflximg.net,Proxy
DOMAIN-SUFFIX,nflxvideo.net,Proxy
DOMAIN-SUFFIX,nflxso.net,Proxy
DOMAIN-SUFFIX,nintendo.com,Proxy
DOMAIN-SUFFIX,nssurge.com,Proxy
DOMAIN-SUFFIX,neverware.com,Proxy
DOMAIN-SUFFIX,ngrok.cc,Proxy
DOMAIN-SUFFIX,naver.jp,Proxy
// O
DOMAIN-SUFFIX,onlineyoutube.com,Proxy
DOMAIN-SUFFIX,osha.gov,Proxy
DOMAIN-SUFFIX,optimizely.com,Proxy
DOMAIN-SUFFIX,owncloud.org,Proxy
DOMAIN-SUFFIX,ow.ly,Proxy
DOMAIN-SUFFIX,oup.com,Proxy
DOMAIN-SUFFIX,ok.ru,Proxy
DOMAIN-SUFFIX,oloadcdn.net,Proxy
DOMAIN-SUFFIX,okex.com,Proxy
// P
DOMAIN-SUFFIX,psiphon3.com,Proxy
DOMAIN-SUFFIX,puffinbrowser.com,Proxy
DOMAIN-SUFFIX,pubu.com.tw,Proxy
DOMAIN-SUFFIX,proxfree.com,Proxy
DOMAIN-SUFFIX,popo.tw,Proxy
DOMAIN-SUFFIX,pokemon.com,Proxy
DOMAIN-SUFFIX,pastebin.com,Proxy
DOMAIN-SUFFIX,pandora.com,Proxy
DOMAIN-SUFFIX,pinterest.com,Proxy
DOMAIN-SUFFIX,pinimg.com,Proxy
DOMAIN-SUFFIX,pandora.com,Proxy
DOMAIN-SUFFIX,potatso.com,Proxy
DOMAIN-SUFFIX,pscp.tv,Proxy
DOMAIN-SUFFIX,putty.org,Proxy
DOMAIN-SUFFIX,pixiv.net,Proxy
DOMAIN-SUFFIX,pixiv.org,Proxy
DOMAIN-SUFFIX,pixnet.net,Proxy
DOMAIN-SUFFIX,pentoy.hk,Proxy
DOMAIN-SUFFIX,psu.edu,Proxy
DOMAIN-SUFFIX,poloniex.com,Proxy
// R
DOMAIN-SUFFIX,rsf.org,Proxy
DOMAIN-SUFFIX,rileyguide.com,Proxy
DOMAIN-SUFFIX,rfi.fr,Proxy
DOMAIN-SUFFIX,reuters.com,Proxy
DOMAIN-SUFFIX,readmoo.com,Proxy
DOMAIN-SUFFIX,readingtimes.com.tw,Proxy
DOMAIN-SUFFIX,resilio.com,Proxy
DOMAIN-SUFFIX,rawgit.com,Proxy
DOMAIN-SUFFIX,rackcdn.com,Proxy
DOMAIN-SUFFIX,rthk.hk,Proxy
// S
DOMAIN-SUFFIX,scribd.com,Proxy
DOMAIN-SUFFIX,sydneytoday.com,Proxy
DOMAIN-SUFFIX,surrenderat20.net,Proxy
DOMAIN-SUFFIX,surfeasy.com.au,Proxy
DOMAIN-SUFFIX,sugarsync.com,Proxy
DOMAIN-SUFFIX,stumbleupon.com,Proxy
DOMAIN-SUFFIX,storify.com,Proxy
DOMAIN-SUFFIX,startpage.com,Proxy
DOMAIN-SUFFIX,starp2p.com,Proxy
DOMAIN-SUFFIX,state.gov,Proxy
DOMAIN-SUFFIX,spike.com,Proxy
DOMAIN-SUFFIX,sowers.org.hk,Proxy
DOMAIN-SUFFIX,soundcloud.com,Proxy
DOMAIN-SUFFIX,sockslist.net,Proxy
DOMAIN-SUFFIX,snapchat.com,Proxy
DOMAIN-SUFFIX,smh.com.au,Proxy
DOMAIN-SUFFIX,slideshare.net,Proxy
DOMAIN-SUFFIX,skype.com,Proxy
DOMAIN-SUFFIX,sketchappsources.com,Proxy
DOMAIN-SUFFIX,sidelinesnews.com,Proxy
DOMAIN-SUFFIX,shadowsocks.org,Proxy
DOMAIN-SUFFIX,search.com,Proxy
DOMAIN-SUFFIX,sciencemag.org,Proxy
DOMAIN-SUFFIX,ssa.gov,Proxy
DOMAIN-SUFFIX,shutterstock.com,Proxy
DOMAIN-SUFFIX,sciencedaily.com,Proxy
DOMAIN-SUFFIX,signalsitemap.com,Proxy
DOMAIN-SUFFIX,surge.run,Proxy
DOMAIN-SUFFIX,swtch.com,Proxy
DOMAIN-SUFFIX,scmp.com,Proxy
DOMAIN-SUFFIX,stel.com,Proxy
DOMAIN-SUFFIX,steamcommunity.com,Proxy
DOMAIN-SUFFIX,slack.com,Proxy
DOMAIN-SUFFIX,slack-edge.com,Proxy
DOMAIN-SUFFIX,slack-msgs.com,Proxy
DOMAIN-SUFFIX,sndcdn.com,Proxy
// T
DOMAIN-SUFFIX,twtkr.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,twimg.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,twitthat.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,twitterrific.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,twittercounter.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,twittergadget.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,twitterfeed.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,twitter4j.org,Proxy,force-remote-dns
DOMAIN-SUFFIX,twttr.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,twitter.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,t.co,Proxy,force-remote-dns
DOMAIN-SUFFIX,tv.com,Proxy
DOMAIN-SUFFIX,tumblr.com,Proxy
DOMAIN-SUFFIX,tmblr.co,Proxy
DOMAIN-SUFFIX,txmblr.com,Proxy
DOMAIN-SUFFIX,turbobit.net,Proxy
DOMAIN-SUFFIX,tt-rss.org,Proxy
DOMAIN-SUFFIX,trulyergonomic.com,Proxy
DOMAIN-SUFFIX,trendsmap.com,Proxy
DOMAIN-SUFFIX,transparency.org,Proxy
DOMAIN-SUFFIX,traffichaus.com,Proxy
DOMAIN-SUFFIX,torrentz.eu,Proxy
DOMAIN-SUFFIX,torrentproject.se,Proxy
DOMAIN-SUFFIX,torrentprivacy.com,Proxy
DOMAIN-SUFFIX,torproject.org,Proxy
DOMAIN-SUFFIX,torcn.com,Proxy
DOMAIN-SUFFIX,tokyocn.com,Proxy
DOMAIN-SUFFIX,togetter.com,Proxy
DOMAIN-SUFFIX,tinychat.com,Proxy
DOMAIN-SUFFIX,tiny.cc,Proxy
DOMAIN-SUFFIX,time.com,Proxy
DOMAIN-SUFFIX,thewgo.org,Proxy
DOMAIN-SUFFIX,thepiratebay.org,Proxy
DOMAIN-SUFFIX,thebobs.com,Proxy
DOMAIN-SUFFIX,telegram.org,Proxy
DOMAIN-SUFFIX,telegram.me,Proxy
DOMAIN-SUFFIX,telegram.show,Proxy
DOMAIN-SUFFIX,technorati.com,Proxy
DOMAIN-SUFFIX,talkboxapp.com,Proxy
DOMAIN-SUFFIX,talkonly.net,Proxy
DOMAIN-SUFFIX,talk853.com,Proxy
DOMAIN-SUFFIX,tabtter.jp,Proxy
DOMAIN-SUFFIX,tablesgenerator.com,Proxy
DOMAIN-SUFFIX,tomshardware.com,Proxy
DOMAIN-SUFFIX,theverge.com,Proxy
DOMAIN-SUFFIX,twishort.com,Proxy
DOMAIN-SUFFIX,tdesktop.com,Proxy
DOMAIN-SUFFIX,t.me,Proxy
DOMAIN-SUFFIX,tv-static.net,Proxy
DOMAIN-SUFFIX,theinitium.com,Proxy
DOMAIN-SUFFIX,trellocdn.com,Proxy
DOMAIN-SUFFIX,tvcdn.de,Proxy
DOMAIN-SUFFIX,textnow.me,Proxy
// U
DOMAIN-SUFFIX,ustream.tv,Proxy
DOMAIN-SUFFIX,uspto.gov,Proxy
DOMAIN-SUFFIX,usma.edu,Proxy
DOMAIN-SUFFIX,us.to,Proxy
DOMAIN-SUFFIX,urlparser.com,Proxy
DOMAIN-SUFFIX,uProxy.org,Proxy
DOMAIN-SUFFIX,uploaded.net,Proxy
DOMAIN-SUFFIX,untraceable.us,Proxy
DOMAIN-SUFFIX,unpo.org,Proxy
DOMAIN-SUFFIX,unblocksites.co,Proxy
DOMAIN-SUFFIX,unblockdmm.com,Proxy
DOMAIN-SUFFIX,uhdwallpapers.org,Proxy
DOMAIN-SUFFIX,ugo.com,Proxy
DOMAIN-SUFFIX,udn.com,Proxy
DOMAIN-SUFFIX,uchicago.edu,Proxy
DOMAIN-SUFFIX,usgs.gov,Proxy
DOMAIN-SUFFIX,umblr.com,Proxy
DOMAIN-SUFFIX,unpkg.com,Proxy
// V
DOMAIN-SUFFIX,vpngate.net,Proxy
DOMAIN-SUFFIX,vocativ.com,Proxy
DOMAIN-SUFFIX,visibletweets.com,Proxy
DOMAIN-SUFFIX,vimperator.org,Proxy
DOMAIN-SUFFIX,vimeo.com,Proxy
DOMAIN-SUFFIX,vimeocdn.com,Proxy
DOMAIN-SUFFIX,vidinfo.org,Proxy
DOMAIN-SUFFIX,videomega.tv,Proxy
DOMAIN-SUFFIX,vid.me,Proxy
DOMAIN-SUFFIX,viber.com,Proxy
DOMAIN-SUFFIX,veoh.com,Proxy
DOMAIN-SUFFIX,venchina.com,Proxy
DOMAIN-SUFFIX,vansky.com,Proxy
DOMAIN-SUFFIX,vanpeople.com,Proxy
DOMAIN-SUFFIX,van001.com,Proxy
DOMAIN-SUFFIX,v2ray.com,Proxy
DOMAIN-SUFFIX,verizonwireless.com,Proxy
DOMAIN-SUFFIX,vzw.com,Proxy
DOMAIN-SUFFIX,voachinese.com,Proxy
DOMAIN-SUFFIX,vnet.link,Proxy
DOMAIN-SUFFIX,voanews.com,Proxy
DOMAIN-SUFFIX,vanilla-js.com,Proxy
DOMAIN-SUFFIX,vjmedia.com.hk,Proxy
// W
DOMAIN-SUFFIX,wwitv.com,Proxy
DOMAIN-SUFFIX,wsj.com,Proxy
DOMAIN-SUFFIX,wsj.net,Proxy
DOMAIN-SUFFIX,wordpress.com,Proxy
DOMAIN-SUFFIX,wp.com,Proxy
DOMAIN-SUFFIX,wow.com,Proxy
DOMAIN-SUFFIX,worldcat.org,Proxy
DOMAIN-SUFFIX,wn.com,Proxy
DOMAIN-SUFFIX,wikipedia.org,Proxy
DOMAIN-SUFFIX,wikipedia.com,Proxy
DOMAIN-SUFFIX,wikimedia.org,Proxy
DOMAIN-SUFFIX,wikileaks.info,Proxy
DOMAIN-SUFFIX,wikileaks-forum.com,Proxy
DOMAIN-SUFFIX,wikileaks.org,Proxy
DOMAIN-SUFFIX,westpoint.edu,Proxy
DOMAIN-SUFFIX,westca.com,Proxy
DOMAIN-SUFFIX,wenxuecity.com,Proxy
DOMAIN-SUFFIX,webwarper.net,Proxy
DOMAIN-SUFFIX,websnapr.com,Proxy
DOMAIN-SUFFIX,weblagu.com,Proxy
DOMAIN-SUFFIX,webfreer.com,Proxy
DOMAIN-SUFFIX,web2project.net,Proxy
DOMAIN-SUFFIX,wattpad.com,Proxy
DOMAIN-SUFFIX,winudf.com,Proxy
DOMAIN-SUFFIX,web.de,Proxy
DOMAIN-SUFFIX,wanqu.co,Proxy
DOMAIN-SUFFIX,whoer.net,Proxy
DOMAIN-SUFFIX,whatsapp.net,Proxy,force-remote-dns
DOMAIN-SUFFIX,whatsapp.com,Proxy,force-remote-dns
DOMAIN-SUFFIX,webpagefx.com,Proxy
// X
DOMAIN-SUFFIX,xuite.net,Proxy
DOMAIN-SUFFIX,xanga.com,Proxy
// Y
DOMAIN-SUFFIX,yahoo.com,Proxy
DOMAIN-SUFFIX,yimg.com,Proxy
DOMAIN-SUFFIX,yourlisten.com,Proxy
DOMAIN-SUFFIX,youmaker.com,Proxy
DOMAIN-SUFFIX,yorkbbs.ca,Proxy
DOMAIN-SUFFIX,yidio.com,Proxy
DOMAIN-SUFFIX,yes-news.com,Proxy
DOMAIN-SUFFIX,yesasia.com,Proxy
DOMAIN-SUFFIX,yeeyi.com,Proxy
DOMAIN-SUFFIX,yasni.co.uk,Proxy
DOMAIN-SUFFIX,yastatic.net,Proxy
// Z
DOMAIN-SUFFIX,zacebook.com,Proxy
DOMAIN-SUFFIX,zalmos.com,Proxy
DOMAIN-SUFFIX,zaobao.com.sg,Proxy
DOMAIN-SUFFIX,zeutch.com,Proxy
DOMAIN-SUFFIX,zeronet.io,Proxy
DOMAIN-SUFFIX,zdassets.com,Proxy
DOMAIN-SUFFIX,zhowkev.in,Proxy
DOMAIN-SUFFIX,zb.com,Proxy
// 0-9
DOMAIN-SUFFIX,4everProxy.com,Proxy
DOMAIN-SUFFIX,4shared.com,Proxy
DOMAIN-SUFFIX,6park.com,Proxy
// Telegram
IP-CIDR,91.108.0.0/16,Proxy,no-resolve
IP-CIDR,149.154.0.0/16,Proxy,no-resolve
// LINE
IP-CIDR,103.2.28.0/20,Proxy,no-resolve
IP-CIDR,119.235.224.0/20,Proxy,no-resolve
IP-CIDR,125.209.222.0/16,Proxy,no-resolve
IP-CIDR,147.92.128.0/21,Proxy,no-resolve
IP-CIDR,203.104.128.0/19,Proxy,no-resolve
// Others Proxy
IP-CIDR,18.0.0.0/8,Proxy,no-resolve
IP-CIDR,31.0.0.0/8,Proxy,no-resolve
IP-CIDR,35.0.0.0/8,Proxy,no-resolve
IP-CIDR,52.0.0.0/8,Proxy,no-resolve
IP-CIDR,54.0.0.0/8,Proxy,no-resolve
IP-CIDR,64.0.0.0/8,Proxy,no-resolve
IP-CIDR,75.0.0.0/8,Proxy,no-resolve
IP-CIDR,158.0.0.0/8,Proxy,no-resolve
IP-CIDR,169.0.0.0/8,Proxy,no-resolve
IP-CIDR,174.0.0.0/8,Proxy,no-resolve
IP-CIDR,199.0.0.0/8,Proxy,no-resolve
# Proxy End
GEOIP, CN, DIRECT
FINAL, Proxy
[URL Rewrite]
// Redirect_Google_Service
^https?://(www.)?g.cn https://www.google.com 302
^https?://(www.)?google.cn https://www.google.com 302