Linux 网络命名空间 (netns),如何进入隐藏的 netns

Linux 的网络命名空间 (netns) 是非常有用和好玩的功能,可以允许进程进入一个隔离的网络空间,在这里面可以安全地进行网络测试、iptables 策略测试等。

通常情况下,一般我们用 ip netns add 添加新的 netns,然后我们可以用 ip netns list 查看所有的 netns。但有的时候进程的 netns 却并没有显式导出,ip netns list 无法列出它,比如 docker 的 container 的网络空间。

也许我们还是需要进入到那个进程的 netns,怎么办呢?答案是做个符号链接就可以了。

ln -sf /proc/<pid>/ns/net /var/run/netns/$ns

简要说明一下这个命令:每个进程的网络命名空间都是通过 proc 文件系统导出来了的,位于 /proc/<pid>/ns/net (这个文件不可读,它只是相当于一个访问点);而 ip netns list 命令是从 /var/run/netns 这个路径读取 netns 列表的,因此直接将进程的命名空间链接到 /var/run/netns 目录下就可以了。

这之后,可以按照以往的 ip netns $ns exec /bin/bash 进去这个命名空间玩耍了。

Fuck Google Fonts

不是因为 Google 在国内被屏蔽而导致诸多网站加载 Web Fonts 或者 JQuery 缓慢。

让自己的网站去调用第三方网站的东西,本来就是个傻逼主意。说实话吧,自己的网站上放个压缩的 JQuery 或者字体能有个多大的事?!别说用第三方的能省流量、加载速度,事实是这些都是极其小的影响。既然都喜欢让 Google 通过 js 去知道你的网站访问情况,干脆你不就把网站全交给 Google 算了!

近期小结

  1. 使用 ipset 替换了许多 iptables 规则的匹配。
  2. 再熟悉了一下 iproute 这套工具里面的东东。诸如 ip netns 等东西都非常有用
  3. 彻底只允许 cloudflare 访问我的那个 ip 地址了,隐藏掉其它的访问。

Cloudflare universal SSL

Cloudflare 最近宣布的 universal SSL 对免费用户也开放,这真的是个不错的功能,即便很多人不相信 Cloudflare,认为这是史上最大的中间人攻击,但是既然都用了 CDN,你还能去想那么多么?我认为这个功能对于个人或其它非关键站点来说还是很实用的,个人而言,主要是看中了一点——使用 CDN 还可以隐藏自己的服务器地址,避免一些信息的泄露。

但是不得不说下,Cloudflare 那头颁发证书的速度实在是太慢了,虽然原因很明显——有很多站点要逐个颁发,但。。。还是未免也太慢了点,只能先暂停掉了。