我家里有一些机器,这些机器上跑了一堆虚拟机,虚拟机都直接桥接网卡, 这样每台机器都可以暴露出来给局域网访问。为了访问方便, 每个机器最好用名称访问,而不是用IP地址。 例如:两个虚拟机IP: 192.168.1.11,192.168.1.12,我希望可以用vps-sql,vps-dev的方式访问。
首先设置路由器的DHCP服务器,把这些机器的IP地址固定, 然后直接改自己电脑的/etc/hosts:
1 2 |
|
但是所有需要这个列表的机器都要改一遍,有什么更好的办法呢?
我的路由器是RouteOS,可以修改默认推送的DNS设置,以及增加DNS cache。 加了DNS cache之后,就可以直接访问了。
但是又有一个问题:我的工作用机器需要翻墙,翻墙了之后,就会用翻墙服务器的DNS,本地的DNS就取不到了。 万幸的是可以手动修改DNS采用本地的,不过用了本地的DNS,会被国内的GFW投毒, 获取一些国外网站域名信息的时候,DNS数据包会被劫持掉, 那么只有在本地搭建一个加密通讯的的DNS服务器。 话说回来为什么这么重要的基础服务居然还是明文的数据包传输?
我看了一下有dnscrypt,在本地的一台机器A上面装好, 把路由器的DNS设置为这个机器A就好了。 不过这样的解决方案不是很稳定,如果本地机器A挂掉,那么局域网就没有DNS服务,大家都不能上网了。
那么还有一个办法:就是注册一个短域名,把这些机器都绑定成子域名。 虽然这样会把本地网络的信息暴露给了全世界,但是想了一下也没有什么风险。
找了半天,买了一个便宜的llj.clicks域名,配置起来,总算完美地解决了这个问题。