自定义ubuntu livecd
修改/etc/dhcp/dhclient.conf文件:
在访问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 | 经过仔细阅读文档和实际使用观察,确认了长久以来使用systemd-resolve的一个困惑。 |
随着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。
总是忘记:
apt-get install language-pack-zh-hans
一个非常好的网站:https://www.threatcrowd.org
它至少有两个我认为很不错的功能:
其他类似的网站: https://www.malwares.com/
1 | docker exec -it dockername bash |