GitHub:全球最大开源托管站,微软旗下。 jsDelivr:免费、稳定的CDN PicGo:开源的图床,支持win、linux等系统。 下面是设置教程,很简单,基本就是鼠标点下就行。 一、Github上的设置 1、新建github仓库 进入 https://github.com/ ,点击绿色的 New 2、获取token 打开 https://github.com/settings/tokens,点击右侧的 Generate new token,获取的一串字符就是token(麻烦保存好) 二、PicGo设置 根据需要下载:https://github.com/Molunerfinn/picgo/releases,下面是win下的设置。 PicGo-Setup-2.2.2.exe下载:https://www.lanzous.com/ia1xh8j 三、jsDelivr的CDN使用 前缀为 https://cdn.jsdelivr.net/gh/ ,后面是github用户名和仓库 演示(8M):https://cdn.jsdelivr.net/gh/guonning/low/img/opo0328a.jpg

可一键安装BBR、BBR2、BBR Plus、锐速等。安装是先安装内核,然后再启用加速。 建议SSH下,root用户。 一、安装证书 apt-get -y install ca-certificatesyum -y install ca-certificates 二、安装 1、不卸载内核(安全,若出现不能启动等,可VNC换启动内核)

wget -O tcpx.sh “https://github.com/ylx2016/Linux-NetSpeed/raw/master/tcpx.sh“ && chmod +x tcpx.sh && ./tcpx.sh

1
wget -N --no-check-certificate "https://zhujiwiki.com/wp-content/uploads/2020/02/tcpx.sh" && chmod +x tcpx.sh && ./tcpx.sh

2、卸载内核(节省空间,强迫症)

wget -O tcp.sh “https://github.com/ylx2016/Linux-NetSpeed/raw/master/tcp.sh“ && chmod +x tcp.sh && ./tcp.sh

1
wget -N --no-check-certificate "https://zhujiwiki.com/wp-content/uploads/2020/02/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

三、相关问题 1、双持bbr+锐速 bbr 添加

1
2
3
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

编辑锐速文件

nano /appex/etc/config

2、提示Abort kernel removal? 选择No 开源页面:https://github.com/ylx2016/Linux-NetSpeed/releases

简介


Github作为全球最大的同性交友网站,一直广受开发者们的喜爱,但是由于某些不可描述的原因,在访问、克隆、拉取、推送的时候,经常莫名其妙的不好使,速度慢的让人无法忍受。解决这个问题(克隆、拉取、推送)的一个途径就是通过代理,绕过 某长城

配置本地代理


关于代理服务器的事儿就不多说了,要么买,要么租vps自己搭建。一下内容的先决条件是你拥有一个好使的代理服务。 用shadowsocks开启代理后,右键点击托盘中的纸飞机,选择选项配置: 图片无法显示 设置一个本地代理端口号,如果需要局域网其它用户也通过此代理,需要勾选 允许来自局域网的连接 选项: 图片无法显示

设置git代理


通过以下命令设置git的代理:

1
2

git config –global http.proxy ‘socks5://ip:1080’
git config –global https.proxy ‘socks5://ip:1080’

这里需要注意的是,如果本机使用的话,ip用127.0.0.1即可,局域网ip能不能用我没有测试。如果需要取消代理,可以用下面的代码:

1
2

git config –global –unset http.proxy
git config –global –unset https.proxy

基于原 Brook端口转发 一键管理脚本 的修改版,增加对动态域名的支持,开启监控后自动更新域名IP。 基于iptables防火墙,记得安装iptables。 安装Brook,然后配置端口转发,最后启动Brook。

wget https://zhujiwiki.com/wp-content/uploads/2020/01//brook-pf-mod.sh && chmod +x brook-pf-mod.sh
./brook-pf-mod.sh

转自:https://github.com/yulewang/brook/ 1、卸载 firewalld 和 ufw

apt remove firewalld ufw

yum remove firewalld ufw

然后重启。 2、安装iptables

yum install -y iptables
yum update iptables
yum install iptables-services

iptables配置文件:/etc/sysconfig/iptables

安装

系统要求:CentOS 6+ / Debian 6+/ Ubuntu 14.04 +。推荐Debian 7 x64。 本脚本只是一个一键安装+运行控制的脚本,没有其他管理虚拟主机等功能。 执行下面的代码安装Caddy,如果想要安装其他扩展可以把名字加到命令后面(bash caddy_install.sh install xxx,xxx,xxx,扩展列表单击查看)。

1
2
3
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

使用说明

1
2
3
4
5
6
7
8
启动:/etc/init.d/caddy start
停止:/etc/init.d/caddy stop
重启:/etc/init.d/caddy restart
查看状态:/etc/init.d/caddy status
查看Caddy启动日志:tail -f /tmp/caddy.log
安装目录:/usr/local/caddy
Caddy配置文件位置:/usr/local/caddy/Caddyfile
Caddy自动申请SSL证书位置:/.caddy/acme/acme-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/

升级Caddy或者更新扩展

只需要重新执行你当初安装时候用的命令即可,会覆盖安装最新的Caddy+扩展。

卸载球童

卸载不会删除虚拟主机的内容,只会删除Caddy自身和配置文件。

1
2
3
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && bash caddy_install.sh uninstall
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && bash caddy_install.sh uninstall

网站配置文件

配置文件为Caddyfile,双重几种caddyconf的写法 1,本地访问80

1
:80

2,单网站访问

1
2
3
example.com
root /usr/local/caddy/www
//更多模块

2,多网站

1
2
3
4
5
example.com {
gzip
root /usr/local/caddy/www
//更多模块
}

常用基本组成模块,均写入到conf站点配置中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#log日志
log /usr/local/caddy/www/example.log

#目录访问
browse

#gzip压缩
gzip

#自主ssl证书
tls /path/ssl/example.com.crt /path/ssl/example.com.key

#访问口令认证(用户emiria,密码abc123)
basicauth / emiria abc123

#跳转功能
redir http://example.com{url}

#自定义错误页面
errors {
404 404.html
500 /usr/local/caddy/www/500.html
}

例如,通过IP80端口访问目录:

1
2
3
4
5
:80 {
root /usr/local/caddy/www
gzip
browse
}

也可以直接执行命令编写,以下是一个命令,直接复制粘贴即可。

1
2
3
4
5
echo ":80 {
root /usr/local/caddy/www
gzip
browse
}" > /usr/local/caddy/Caddyfile

更多配置参考:https: //caddyserver.com/tutorial/caddyfile设置文档参考:https : //caddyserver.com/docs

常见问题

1,Caddy启动失败,打开ip访问地址显示的是! 一些系统会自带apache2,而apache2会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。

1
2
netstat -lntp
# 我们可以通过这个命令查看是不是被其他软件占用了80端口。

不过apache2会默认开机自启动,如果不需要可以关闭自启动或卸载apache2。 停止Apache2

1
2
3
4
5
6
7
# CentOS系统
/etc/init.d/httpd stop
# Debian/Ubuntu系统
/etc/init.d/apache2 stop

# 尝试使用上面代码关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。
kill -9 $(ps -efgrep "apache2"grep -v "grep"awk '{print $2}')

取消开机自启动

1
2
3
4
# CentOS 系统
chkconfig --del httpd
# Debian/Ubuntu 系统
update-rc.d -f apache2 remove

卸载Apache2

1
2
3
4
# CentOS 系统
yum remove httpd
# Debian/Ubuntu 系统
apt-get remove --purge apache2

关闭Apache2后,就可以Caddy尝试启动,并试试能不能打开网页。

1
/etc/init.d/caddy start

2,启动Caddy后,无法访问 这个可能是防火墙的问题,开放防火墙端口即可。

1
2
3
4
5
6
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT

# 删除防火墙规则,内容一样把 -I 换成 -D 就行了:
iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT
iptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT

3,SSL证书 签发失败失败报错acme: error: 400 :: urn:ietf:params:acme:error:connection :: Error getting validation data, url:,检查下防火墙端口,需要开启80443端口,然后重启即可。

安装Caddy

运行以下命令:

1
2
3
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置文件

以下所有示例域名为toyoo.ml,请注意替换为自己的域名 ! 1、服务器IP反向代理 下面是一个,用你服务器的IP来反向代理一个http协议的网站http://www.baidu.com 。

1
2
3
4
5
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo ":80 {
gzip
proxy / http://www.baidu.com
}" > /usr/local/caddy/Caddyfile

服务器IP也可以反向代理HTTPS协议的网站,但是需要自签SSL证书,现在的浏览器一般都不会认自签的SSL证书,所以不建议这么做。 2、域名反向代理HTTP 下面是一个,用你的域名来反向代理一个http协议的网站http://www.baidu.com

1
2
3
4
5
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo "http://toyoo.ml {
gzip
proxy / http://www.baidu.com
}" > /usr/local/caddy/Caddyfile

如果你需要反向代理HTTPS协议的网站,比如https://www.baidu.com,那么继续看下面步骤。 3、域名反向代理HTTPS 如果你有SSL证书和密匙的话,把SSL证书(xxx.crt)和密匙(xxx.key)文件放到/root文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:

1
2
3
4
5
6
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo "https://toyoo.ml {
gzip
tls /root/xxx.crt /root/xxx.key
proxy / https://www.baidu.com
}" > /usr/local/caddy/Caddyfile

如果你没有SSL证书和密匙,那么你可以这样做: 下面的xxxx@xxx.xx改成你的邮箱,同时需要注意的是,申请SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则Caddy会申请并配置失败!

1
2
3
4
5
6
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo "https://toyoo.ml {
gzip
tls xxxx@xxx.xx
proxy / https://www.baidu.com
}" > /usr/local/caddy/Caddyfile

如果一切正常,那么Caddy会自动帮你申请SSL证书并配置好,而且会定时续约SSL证书和强制http重定向至https4、HTTP重定向为HTTPS 当你是手动指定SSL证书和密匙 来配置的话,Caddy只会监听443端口(https),并不会自动设置80端口(http)的重定向(如果是Caddy自动申请的SSL证书,那么就自动做好了),如果要做重定向的话,可以这样做: 下面的示例代码中,是把http://toyoo.mlhttp://233.toyoo.mlhttps://666.toyoo.ml三个域名都重定向到了 https://toyoo.ml

1
2
3
4
5
6
7
8
9
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行!
echo "http://toyoo.ml ,http://233.toyoo.ml ,https://666.toyoo.ml {
redir https://toyoo.ml{url}
}
https://toyoo.ml {
gzip
tls /root/xxx.crt /root/xxx.key
proxy / https://www.baidu.com
}" > /usr/local/caddy/Caddyfile

修改完Caddy的配置文件后,重启Caddy即可。

1
/etc/init.d/caddy restart

脚本整体不需要做任何修改!如果你不理解AliDDNS 2.0的运行原理,请不要擅自改动!因乱改脚本核心导致运行崩溃,作者有权拒绝回答任何问题!

首先,登录你的服务器,安装必需组件: For CentOS:

1
yum install -y wget curl cronie

For Debian 8+:

1
apt install -y wget curl cron

For Ubuntu/Debian 7:

1
apt-get install -y wget curl cron

然后下载AliDDNS脚本到你的服务器上:

1
wget -O /usr/sbin/AliDDNS-v2.0.sh https://ilemonrain.com/download/shell/AliDDNSv2.sh

下载地址请参考上面的 更新记录 & 下载地址 一节!

为脚本文件加上可执行属性:

1
chmod +x /usr/sbin/AliDDNS-v2.0.sh

执行脚本,开始配置:

1
/usr/sbin/AliDDNS-v2.0.sh

弹出启动菜单:

AliDDNS 工具 (阿里云云解析修改工具) 使用方法 (Usage): AliDDNS.sh run 配置并运行工具 (如果已有配置将会直接运行) AliDDNS.sh config 仅配置工具 AliDDNS.sh clean 清理配置文件及运行环境 AliDDNS.sh version 显示版本信息 [Info] 选择你要使用的功能:

  1. 配置并运行 AliDDNS
  2. 仅配置 AliDDNS
  3. 清理环境
  4. 退出

输入数字以选择: _

在这里,我们输入 1 (数字1) ,后按下回车,开始进入AliDDNS配置向导:

[Info] 请输入一级域名 (比如 example.com) (此项必须填写,查看帮助请输入“h”):

假如你需要设置AliDDNS的域名为ddns.example.com,那么请在这里输入 example.com 分解开就是 [ddns] . [example.com] 同时,登录阿里云云解析 https://dns.console.aliyun.com/,在需要DDNS的域名上,添加一个记录:

**记录类型:**A 主机记录:[请填写你的二级域名] **解析线路:**默认 **记录值:**127.0.0.1 (或者随便填写一个IP地址) TTL: [请根据实际需要选择合适的TTL] **同步默认线路:**是 (勾选)

简单粗暴的,看都不看的复制粘贴,作者也有权拒绝回答任何问题!

完成后按下回车键,继续填写二级域名:

[Info] 请输入二级域名 (比如 ddns) (此项必须填写,查看帮助请输入“h”):

同上面的范例,我们输入 ddns ,之后按下回车键继续:

[Info] 请输入记录的TTL(Time-To-Live)值: (默认为600,查看帮助请输入“h”):

如果你使用的是免费版的阿里云云解析,此处可以填写的数值范围为:600~86400; 如果你使用的是**收费版(企业版)**的阿里云云解析,此处可以填写的数值范围为:1~86400 (根据你购买的产品类型决定)。 填写完成后,按下回车键继续:

[Info] 请输入阿里云AccessKey ID (此项必须填写,查看帮助请输入“h”):

AccessKey ID 和 AccessKey Secret 推荐使用 子用户AccessKey(访问控制台RAM) 分配的权限!这样最安全! 使用子用户AccessKey,请分配 AliyunDNSReadOnlyAccess(只读访问云解析(DNS)的权限) 和 AliyunDNSFullAccess(管理云解析(DNS)的权限) 这两个权限!推荐有动手能力的用户使用子用户AccessKey! 如果不会操作或者图省事,请使用 全局AccessKey !但此时一定要注意!**千万不要泄露你的全局AccessKey或者将你的全局AccessKey发布到公网上!**这样等同于把你的号白送人,还可以名正言顺的白嫖你的阿里云账号!如果发生泄露,请立刻删除泄露的AccessKey! 填写完成后,按下回车键继续:

[Info] 请输入阿里云Access Key Secret (此项必须填写,查看帮助请输入“h”):

同上,填写你的AccessKey ID对应的AccessKey Secret。获取你的AccessKey Secret属于账号高风险操作,请准备好用来接收阿里云验证码的手机! 填写完成后,新版的AliDDNS 2.0如果没有激活专家模式,会直接进入执行流程;如果启动了专家模式,以下参数请在你理解的基础上填写!否则请一律留空!

[Info] 请输入获取本机IP使用的命令 (查看帮助请输入“h”):

输入获取本机IP地址使用的命令。如果你不懂或者不需要配置,请留空,直接回车!

[Info] 请输入解析使用的DNS服务器 (此项必须填写,查看帮助请输入“h”):

输入nslookup命令解析使用的DNS服务器。如果你不懂或者不需要配置,请留空,直接回车! 之后,会自动开始DDNS(测试)运行过程:

[Info] 检测到存在的配置,自动读取现有配置 如果你不需要,请通过菜单中的清理环境选项进行清除[Info] 正在写入配置文件…… [Info] 正在获取本机IP…… [Info] 本机IP:... [Info] 正在获取 ddns.example.com 的IP…… [Info] 解析结果:ddns.example.com -> 127.0.0.1 [Info] 正在生成时间戳…… [Info] 获取到RecordID:* [Info] 正在更新解析记录…… {“RecordId”:”“,”RequestId”:”----“} [Info] 已经更新RecordID:* [Success] DDNS记录更新成功,新的IP为:...

出现最后的 DDNS记录更新成功 提示,即为DDNS记录同步成功,稍后等待DNS解析生效,即可完成DDNS域名更换!

3. Crontab (定时任务) 部署教程

首先,在命令行执行命令:

1
crontab -e

会弹出一个提示,问选择哪个编辑器,请按照自己的喜好选择一个文本编辑器:

Select an editor. To change later, run ‘select-editor’.

  1. /bin/nano <—- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny

Choose 1-3 [1]:

选择完成后,会打开一个文本编辑器,请在文件的最后添加如下一行:

1
*/5 * * * * /usr/sbin/AliDDNS-v2.0.sh run >/dev/null 2>&1 &

添加完成后,保存退出。 当提示 crontab: installing new crontab 时,表示crontab写入成功,执行命令重启cron进程: For CentOS:

1
service crond restart

For Ubuntu/Debian:

1
service cron restart

并将Cron加入开机启动项: For CentOS:

1
chkconfig crond on

For Ubuntu/Debian:

1
systemctl enable cron

即可完成定时任务的部署。

什么是 AdGuard Home

AdGuard Home 是一款全网广告拦截与反跟踪软件,AdGuard Home 项目是著名广告拦截器提供商 AdGuard 开源的一个 DNS Server 版本。AdGuard Home 可以将广告与追踪相关的域名屏蔽,同时你不再需要安装任何客户端软件。AdGuard Home 的工作原理是在 DNS 的域名解析过程里拦截网页上的广告。 简单来说 AdGuard Home 是一个支持广告过滤和家长控制的开源公共 DNS 服务,如同 Google 的公共 DNS 服务 8.8.8.8。AdGuard Home 同时也支持 DNS over TLSDNS over HTTPS

项目地址:https://github.com/AdguardTeam/AdGuardHome

AdGuard Home 的主要功能介绍

  • 拦截随处可见的广告
  • 注重隐私保护
  • 家庭保护模式
  • 自定义过滤规则

在继续讲解前,我们先来看一看 AdGuard Home 强大的功能演示和管理后台。

安装 AdGuard Home

AdGuard Home 使用 Golang 开发,具有良好的原生跨平台性。它可以部署在 X86 架构的各种操作系统上,也可以部署在树莓派上,甚至你还可以借助 Docker 部署在群晖 NAS 上。

使用预编译的二进制版本安装

这里我们以 Linux 系统为例,其它系统可参考官方帮助文档:https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started#installation

1
2
3
4
5
6
7
8
9
10
# 下载并解压 AdGuard Home
$ wget https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.100.6/AdGuardHome_linux_amd64.tar.gz
$ tar -zxvf AdGuardHome_linux_amd64.tar.gz

# 为了方便使用,我们将二进制文件拷贝到 PATH 所包含的位置
$ cd AdGuardHome_linux_amd64
$ cp ./AdGuardHome /usr/local/bin/

# 启动 AdGuard Home
$ ./AdGuardHome复制代码

上面的方法,很显然是在前台运行的。前台运行必然还是存在一些弊端的,比如:当前 SHELL 中断必然会引起程序中断等。如果你想长期稳定的运行 AdGuard Home,最后好方法必然是将 AdGuard Home 运行成一个服务。要想将 AdGuard Home 在各平台部署为服务也是很简单的,只需运行下面这一条命令就可实现。

1
2
# Linux 下使用的服务管理器是 systemd 、Upstart 或 SysV,macOS 下使用的服务管理器是 Launchd。
$ ./AdGuardHome -s install复制代码

AdGuard Home 服务安装后好,你可以使用以下命令来管理它。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 启动 AdGuardHome 服务
$ ./AdGuardHome -s start

# 停止 AdGuardHome 服务
$ ./AdGuardHome -s stop

# 重启 AdGuardHome 服务
$ ./AdGuardHome -s restart

# 查看 AdGuardHome 服务状态
$ ./AdGuardHome -s status

# 卸载 AdGuardHome 服务
$ ./AdGuardHome -s uninstall复制代码

使用 Docker 来安装

如果你会一点点 Docker 知识的话,我们当然还是建议你直接使用 Docker 来安装。虽然通过预编译的二进制版本安装已经很简单了,但如果使用 Docker 来安装,你会发现仅仅只需一条指令就可以搞定了。

1
2
3
$ docker pull adguard/adguardhome
# -v 参数后面指定的宿主机上的目录主要用作永久保存 AdGuard Home 的数据文件和配置文件,可自行根据实际情况修改。
$ docker run --name adguardhome -v /home/mike/workdir:/opt/adguardhome/work -v /home/mike/confdir:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 68:68/tcp -p 68:68/udp -p 80:80/tcp -p 443:443/tcp -p 853:853/tcp -p 3000:3000/tcp -d adguard/adguardhome复制代码

你可能会发现上面一共是两条指令,前面不是说好了是一条指令的吗?是不是发现被骗了,我怎么可能骗你呢,这绝对是不可能的!其实这两条指令,你只需直接执行第 2 条指令就可以完成所有安装操作了。这里分开写出来仅仅是为了完整演示 Docker 整个运行过程,能让一些还不会 Docker 的同学能更容易理解一些。前面既然啰嗦了这么多,这里就再延伸说一点 Docker 容器的基本管理操作。

1
2
3
4
5
6
# 启动 AdGuard Home 容器
$ docker start adguardhome
# 停止 AdGuard Home 容器
$ docker stop adguardhome
# 删除 AdGuard Home 容器
$ docker rm adguardhome复制代码

使用 AdGuard Home

使用默认配置来设置 AdGuard Home

运行 AdGuard Home 后,我们需要通过浏览器打开 http://IP:3000AdGuard Home 进行初始化设置。首次初始化会要求设置服务运行端口、账号、密码等信息,配置过程中设置的密码一定请牢记,下次登录管理后台时需要使用。 首先,我们点击 “开始配置” ,来设定网页管理界面和 DNS 服务的端口。 其次,点击 “下一步” 后,为 AdGuard Home 网页管理界面设置一个用户名和密码。 最后,点击 “下一步” 后,AdGuard Home 会展示以上配置的汇总信息。 至此,使用 AdGuard Home 默认配置的设置就算大功告成了。 使用 AdGuard Home 默认配置设置完成后,我们可以在「仪表盘」上看到 DNS 查询次数、被过滤器封锁的网站、查询 DNS 请求的客户端 IP 地址等等信息。

AdGuard Home 配置进阶

AdGuard Home 默认的配置比较简单,为了更强力地拦截广告,我们可以对 AdGuard Home 配置进行一些优化。

  1. 常规设置

AdGuard Home 默认配置的情况下只勾选了「使用过滤器和 Hosts 文件以拦截指定域名」这一个选项,你可以根据自身情况决定是否启用「使用 AdGuard 浏览安全网页服务」、「使用 AdGuard 家长控制服务」和「强制安全搜索」等特性。 不仅如此,你还可以很方便的屏蔽一些比较流行的网站。当然这些网站本来对我们都是不可用的,也就不用多此一举进行设置了,哈哈!

  1. 设置上游 DNS

AdGuard Home 默认使用 CloudflareDNS over HTTPS 作为上游服务器。如果你在国内使用 Cloudflare DNS 做为上游 DNS,可能延迟会比较高。 我们可以设置为国内的公共 DNS,如:腾讯的 119.29.29.29、阿里的 223.5.5.5114.114.114.114 等,但坏处是这些国内公共 DNS 暂时不支持 DNS over TLS。 这里有一个比较折中的解决方法就是通过启用 「通过同时查询所有上游服务器以使用并行查询加速解析」选项来在每次查询的时候对所有的上游 DNS 同时查询,以加速解析速度。

  1. 过滤器

虽然 AdGuard Home 本身内置了比较知名的 AdGuardAdAway 广告过滤规则,但这些规则在国内显然有点水土不服。如果你想要更完美的实现广告屏蔽还需要自己添加规则,比较幸运的是 AdGuard Home 是可以兼容 Adblock 过滤规则语法的。这样,你就可以很方便的使用一些比较知名的 Adblock 过滤规则,比如:由 Adblock Plus 团队维护的 EasyList 目前好用的广告过滤规则还是有很多的,它们都针对不同的用途。下面推荐一些比较常用的:

1. EasyList China : 国内网站广告过滤的主规则。 链接:https://easylist-downloads.adblockplus.org/easylistchina.txt 2. EasyPrivacy : EasyPrivacy 是隐私保护,不被跟踪。 链接:https://easylist-downloads.adblockplus.org/easyprivacy.txt 3. CJX’s Annoyance List : 过滤烦人的自我推广,并补充 EasyPrivacy 隐私规则。 链接:https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjx-annoyance.txt 4. 广告净化器规则 : 支持国内大部分视频网站的广告过滤。 链接:http://tools.yiclear.com/ChinaList2.0.txt 5. I don’t care about cookies : 我不关心 Cookie 的问题,屏蔽网站的 cookies 相关的警告。 链接:https://www.i-dont-care-about-cookies.eu/abp/

除了使用已有的过滤规则外,当然你也可以根据自己的需求自定义过滤规则,要自定义过滤规则其实也很简单。 下面是自定义过滤规则的一些语法说明。

1
2
3
4
5
6
example.org^ – 拦截 example.org 域名及其所有子域名
@@example.org^ – 放行 example.org 及其所有子域名
127.0.0.1 example.org – 将会把 example.org(但不包括它的子域名)解析到 127.0.0.1。
! 注释符号,表示这是一行注释
# 这也是注释符号,同样表示这是一行注释
/REGEX/ – 正则表达式模式复制代码

更多规则可以参考官方帮助文档:https://kb.adguard.com/en/general/dns-filtering-syntax

  1. 查询日志

AdGuard Home 管理界面中也为我们提供了 DNS 请求日志查询功能,在这里,我们不但能看见所有设备最近 5000 条的 DNS 请求日志记录。你还可以根据 DNS 请求日志记录来针对某个域名进行快速的拦截和放行操作。

  1. 调整配置参数,以提升 QPS 能力

AdGuard Home 所有的配置参数都保存在一个名为 AdGuardHome.yaml 的配置文件中。这个配置文件默认路径通常为 AdGuard Home 二进制文件 AdGuardHome 所在的目录,比如:/usr/local/bin/AdGuardHome.yaml。 这里我们只需调整以下两个参数,就是可以明显提升 AdGuard HomeQPS 能力。

  • ratelimit : DDoS 保护,客户端每秒接收的数据包数。默认值是 20,建议禁用该参数(将值改为 0)。
  • blocked_response_ttl : TTL 缓存时间,默认值是 10,建议设置为 60 。

这里在把 AdGuard Home 的配置文件完整版本也展示一下,有兴趣的同学可以自行研究下其它参数的用途哟!。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
$ cat AdGuardHome.yaml

bind_host: 0.0.0.0
bind_port: 80
auth_name: mike
auth_pass: "123456"
language: zh-cn
rlimit_nofile: 0
dns:
bind_host: 0.0.0.0
port: 53
protection_enabled: true
filtering_enabled: true
blocking_mode: nxdomain
blocked_response_ttl: 60
querylog_enabled: true
ratelimit: 0
ratelimit_whitelist: []
refuse_any: true
bootstrap_dns:
- 1.1.1.1:53
- 1.0.0.1:53
all_servers: true
allowed_clients: []
disallowed_clients: []
blocked_hosts: []
parental_block_host: ""
safebrowsing_block_host: ""
blocked_services: []
parental_sensitivity: 13
parental_enabled: true
safesearch_enabled: true
safebrowsing_enabled: true
resolveraddress: ""
rewrites: []
upstream_dns:
- https://1.1.1.1/dns-query
- https://1.0.0.1/dns-query
- 119.29.29.29
- 223.5.5.5
tls:
enabled: false
server_name: ""
force_https: false
port_https: 443
port_dns_over_tls: 853
certificate_chain: ""
private_key: ""
filters:
- enabled: true
url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
name: AdGuard Simplified Domain Names filter
id: 1
- enabled: false
url: https://adaway.org/hosts.txt
name: AdAway
id: 2
- enabled: false
url: https://hosts-file.net/ad_servers.txt
name: hpHosts - Ad and Tracking servers only
id: 3
- enabled: false
url: https://www.malwaredomainlist.com/hostslist/hosts.txt
name: MalwareDomainList.com Hosts List
id: 4
- enabled: true
url: https://easylist-downloads.adblockplus.org/easylistchina.txt
name: EasyList China
id: 1569209532
user_rules:
- '@@mps.ts'
dhcp:
enabled: false
interface_name: ""
gateway_ip: ""
subnet_mask: ""
range_start: ""
range_end: ""
lease_duration: 86400
icmp_timeout_msec: 1000
clients: []
log_file: ""
verbose: false
schema_version: 4复制代码

设置客户端 DNS

所有以上设置完成后,最后当然是修改所有客户端的 DNS 设置,来享用 AdGuard Home 带来的强大的去广告功能。 这个其实真的不用写,我想聪明的你应该都知道这个怎么设置。写这个标题仅仅是为了保持文档完整性,如果你真的不会设置,那就请自行使用「一些好用」的搜索引擎搜索相关方法吧!

总结

AdGuard Home 不但支持了 macOSWindowsLinux、树莓派等多个系统平台,也提供了二进制和 Docker 的部署方式,让安装变得非常简单。AdGuard Home 自身提供的强大和直观的管理和统计系统,让它使用起来也是非常方便的。如果你打算自建一个支持去广告功能的公共 DNSAdGuard Home 是非常值得一试的不二选择。

参考文档

  1. https://www.google.com
  2. https://zhuanlan.zhihu.com/p/56804257
  3. https://www.xiaoz.me/archives/12318
  4. https://www.yangcs.net/posts/adguard-home/
  5. https://github.com/AdguardTeam/AdGuardHome#getting-started

作者:运维之美 链接:https://juejin.im/post/5d91666ef265da5b7326d71d 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

准备实现的功能:

搭建Linux(基本操作百度有很多我不打算给大家演示) 局域网分享通过SAMBA NFS 流媒体服务器 PLEX  点击我跳转安装教程 文件可视化管理 分享  kodexplorer(可道云) owncloud 无线音箱Airplay (支持音频的电脑可用) KODI (选装可以省下一个硬盘网络盒子) rutorrent (PT客户端 方便挂PT)点击我跳转安装教程 管理面板这个我在搜索资料找到适当的在发吧暂时保留! 因为都写在一个文章内 文章太长的缘故我已经把部分教程分开写了


基础篇:

准备硬盘的时候有一个问题需要注意你的主机要是有阵列卡的请配置好你阵列卡的硬盘然后再做系统的时候手动分区把其他分区分好了以后剩下的所有容量都分到home下, 如果你没有阵列卡 安装系统默认分区即可然后在Linux做软阵列 至于阵列模式根据自己的情况而定然后在按照下面的教程操作 ubuntu切换root权限并开启外网登录root权限

sudo passwd root (提示输入你现在用户的密码 然后在输入两次新密码 root账户就可以登录了)

su -l (输入之后输入上一个指令新建的密码)

apt-get update -y

apt-get install ssh -y (安装ssh)

vi /etc/ssh/sshd_config (在配置文件中找到PermitRootLogin这行吧后面的删掉改为YES即可)

service ssh restart

配置硬盘

lsblk(查看硬盘结构)

另类玩法用Linux做私有服务器NAS Linux 第1张

红色框框内就是需要我们配置的硬盘以及自动挂载

fdisk -l (查询硬盘)
root@LINUXNAS:~# fdisk /dev/sdb (硬盘写你自己的位置)
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xa654af95.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

命令(输入 m 获取帮助): p (查看硬盘情况)

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders, total 209715200 sectors
Units = 扇区 of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa654af95

设备 启动 起点 终点 块数 Id 系统

命令(输入 m 获取帮助): n (新建分区)
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p (新建主分区)
分区号 (1-4,默认为 1): 1 (需要分几个分区 我个人建议分一个)
起始 sector (2048-209715199,默认为 2048):(默认回车)
将使用默认值 2048
Last sector, +扇区 or +size{K,M,G} (2048-209715199,默认为 209715199): +98G(+的容量要小于实际容量一点 原因为啥自己百度 后面的单位必须为大写)

命令(输入 m 获取帮助): w (保存指令)
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

mkfs.ext4 /dev/sdb1 (格式化新加的硬盘)

开机自动挂载硬盘

mkdir /home/nas

查看更多关于 nas 的文章

(建设一个想要当NAS的根目录)

vi /etc/fstab (添加开机启动挂载目录)

/dev/sdb1 /home/nas

查看更多关于 nas 的文章

  ext4   defaults    0      0  (粘贴在最后一行下面)

reboot (重启)

lsblk (查看是否挂载成功)

另类玩法用Linux做私有服务器NAS Linux 第2张 如图所示 挂载成功!! 基本准备到此结束!!!


安装SAMBA NFS:

更换ubuntu的源地址为阿里源

mv /etc/apt/sources.list sources.list.bak (备份原文件)

vi /etc/apt/sources.list (新建文件之后把下面的粘贴进去)


deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

apt-get update (更新)

安装SAMBA:

apt-get install samba

查看更多关于 samba 的文章

-y (安装SAMBA)

sudo smbpasswd -a root (用户名)

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.original

sudo install nano -y

sudo nano /etc/samba/smb.conf

————-将下面的内容,复制粘贴进去———————

[global]
netbios name = Linux NAS
server string = The Pi File Center
workgroup = WORKGROUP
hosts allow =
remote announce =
remote browse sync =

[Linux NAS] (名字随意)
path = /home/nas (需要连接的目录)
comment = No comment
browsable = yes
read only = no
valid users =
writable = yes
guest ok = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root
force create mode = 0777
force directory mode = 0777
hosts allow =

————–分界线———————————–

sudo service smbd restart

另类玩法用Linux做私有服务器NAS Linux 第3张 在Windows电脑内网络内搜索 如果没有 就在运行内输入\192.168.1.45(IP修改成你自己的)访问即可 SAMBA 安装以及配置到此结束!

安装NFS:

安装nfs:

apt-get install nfs-kernel-server

配置NFS

修改配置文件
vi /etc/exports

在最后一行添加 目录位置写你自己的

/home/nas *(rw,sync,no_root_squash,no_subtree_check)

前面那个目录是与nfs服务客户端共享的目录,*代表允许所有的网段访问(也可以使用具体的IP)
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:客户机用root访问该共享文件夹时,不映射root用户。(root_squash:客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户)
no_subtree_check:不检查父目录的权限。
2.2-nfs是一个RPC程序,使用它前,需要映射好端口,通过rpcbind 设定:

重启nfs服务

service nfs-kernel-server restart

Magi 是什么?

Magi 是由 Peak Labs 研发的基于机器学习的信息抽取和检索系统,它能将任何领域的自然语言文本中的知识提取成结构化的数据,通过终身学习持续聚合和纠错,进而为人类用户和其他人工智能提供可解析可检索可溯源的知识体系。

Magi 能做什么?

如果您是从 magi.com 来到这里的话,那么恭喜您发现了 Magi 的一半!这个长得很像搜索引擎的网站就是 Magi 的公众版本,但与搜索引擎不同,Magi 不仅收录互联网上的海量文本,还会去尝试理解并学习这些文本中蕴含的知识和数据。 不妨在 magi.com使用帮助)尝试搜索一些您关心的事物,或者直接提出问题,Magi 都将竭力为您提供高度聚合的结构化知识结果:

[video width=”1280” height=”620” mp4=”http://www.jarods.org/wp-content/uploads/2019/12/webui.mp4“ loop=”true” autoplay=”true” preload=”auto”][/video] 每条信息会用颜色表示其可信度,点击可展开看到 Magi 是从哪些具体来源习得的该知识。  

我们为 Magi 从零研发了一套互联网搜索引擎,所以 magi.com 同时提供全网规模的普通搜索结果。因此,即使不巧没有结构化结果,您也不会白来。 值得一提的是,上述的学习过程是在无人干预的情况下 7 x 24 小时不间断运行的,实时新闻事件中的知识一般只需要 5 分钟就会被掌握。随着可交叉验证的信息源不断增加,先前学习到的知识的可信度会被重新评估,使结果中的错误被自动纠正。

Magi 的使命

目前,互联网上只有极少数知识被人类手工整理成了机器可以解析的格式,如各种百科栏目和垂直领域数据库,然而这些信息仅仅是沧海之一粟,无论是覆盖范围更新频率可靠程度都无法满足日益增长的自动化和智能化需求。 其根本矛盾在于:读懂自然语言对人类来说不难,但人的精力有限,无法跟上有价值信息的产生速度,也不能保证稳定和客观;机器虽然不知疲倦且速度超群,但面对纷繁复杂的自由文本却难以利用,使得不可估量的价值被埋没于字里行间。 试想一下,假如有一个不断自动更新的数据库,包含着互联网各处的文本信息提取而成的便于程序和算法处理的数据结构,那么也许:

  • 各种语音助手不会再对您说:“对不起,我不清楚。”;
  • 商业智能可获得广泛的背景知识来做出更好的判断;
  • 金融信息服务的数据收集与验证的效率将显著提升;
  • … …

作为公众版本的 magi.com 为人类用户提供了与互联网数据交互的新方式,而 Magi 系统背后的技术平台则承载着另一半重要的意义:让机器像人一样能理解并充分利用互联网中无穷无尽的知识

Magi 的技术

在目前相关领域的尝试中,机器问答终究还是面向人类的服务,依照文本问题给出的文本回答并不能供下游任务直接利用。同时,问答模型本身无论从容量还是更新效率都无法满足规模化的需求,更致命的是模型中的知识存在于由浮点数组成的“黑箱”中,在我们看来将这些无法解读和溯源的信息直接呈现给用户并不是最负责任的做法。另外,基于文档检索的方案同样无法满足结构化的需求,在实时线上服务中效率限制会导致其难以评估全部文档来获得全局最优,而且其对用户输入的查询要求较高。 综上所述,我们认为知识提取的重要性远高于单纯地回答问题,主动发现潜在知识并持续提炼修正则显著强于被动地根据输入的问题去匹配结果。让机器去理解语言已经十分困难,而 Magi 更是选择面对其中最复杂的目标:开放领域的互联网文本,去直面规模化准确度这一组知识工程中的核心矛盾点。

[video width=”816” height=”720” mp4=”http://www.jarods.org/wp-content/uploads/2019/12/extraction.mp4“ loop=”true” autoplay=”true”][/video]  

一个简单的句子就包含大量交错重叠的信息,而 Magi 要以整篇文章为单位处理语法松散又充满错误的互联网文本,其难度可想而知。

为了提升信息的利用率,Magi 必须尽可能彻底地从每一段质量参差不齐且主题各异的文本中提取出全部知识。这决定了一切现有的技术方案都不可用:这不再是一个清晰的序列标注问题,交错叠加的关系使得搜索空间爆炸式增长,不受限制的领域还意味着根本没有可用的训练数据。 我们用了多年时间从零设计研发了整个技术堆栈:采用原创 succinct 索引结构的分布式搜索引擎、使用专门设计的 Attention 网络的神经提取系统、不依赖 Headless 浏览器的流式抓取系统、支持混合处理 170 余种语言的自然语言处理管线、… 。与此同时,我们默默耕耘并收获了独一无二的训练/预训练数据。 这个系统通过引入传统搜索中的 query-independent 质量因素,使得优质可靠的消息源会更被重视;其基于多级迁移学习的提取模型则完全摒弃了人工规则、角色标注、依存分析等限制泛化能力的环节,并且可在 zero-resource 的前提下直接应用到各种外语文本上并取得令人满意的效果;而随着数据的积累以及来源多样性的扩充,这个系统还能够持续学习与调整,自动消除学习到的噪音和错误结果;… 这些努力共同作用将 Magi 呈现于此。作为独特且具有前瞻性的项目,Magi 的部分数据与相关研究成果将定期公开于 Zenodo 和 arXiv 等平台。

Magi 的愿景

Magi 现在还远算不上成熟,但其特性决定了它无穷的可能性和成长空间。 从最棘手的互联网开放领域信息入手,Magi 证明了其作为 the One system to rule them all 的可能性。面对各种领域的文本信息,Magi 的技术方案则从逐项击破跃进到了大一统,这代表着有限到无限的区别。 随着数据量和可信度的不断增长,Magi 将作为知识的 ImageNet 来赋能各行各业。各个专业细分领域的信息提取任务,都可以通过利用少量数据对 Magi 模型进行 fine-tuning 来实现更优的方案。 也许在不远的未来,伴随着整个行业的进步,Magi 所构建的包容万事万物的结构化网络将成为通向可解释人工智能的基石。

了解更多

0%