目前的需求如下:
家里有一台路由器,简称 R,能够获得一个公网 IP,假设为 128.128.128.128 。路由器下辖局域网段 10.0.0.1/24。
局域网内有一个 SSH 服务,IP:Port 10.0.0.5:22,在路由器上做了个映射 WAN22 => 10.0.0.5:22,这样我在公司就可以连接了。通过配置 ~/.ssh.config:
Host home
HostName home.mydomain.com (指向 128.128.128.128 )
IdentityFile ~/.ssh/certs/home
IdentitiesOnly yes
我实现了在外网和内网下均可以使用ssh home进行连接。当我在外时,packet 经由路由器转发,再到达 SSH 服务器是很合理的。但当我回到家,还继续这么连接的话,数据会在路由器上绕一圈,完全没有办法利用内网之间的优势。虽然速度也很快,但是没有达到内网之间的理论速度,能明显发现路由器负载上升。
最关键的问题是,我比较懒,不想在~/.ssh/config里建立两个连接,因此想问一下有没有合理的解决方案?我想 DNS override 可能是一种,但是估计缓存的问题不好解决。