有时候多个容器不是在一个 compose 中启动的,不方便 link 起来或者是有些服务是直接跑在主机上的,所以从容器访问主机的场景十分普遍,我们需要一个类似 127.0.0.1 的 IP 地址能在容器中访问到主机。在 linux 环境中这个问题很好解决,安装完 docker 之后会出现一个 docker0 的网卡,这个网卡上绑定的 IP 就可以在容器中访问,并指向主机,默认情况下会是 172.17.0.1

但是 mac 和 windows 开发环境下不会出现这个网卡也没有这样一个 IP 来访问,不过最新的 docker 18.03 加入了一个 feature,在容器中可以通过 host.docker.internal hostname 来访问主机,解析得到的 ip 是 192.168.65.2 正是 docker 的设置中的子网网段

详情参考官方文档:
https://docs.docker.com/docker-for-mac/networking/#there-is-no-docker0-bridge-on-macos

当源代码文件多起来的时候原本方便的单层目录变得杂乱无章起来,但是 golang 又是以文件夹分包的,如果直接按照功能拆分包就会遇到变量共享的问题,参考了 gogs, beego 的代码后发现一个类似存放配置、全局变量的包变得必不可少,同时结合多年的 laravel 脚手架习惯得出下面的文件结构:

阅读全文 »

本来 wsl on conemu 已经是一个可以满足日常使用的方案了,但是实际开发过程中需要使用到 native 的命令时,例如 go, node 之类,需要安装两份开发环境,总归有点洁癖,于是尝试了回归 cygwin 的方案。

首先安装 cygwin
在安装过程中可以使用 ustc 的镜像源 http://mirrors.ustc.edu.cn/cygwin/ 选择 zsh, wget, openssl, openssh 等常用的包。

安装完成之后设置 conemu 的 Task
新建一个 task 在 Commands 中填入 D:\cygwin64\Cygwin.bat 保存即可,如果需要使用 zsh,修改这个批处理文件中的 bashzsh 即可。

同时推荐安装 apt-cyg 方便后期增删包:

1
2
3
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg -O /bin/apt-cyg
chmod +x /bin/apt-cyg
apt-cyg mirror http://mirrors.ustc.edu.cn/cygwin/

最后安装好 oh-my-zsh 效果完美,性能也还将就 :)

本来前面文章提供的 TP-Link POE AC 方案已经不错了,但是 TL-R479GPE-AC 的路由功能太弱(或者是没有开发给网页设置)导致放在多个内网主机上的服务无法直接暴露给外网,只能在 nas 上开了几个反代。而且没有自定义 dns 记录的途径,又得在内网跑一个 dns 服务,强迫症迫使我放血入了一套 Unifi, usg + unifi-switch-8-60wx + wap-ac-iw * 2

安装

我的局域网网段是 192.168.0.1/24, usg 的默认 IP 是 192.168.1.1
先在以前的路由器上关闭 dhcp 服务,修改网关 ip 为 192.168.0.2,固定好本机 IP 以及设置网 关为 192.168.0.1
先将 usg lan 口接入电脑,访问 https://192.168.1.1 修改网关 IP 为 192.168.0.1
进入已经安装好的 unifi controller 例如 https://192.168.0.12:8443,这时 usg 就会出现在待采用列表里,采用之后设置 PPPOE 拨号,dhcp 等等
以上步骤完成之后就可以断掉老路由器了,再把 unifi switch 以及 ap 接入对应端口并采用,安装完成。

阅读全文 »

最近入了一个 Sonos Playbar 和两个 Play:1 体验很棒,但是把 Play:1 放到不同房间后 app 控制器经常无法访问到播放器,尝试重启路由器之后发现虽然 wifi 是支持漫游的但如果所有 Sonos 播放器没有接入同一台 AP 或者和 APP 控制器没接入同一台 AP 就会出现控制器无法找到播放器或者只能显示一部分播放器的问题

查阅了官方文档后发现 Sonos 早就有应对方案:

阅读全文 »
0%