解除微信公众平台对微上客的授权

由于微信平台的限制,在渠道设置中删除渠道时,并不会同步在微信公众平台解绑,所以还需要用户进入到微信公众平台手动解绑才行。

步骤

左边功能区选择 【添加功能插件】

mage-20180503094819

切换到插件库旁边的【授权管理】

mage-20180503094655

找到已授权的微信第三方平台
查看平台详情

mage-20180503094557

选择 【取消授权】

mage-20180503094739

Howto Install Redmine on Ubuntu 16.04

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
# base
apt install mysql-server libmysqlclient-dev git-core subversion imagemagick libmagickwand-dev libcurl4-openssl-dev
apt install build-essential mysql-server ruby ruby-dev libmysqlclient-dev imagemagick libmagickwand-dev
# install mysql
systemctl enable mysql.service
systemctl start mysql.service
create database redmine character set utf8;
grant all privileges on redmine.* to [email protected]'localhost' identified by 'redmine';
flush privileges;
# Install ruby
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm requirements
rvm install 2.4.1
rvm use 2.4.1 --default
# install passenger and nginx
gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module
# 1. auto install nginx.
curl https://raw.githubusercontent.com/makevoid/nginx-passenger-ubuntu/master/nginx/nginx.service > /lib/systemd/system/nginx.service
systemctl daemon-reload
systemctl enable nginx
vim /opt/nginx/conf/nginx.conf # 注销 location / {} 的配置
server {
listen 80;
server_name [your_server_domain_name] # redmine.com;
root /var/data/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size
}

systemctl start nginx
# install redmine
mkdir /var/data
cd /var/data
svn co http://svn.redmine.org/redmine/branches/3.4-stable redmine
cd /var/data/redmine
cp -pR /var/data/redmine/config/database.yml.example /var/data/redmine/config/database.yml
vim config/database.yml # set redmine db user and password
# Install Plugins
cd /var/data/redmine
gem install bundler --no-ri --no-rdoc
bundle install
# configure redmine
cd /var/data/redmine
mkdir public/plugin_assets
chown -R www-data:www-data files log tmp public/plugin_assets config.ru
chmod -R 755 files log tmp public/plugin_assets
# input database and base file.
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
bundle exec rake generate_secret_token
# restart nginx, install ok.
systemctl restart nginx
# restart redmine
touch /var/data/redmine/tmp/restart.txt
# configure email service
vim /var/data/redmine/config/configuration.yml

iPhone/iPad 不越狱安装旧版程序

前言

软件版本迭代是会带来新的功能和 BUG 修复,为给用户带来更好的使用体验,我也是乐于尝鲜的性格,所以在软件推出发布新版本时都会及时更新,但用户体验其实是一个玄学的话题,有时并不能给你带来更好的体验,在 iOS 上,由于苹果商店严格的管理机制导致我们在升级后,想要回退到之前版本变得十分困难。

虾米音乐升级到 6.0 版本之后,改变很大,作为一位老虾米非常不适应,所以就瞄准了 6.0 之前的最后一个版本:5.9.4。

解决办法是在 iTunes 下载程序时,使用抓包工具对与苹果应用商店服务器之间的请求进行分析,通过修改下载请求中程序版本识别序列号来下载旧版本。

准备

网上较多的解决办法是使用 Fiddler+iTunes 是在 Windows 平台,因为我只有 Mac ,所以用Charles 代替 Fiddler,这里需要注意的是iTunes的版本,在笔者写这篇教程的前一天 iTunes 更新到12.7,在 12.7 中有一个很大的变化移除了 App store ,所以请使用低于 12.7 版本的 iTunes 。

Charles 安装

对于 Charles 版本并没有特殊要求,我这边是通过brew安装,你也可以到 Charles 官网下载安装, Charles 是需要付费的软件,但是有30天免费使用期限,如果你有长期使用打算,建议购买正版授权。

Charles SSL证书导入系统

从 Charles 中导出证书文件

在 KeyChain Access 中导入证书

选中导入的证书,然后右键选择 ‘Get Info’ ,设置证书信任状态

“虾米音乐” 的三次下载

第一次下载

打开 Charles ,开启监听,然后使用搜索虾米音乐,点击 Downloads 按钮。

点击下载后,在 Charles 会出现监听到信息,找到一条 ‘p[xx]-buy.itunes.apple.com’ ,其中 xx 是一个随机的数字,选中它,然后右键菜单栏中勾选 ‘Enable SSL Proxying’ 和 ‘Breakpoints’ 。设置完成后,在 iTunes 下载中,清理下载记录。

第二次下载

重新搜索虾米音乐,并点击下载按钮,这时 Charles 会弹出窗口,然后在弹出窗口的右下三个按钮中选择 ‘Execute’ ,这一步是我们请求服务器,紧接着出现的就是服务器给我们的响应,然后选择 ‘Edit Response’ - ‘XML Text’ ,然后向下滚动找到下图中的部分,这里是所有虾米音乐的版本的序列数字,但是这里没有办法直接看到版本号,越大的数字版本号越新。这里可以通过在手机 App store 中查看软件的版本记录,找到大概要回退多少个版本,然后数字从大到小找个半个序列数字记录下来,然后在下面三个按钮中选择 ‘Abort’ ,这时 iTunes 会弹出一个报错窗口,关掉即可。

第三次下载

再次重新搜索虾米音乐,并点击下载,在这次Charles弹出窗口中我们需要直接修改 ‘Edit Requset’ - ‘XML Text’ ,将如下图中的 ‘appExtVrsid’ 对应的值修改为,我们上一步中记录的序列数字,然后就一直在每次弹出选择时,选择 ‘Execute’ ,直到下载完成记录。

验证

下载完成后,你的 iTunes App Library 中已经有了一个虾米音乐,连接上你的手机,将其安装到手机上即可,下图是我安装后的版本截图。

在Linux终端使用SSR服务实现科学上网

昨天在群内看到有朋友在询问如何在Linux终端内使用SSR来实现科学上网,所以抽空研究了下在Linux中如何使用,本文参考了OtokazeDjango 两位的博客,文章链接在博文最后;SSR服务提供商依然采用了ssGlobal,在Google的过程中,找了不少解决方案,这里仅做一种简单整理,实验操作系统有CentOS 7.4 & Ubuntu 16.04.3。

ssr 代理服务

下载
1
2
3
4
5
6
# 需要本地git 环境
yum install -y git
git clone https://github.com/SAMZONG/gfwlist2privoxy.git
cd gfwlist2privoxy/
mv ssr /usr/local/bin
chmod +x /usr/local/bin/ssr
安装配置
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
[[email protected] ~]# ssr install
Cloning into '/usr/local/share/shadowsocksr'...
remote: Counting objects: 5490, done.
remote: Total 5490 (delta 0), reused 0 (delta 0), pack-reused 5490
Receiving objects: 100% (5490/5490), 1.71 MiB | 410.00 KiB/s, done.
Resolving deltas: 100% (3799/3799), done.

[[email protected] ~]# ssr config # 配置文件路径 /usr/local/share/shadowsocksr/config.json
{
"server": "0..0.0.0", // ssr服务器ip
"server_ipv6": "::",
"server_port": 8080, // ssr服务器端口
"local_address": "127.0.0.1",
"local_port": 1080,

"password": "123456", // 对应password
"method": "none", // 这里对应SSGlobal配置中的Encryption
"protocol": "auth_chain_a", //对应protocl
"protocol_param": "",
"obfs": "http_simple", //对应obfs
"obfs_param": "hello.world", //对应obfs_param
"speed_limit_per_con": 0,
"speed_limit_per_user": 0,

"additional_ports" : {}, // only works under multi-user mode
"additional_ports_only" : false, // only works under multi-user mode
"timeout": 120,
"udp_timeout": 60,
"dns_ipv6": false,
"connect_verbose_info": 0,
"redirect": "",
"fast_open": false
}
启动/关闭
1
2
ssr start
ssr stop
卸载
1
ssr uninstall # 这里操作会删除/usr/local/share/shadowsocksr

以上,本地监听服务已经配置完成了,在填写的过程中,要注意你的本地监听地址和监听端口,默认是127.0.0.1:1080,如果你修改了设置,那么在后续配置中也要配合修改。

Privoxy 配置

首先,需要安装privoxy

CentOS 7.4
1
2
yum install -y epel-release
yum install -y privoxy
Ubuntu 16.04
1
apt install -y privoxy
全局模式

代理模式同其他平台上方式,将所有http/https请求走代理服务,如果需要全局代理的话按照如下操作即可,如果要使用PAC模式,请跳过此部分。

1
2
3
4
5
6
7
8
9
10
# 添加本地ssr服务到配置文件
echo 'forward-socks5 / 127.0.0.1:1080 .' >> /etc/privoxy/config

# Privoxy 默认监听端口是是8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost

# 启动服务
systemctl start privoxy.service
PAC模式

使用GFWList是由AutoProxy官方维护,由众多网民收集整理的一个中国大陆防火长城的屏蔽列表,这里感谢@Otokaze 为我们提供了转换shell自动转换脚本,为了方便修改,我fork了这个项目,将这篇教程所用到的资源进行了汇总,你可以在最开始git clone的目录中找到执行脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[[email protected] ~]# cd gfwlist2privoxy/
[[email protected] gfwlist2privoxy]# ls
gfw.action gfwlist2privoxy README.md ssr
[[email protected] gfwlist2privoxy]# bash gfwlist2privoxy
proxy(socks5): 127.0.0.1:1080 # 注意,如果你修改了ssr本地监听端口是需要设置对应的
{+forward-override{forward-socks5 127.0.0.1:1080 .}}

=================================================================

"cp -af /root/gfwlist2privoxy/gfw.action /etc/privoxy/"

[[email protected] ~]# cp -af gfw.action /etc/privoxy/
[[email protected] ~]# echo 'actionsfile gfw.action' >> /etc/privoxy/config

# Privoxy 默认监听端口是是8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost

# 启动服务
systemctl start privoxy.service
proxy 环境变量
1
2
3
4
5
6
7
8
9
# privoxy默认监听端口为8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost

# no_proxy是不经过privoxy代理的地址
# 只能填写具体的ip、域名后缀,多个条目之间使用','逗号隔开
# 比如: export no_proxy="localhost, 192.168.1.1, ip.cn, chinaz.com"
# 访问 localhost、192.168.1.1、ip.cn、*.ip.cn、chinaz.com、*.chinaz.com 将不使用代理

代理测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 访问各大网站,如果都有网页源码输出说明代理没问题
curl -sL www.baidu.com
curl -sL www.google.com
curl -sL www.google.com.hk
curl -sL www.google.co.jp
curl -sL www.youtube.com
curl -sL mail.google.com
curl -sL facebook.com
curl -sL twitter.com
curl -sL www.wikipedia.org

# 获取当前 IP 地址
# 如果使用 privoxy 全局模式,则应该显示 ss 服务器的 IP
# 如果使用 privoxy gfwlist模式,则应该显示本地公网 IP
curl -sL ip.chinaz.com/getip.aspx
管理脚本

在以上部署操作完成后,应该已经可以正常科学上网了,但是如果需要进行管理时,需要分别管理ssr和privoxy,为了方便管理,这里写了一个shell脚本方便管理: ssr_manager

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
#!/bin/bash
# Author Samzong.lu

case $1 in
start)
ssr start &> /var/log/ssr-local.log
systemctl start privoxy.service
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy="localhost, ip.cn, chinaz.com"
;;
stop)
unset http_proxy https_proxy no_proxy
systemctl stop privoxy.service
ssr stop &> /var/log/ssr-log.log
;;
autostart)
echo "ssr start" >> /etc/rc.local
systemctl enable privoxy.service
echo "http_proxy=http://127.0.0.1:8118" >> /etc/bashrc
echo "https_proxy=http://127.0.0.1:8118" >> /etc/bashrc
echo "no_proxy='localhost, ip.cn, chinaz.com'" >> /etc/bashrc
;;
*)
echo "usage: source $0 start|stop|autostart"
exit 1
;;
esac
使用
1
2
3
4
5
6
7
8
9
10
11
mv gfwlist2privoxy/ssr_manager /usr/local/bin
chmod +x ssr_manager

# 启动服务
ssr_manager start

# 关闭服务
ssr_manager stop

# 添加开机自启动
ssr_manager autostart

参考链接

HowTo Use SSR Service on Mac

应邀制作一份关于Mac SSR的连接使用。

准备

  1. SSR 服务提供商,SSGlobal ,你可以到Telegram加入我们。SSGlobal Group
  2. MacOS 版本 10.12.6,经过实测OS版本对实际使用影响并不大。
  3. SSR Client, 下载

SSR服务

如果你需要科学上网的话,非常愿意给你推荐我正在使用的SSR服务商,但是由于其官方网站和客户沟通工具TG需要科学上网才能使用,所以你可以联系到我来介绍你们。

最新定价计划:

  • Plan-A:¥15.00元,1个月,无限流量,不限速,可自助切换节点。
  • Plan-B:¥15.00元,3个月,6G流量包,不限速,可自助切换节点。
  • 增加线路:¥8.00元,1个月,1条。

注:增加线路仅支持Plan-A用户配套购买,不超过主线路最长期限,不足1个月剩余时限用户不支持购买

注册账号

立即注册

05

这里[email protected] 仅仅是演示邮箱,请填写对应属于你的邮箱.

当你点击提交完成后,在你的邮箱会收到一封激活邮件,点击其中链接或将链接复制到浏览器中即可激活。

07

这里同样是激活链接,同样仅作为演示。

登录系统

立即登录

输入注册时的用户名密码,即可登录到系统内,然后在首页找到进入后台按钮,即可看到试用信息。

06

这里填写用户名或邮箱都可以。

进入系统后,找到订阅链接信息,默认情况下,你应该只有一条线路信息,付费用户享有应急通道。

04

上图中”切换“,用来切换不同服务器节点,注意,切换后要到客户端内刷新订阅信息,下面会讲到。

SSR Client 安装

在本文最上面已经有了,如何下载SSR 客户端的地方,细心的朋友,应该已经在SSGlobal官网上找到了对应下载页面,其中包含全平台的客户端工具。

下载

立即下载

01

下载完成后,找到你的下载文件,双击打开,将程序拖到Mac程序目录即完成安装,和Mac其他软件安装并无不同。

02

启动程序

在Launchpad中找到最近安装的 Shadowsocks NG R8,点击启动后,Mac右上角导航栏中会有一个小飞机的图标,点击可以看到以下信息:

03

上图中已经有我的订阅信息,请忽略

编辑订阅信息

选择编辑订阅信息,然后将你在SSGlobal 网站后台拿到的订阅信息添加到其中

09

注意只要添加URL信息即可,不需要修改其他。

然后选择手动更新订阅,这里在你的服务列表内,就有了你的服务器节点信息,选择对应节点即可开启科学上网

PAC 规则

首次使用PAC需要更新一次PAC规则,操作如下图。

10

这里的PAC规则是从GFWLists更新的,由于其更新速度较慢,所以如果日常使用发现某些网站无法使用,可以手动添加到PAC规则内

11

|| domain , 这里表示匹配所有代理

更多关于用户规则,可以查看这里,使用手册

结语

到这里,基本常用的安装和使用已经完成了,如果测试后仍旧无法正常使用,请仔细检查是否遗漏步骤,也可以与我取得沟通。

HowTo-use-TortoiseGit-for-Windows

Git是目前最先进的版本控制系统,越来越多的业务场景都在使用Git,风靡全球的Github更是让Git版本控制系统名声大震,但是GitHub旨在建立一个开源的生态环境,所以不适合企业内部的管理系统,在之前的文章中,我也讲到了如何搭建GitLab,可以在企业内部自建一套功能完善的Git版本控制系统。

GitLab是一个非常成熟的服务端应用,但是作为一名开发人员,我们在使用GitLab与其他人员协同版本时,需要有一个工作对我们的每次修改更新以及推送,这也是版本控制工具的真正精髓;在不同的平台有着很多丰富的应用软件,所以挑选一款适合自己的Git GUI工具很重要。

目前在众多Git Client之中做的比较好的是SourceTree,并且同时支持Mac和Windows双平台,但是有一个问题,当我们在初次安装时需要验证Atlassian账号,但是Atlassian的注册页面用了requirejs,而且是用了Google的CDN服务,所以必须翻墙,这对很多中国用户的使用造成了不变;所以,今天我在这里推荐一个在Windows平台下同样可以作为Git图形化客户端工具的:TortoiseGit

TortoiseGit 是 TortoiseSVN 的 Git 版本,TortoiseGit用于迁移 TortoiseSVN 到 TortoiseGit,解决了在Windows平台之上没有合适Git图形化客户端的问题,TortoiseGit不仅免费,而且同样支持丰富的语言包,但是需要独立下载语言包安装,默认只有英文,注意语言包与程序版本一定要匹配。

下载

TortoiseGit的官方下载地址是这里:https://tortoisegit.org/download/ ,下载时请注意与你系统的兼容性。

注意TortoiseGit 1.8.16之后的版本不在支持Windows XP 和 Server 2003

因为TortoiseGit官网不在国内,所以在访问下载时速度非常的慢,我将目前的稳定版本2.4上传到我的百度云盘,但是以后我可能不能及时更新,所以如果你对版本要求不是很高,可以点击下面链接下载。

链接: https://pan.baidu.com/s/1eScNjA6 密码: 31hu

如链接失效,您可以通过本页面右下角展开通过邮箱,与我取得联系。

安装

Git for Windows

首先,我们需要安装Git在你的电脑上,这保证你的TortoiseGit运行时所需要的依赖环境。

下载地址:https://git-for-windows.github.io/

同样,因为某些网络的原因,导致我们在下载时也会很慢,所以我也将目前最新2.13版本上传到了我的百度云盘:

链接: https://pan.baidu.com/s/1c12ZvRq 密码: 43yt

安装过程,这里不在展示,通常情况下,你只需要一路点击Next即可,但是如果你想要修改一些设置,例如默认的安装位置,那么你需要注意下,在TortoiseGit初次启动时,你需要手动设置Git.exe的位置。

TortoiseGit

我的测试系统是Windows 7 旗舰版 64位,并且支持TortoiseGit最新的版本。

请依次安装上图中两个软件,注意LanguagePack应该在主程序之后安装,同样,你也只需要一路点击Next即可。

在你安装完成之后,在该目录的空白区域,单击鼠标右键,你应该会看到新增了TortoiseGit的选项,我们选择”TortoiseGit”>“Settings”来初始化我们设置。

修改程序语言为中文

如果英文你的使用不会有影响,你可以略过这一步骤,同样你也不需要下载上面的LanguagePack包。

好了,按照如上图中操作,你应该已经修改了程序语言为中文,再次到空白区域单击测试就可以看到了。

使用TortoiseGit克隆你的项目

在我们安装了好TortoiseGit和Git的基本基础环境之后,我们需要使用TortoiseGit克隆项目,这里我们是在GitHub创建了一个测试项目,你可以直接使用你的项目地址即可。

测试项目

GitHub和GitLab都提供了通过使用HTTPS和SSH的方式,这两种方式有些不同,我会在下面分开讲述如何使用。

SSH验证方式

如果采用SSH验证方式,那么你需要生成一对公钥和私钥,并且将公钥上传到你的GitLab或GitHub上,然后在克隆你的项目时,使用匹配的私钥即可。

那在Windows如何上生成私钥呢?其实我们在安装TortoiseGit时已经默认安装PuTTYgen工具,我们可以利用它来创建秘钥。

打开PuTTYgen,点击generate即可创建密钥,PuTTYgen其实是按照鼠标运行的轨迹来计算的,所以在点击后,我们不停的使用鼠标移动,等待进度条完成就可以了。

当创建完成之后,你可以看到以下以下内容,注意不要关闭,我们要点击Save public keySave private key,并将上public key传到你的GitHub或GitLab账户之中。

注意,我在图中隐去了其他SSH keys信息,我建议你在做类似分享时也注意隐去你的重要信息

好了,接下来,我们就要开克隆我们的项目了,在你想要存放项目的目录内,鼠标右键选择”Git克隆“,然后输入你的项目URL,并且加载我们刚刚生产私钥文件。

注意,在你确认都没问题的情况下,点击确认,然后你就会看到如下页面,如果这个过程中出现问题,请注意检查项目URL和私钥文件是否正确。

到这里,我们SSH验证仓库的方式就全好,接下来我们就可以使用开始进行我们的工作,但在首次提交我们的项目时,需要设置用户名和密码,这是为了方便验证我们的身份。

点击”是“,在弹出的窗口中设定用户名和邮箱,保存即可。

HTTPS or HTTP

在使用GitLab为公司内部仓库时,可以不开通HTTPS验证,HTTP也不会影响我们的验证方式,但是从安全的角度上来说,强烈建议启用HTTPS,HTTPS加密传输可以给我们的代码和用户信息的安全提供更好的保护。

如果使用HTTPS or HTTP的方式,我们不需要增加任何密钥文件或怎样,只需要使用我们现有的GitHub或GitLab账号即可;在你想要存放项目的目录内,鼠标右键选择”Git克隆“,在弹出的窗口中,注意项目URL要是用HTTPS,并且去掉勾选加载密钥选项。

如果你的项目在GitLab上,并且这个项目是一个私有项目,那么这里就会要求你输入你的GitLab用户名和密码,输入正确的用户和密码就可以成功克隆了。

但是,由于我的测试项目在GitHub上,GitHub上的项目默认都是公开项目,所以在这一步骤不会询问我的用户名和密码,只有在我需要将本地更新推送到GitHub时才会验证;所以接下来我在项目目录下新增文件newfile2.txt,

注意,Git不同SVN,Git的提交不会将更新推送到远端服务器,所以我们在提交成功之后,再去手动推送

右键选择Git提交,会弹出提交页面,我们需要这里,输入提交说明信息,和需要提交的文件。

点击”提交之后“,我们会看成功提交的窗口,然后在窗口选择点击推送;

当我们点击推送之后,会要求输入对应的GitHub用户名和密码:

CentOS 7 Configure DNS Server

今天介绍下如何在CentOS 7下部署DNS Server,测试环境中服务端搭建在了CentOS 7,客户端分别在Windows和Linux实现测试。

因为目的是让自建DNS服务器解析公司内部的自定义域名,所以当客户端需要访问外网域名时,DNS服务器会将解析请求转发给ISP的DNS服务器,并会将解析结果缓存,并且只对内网主机的解析请求进行转发,而不会对公网的主机解析请求进行转发。

DNS服务介绍

DNS服务由BIND提供,启动后服务名为named,管理工具为rndc,debug工具为dig,主要配置文件在/etc/named.conf

安装

推荐选择bind-chroot来安装,提高服务的安全性:

1
➜  ~ yum install -y bind-chroot

安装完成之后,启动named-chroot服务,并设置为开机自启动:

1
2
3
4
5
6
➜  ~ systemctl enable named-chroot.service
Created symlink from /etc/systemd/system/multi-user.target.wants/named-chroot.service to /usr/lib/systemd/system/named-chroot.service.
➜ ~ systemctl start named-chroot.service
➜ ~ netstat -ntlp | grep 53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 4515/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 4515/named

配置

首先备份DNS服务端的主配置文件,然后修改其中的内容:

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
➜  ~ cp /etc/named.conf /etc/named.conf.bak
➜ ~ vim /etc/named.conf

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query { 192.168.16.0/24; 192.168.0.0/23; };
recursion yes;
allow-recursion { 192.168.16.0/24; 192.168.0.0/23; };

forward first;
forwarders { 202.96.209.133; 114.114.114.114; };

dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;

bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";

pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};

// 新增一个samzong.local域名.
zone "samzong.local" IN {
type master;
file "samzong.local.zone";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

编辑samzong.local.zone配置文件

首先创建samzong.local.zone文件:

1
2
➜  ~ cd /var/named
named touch samzong.local.zone;

然后编辑文件内容新增:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$TTL 86400
@ IN SOA @ root.samzong.local. (
2016042112 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
43200 ;Minimum TTL
)

NS @
A 10.0.2.6
www A 192.168.16.100
a IN CNAME www.baidu.com.
b A 192.168.16.101

编辑完成之后,重新启动named-chroot让服务生效:

1
➜  named systemctl restart named-chroot.service

客户端验证

1
2
3
4
5
6
➜  named nslookup www.samzong.local
Server: 192.168.16.6
Address: 192.168.16.6#53

Name: www.samzong.local
Address: 192.168.16.100

使用rndc管理DNS解析记录

rndc 常用指令:

1
2
3
4
5
6
7
status          显示bind服务器的工作状态
reload 重新加载配置文件和区域文件
reload zone 重新加载指定的zone
reconfig 重新读取配制间并加载新增的zone
querylog 关闭或开启查询日志
dumpdb 将高速缓存转存到文件,named.conf 有指定文件位置
freeze 暂停更新所有zone状态

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×