我一直在使用node.js中的dns模块来测试当前的网络连通性,方法是尝试以固定的时间间隔使用dns.lookup解析固定的主机名(例如google.com):
var dns = require('dns');
dns.lookup('google.com',function(err) {
console.log((err && err.code == "ENOTFOUND") ? 'No available connection' : 'Connection is available')
如何使用tshark专门从网络命名空间内的网络接口捕获流量?在我的例子中,网络接口tun0被移动到称为vpn的网络命名空间中。
通常,运行tshark -f "port 53"会使输出混乱,因为它包括来自网络命名空间最终使用的主接口的DNS查询。
这是我的网络命名空间设置(关于它的价值,这是来自openvpn up脚本这里的:http://www.naju.se/articles/openvpn-netns.html)
$ ip netns add vpn
$ ip netns exec vpn ip link set dev lo up
$ ip link set dev t