背景
想在外网访问家里的服务器设备。
目前手头有:
- 电信光猫,拨号上网,属于电信内网IP,本地IP是192.168.1.1。
- 主路由器(TP-Link)在客厅,wan口对着光猫,本地IP是192.168.0.1,分配192.168.0.x的地址给连着的设备。
- 副路由器(小米wifi)在卧室,wan口对着主路由器,本地IP是192.168.31.1,负责分配192.168.31.x开头的私有地址给卧室连着的电脑和两个树莓派。
开整!
首先,给电信打电话申请公网IP,并且将光猫改成桥接方式,这两步很重要!然后重启光猫。桥接后光猫就不能当作路由器了。(需要改成桥接方式是因为,即使有了公网IP给光猫,但是也PING不通,trace一下也发现被拦截了,好像是光猫在路由状态会丢弃ICMP,所以只能改成桥接方式让其他路由器来获取公网IP。)
然后,主路由器使用拨号上网方式,这样主路由器就有了公网IP。此时主路由器和wan口连着的副路由器下的设备都可以上网了。
再然后,将副路由器改成有线中继模式,就可以给我卧室的设备分配192.168.0.x的私有地址了。最好是绑定IP和MAC地址,这样就可以固定本地设备的私有IP地址。
再再然后,登录主路由器界面,设置端口转发,填写内部私有IP(192.168.0.x)和内部端口号(一般22),以及外部端口号,此时我们在外网上ssh-p 外部端口号 用户名@公网IP地址
,就可以连上你的树莓派/服务器了。
最后,我们申请主路由器(TP-LINK) DDNS域名解析,因为只要重启主路由器设备,公网IP就会变,所以我们需要一个域名来指向这些会跳变的IP。此时我们在外网上通过ssh-p 外部端口号 用户名@ddns域名
来连接!就不需要去记公网IP地址。