修改/etc/dhcp/dhclient.conf文件:

  1. 将supersede设置成指定的dns服务器
  2. 将request选项中domain-name, domain-name-servers,domain-search这三个请求去除

在访问myip.cn和ip.cn的过程中,发现电信宽带通存在劫持行为,当通过http 80访问网站时,访问目标网站显示的ip地址为 183.240.196.65和118.26.137.157, 这两个地址均不是在无线路由器上分配到的公网地址。
存在两种可能,宽带通劫持了访问或者无线路由器劫持了访问,需要更深入的探测这种劫持行为。

https://wiki.freedesktop.org/www/Software/systemd/writing-resolver-clients/

在ubuntu下观察系统的域名解析总是会碰到非常奇异的case,比如当你ping一个自定义的域名时,你会发现在某些情况下,并没有触发相应的udp 53端口访问,这种没有触发的原因还不像是简单的cache机制造成的。

深入观察systemd的域名解析服务,systemd-resolved.service,可以看到它调用的是/lib/systemd/systemd-resolved, 如果进一步man systemd-resolved会看到它有一个说明,建议在特定的操作系统环境下,可以调用由systemd所提供的api来查询域名而不是传统的glibc的方法,主要优点是这是一个异步的查询。

它所推荐的调用api说明在:https://www.freedesktop.org/wiki/Software/systemd/resolved/
,在这个文档里面提供了一个调用的例子,可编译使用:https://wiki.freedesktop.org/www/Software/systemd/writing-resolver-clients/。

根据这些信息,可以查到在ubuntu里面,最终systemd所使用的解析服务器,在运行的时候,归集在/run/systemd/resolve/resolv.conf文件中,在里面可以看到所有系统能搜索到的dns配置。引起我配置干扰的选项在于我曾经有一次设置在wifi的接口上配置了特定的dns地址。
令人困扰的表现在于,当调用ping的时候,它优先选择从接口地址上配置的域名服务器,而在调用例子的时候,它优先查询的是/etc/resolve.conf配置的域名地址。

2017年11月2日更新

1
2
3
经过仔细阅读文档和实际使用观察,确认了长久以来使用systemd-resolve的一个困惑。
当在/etc/resolv.conf中配置一个vpn隧道的地址时候,当笔记本合上又开启时,systemd-resolve会验证这个地址的有效性,当vpn隧道地址不能正确获得的时候,它就会自动转向到从dhcp上获得的dns地址,从而导致域名解析混乱。
所以解决这个问题的办法就是在wifi或者物理网口的配置界面上,把接收来自dhcp的dns选项关闭即可。

随着ubuntu 17.10的发布,ubuntu终于告别了unity,全面启用gnome.
最头痛的莫过于系统托盘了,gnome的人不可理喻的认为系统托盘无用,官方去掉了对系统托盘的支持。幸好在gnome上有人开发KStatusNotifierItem/AppIndicator Support来恢复这个功能,然后为了为了习惯于在系统状态栏的右上角显示,再安装TopIcons插件。
Ubuntu 17.10据此做了一个完整的解决方案,即自己写了一个Ubuntu AppIndicators插件用来替代KStatusNotiifierItem和TopIcons。顺带提一下,它的Ubuntu Dock用来实现Unity传统的左侧Dock。
如果要确保Ubuntu 17.10的系统托盘能正常显示,则保证只需要安装官方的那个插件即可。
但是仅仅如此还不够,依然有很多应用无法显示系统托盘,原因在于,ubuntu将桌面环境变量声明为:

1
declare -x XDG_CURRENT_DESKTOP="ubuntu:GNOME"

而之前很多应用,在识别系统环境的时候,识别的是”Unity”,导致系统托盘显示失败。根本上当然要改变应用软件才行,不过一个苟且的解决方案就是,在当前的系统环境下,强行声明:

1
declare -x XDG_CURRENT_DESKTOP="Unity"

然后再启动应用,即可正常显示系统托盘。

再顺带附送一句,如果用户自己安装的gnome session插件,安装后的目录在:
~/.local/share/gnome-shell/extensions。

一个非常好的网站:https://www.threatcrowd.org
它至少有两个我认为很不错的功能:

  1. 它可以得到域名的解析历史
  2. 它可以根据ip地址做反向dns查询,这个查询比大多数宣称有此功能的网站都要做的好
  3. 它可以判定哪些网站是恶意网站

其他类似的网站: https://www.malwares.com/