ubuntu 18.04中设置dns server

ubuntu 18.04及之后的版本,发生的一个变化,就是网络地址设置的更改。

在之前的版本,修改ip地址、dns地址等都可以在/etc/network/interface中进行修改,dns可以在/etc/resolv.conf进行修改。而在18.04版本后,ubuntu启动了netplan系统,所有这些修改都使用netplan进行调整,具体配置都放在/etc/netplace/*.yaml文件中:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      addresses: [ 210.77.77.35/24 ]
      gateway4: 210.77.77.254
      nameservers:
        addresses: [114.114.114.114,210.77.68.240]

参考:https://www.techrepublic.com/article/how-to-set-dns-nameservers-in-ubuntu-server-18-04/

使用cloudflare CDN构建网站

cloudflare提供了免费的CDN(内容分发网络),周末实际试验了一次。

首先要注册,登陆后需要将现有的网站对应的dns解析都重新在cloudflare实现,包括A记录、MX记录等,设置完成后要将对应的nameserver解析到cloudflare的nameserver。登上一段时间后就可以自动代理内容了。

使用cloudflare存在的问题,主要是访客IP地址的解析问题,其自身提供了一个访客分析系统,但通常我们都还希望使用自己的访客分析系统,以及google analytics或piwik等,甚至直接解析apache log。google analytics有插件,可以在cloudflare上直接设置,piwiki上有一段专门的代码可以设置cloudflare访客。但apache log需要安装一个单独的mod来处理,暂时还没有试验。

解析完成后,ping对应的域名地址,就是cloudflare的ip了,同时提供了免费的ssl证书(这点不错)。

ubuntu server中设置dns

服务器安装当时没有设置dns服务器,因此需要重新设置,之前一直是直接在/etc/resolv.conf添加,但现在ubuntu server要是重启之后这个新加的信息就会丢失。
解决办法是修改/etc/resolvconf/resolv.conf.d/base,或在这个目录下新建一个文件,如tail之类,其内容添加为dns,如

nameserver 8.8.8.8

然后重启服务:

sudo service resolvconf restart

地震导致国内网络出口问题

国内网站正常,但是国外网站都有问题,基本都访问不了。
检查DNS后,发现是DNS出问题了,是台湾地震导致的。

上海市电信有限公司大客户部
12月26日晚20点25分,台湾发生7.2级地震,使众多路由经过台湾的海光缆系统陆续发
生中断,其中有亚太一号、亚太二号、中美、亚欧三号、Flag、C2C等,和中国电信相
关的海缆中断情况如下:
1. 中美 海缆于12月26日20:25 距离台湾枋山登陆站 9.7公里左右发生中断;
2. 亚欧三号海缆于12月26日20:25 距离台湾枋山登陆站 9.7公里左右发生中断;
3. 亚太二号海缆S7于12月27日00:06距离台湾淡水登陆站904公里左右发生中断;
4. 亚太二号海缆S3于12月27日02:00距离崇明登陆站2100公里左右(靠近台湾处)发
生中断;
5. Flag光缆亚太系统于12月26日20:43在韩国到香港段中断;
6. Flag光缆亚欧段于12月27日04:56在香港到上海段中断。
以上情况使中国电信到北美、台湾等方向的互联网电路大量中断,到欧洲、亚太等方
向的专线、话音电路部分中断。

不过,昨天晚上我这边好像还没有问题,就是刚刚10点之后出现的问题,不知道是什么原因。

使用本地DNS缓存,加速网络访问

本地的DNS服务器不是很稳定,正好看到这篇文章
首先安装:

$sudo apt-get install dnsmasq

然后编辑/etc/dnsmasq.conf
修改为:

listen-address=127.0.0.1

编辑/etc/dhcp3/dhclient.conf
修改为:

#supersede domain-name “fugue.com home.vix.com”;
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope;

编辑/etc/resolv.conf:

search westgis.ac.cn
nameserver 127.0.0.1
nameserver 210.77.69.1
nameserver 210.77.68.240
nameserver 210.77.69.2

重启服务:

$sudo /etc/init.d/dnsmasq restart

测试,执行两次就能看出查询时间的差异了:

$dig google.com

dns中的小错误

晕,新加了一个域名。
然后重新启动DNS,启动正常。
但无法解析。
最后才发现是配置文件中多写了一个字符。