公网 IP
因为 IPv4 的限制,ip 是有限的。
所以会借助 NAT 进行处理,我们的路由器很可能是没有公网 IP 的。
如何判断路由器 IP 是否共有
(1)登录路由器,查看路由器 IP-A
(2)直接百度搜索 【ip 地址】,获取公网 IP-B
如果二者相同,则说明为公网 IP
如果不是公网 IP
如果不是公网 IP 就无法直接访问。
我们可以借助端口转发+公网服务器来完成。
公网服务器
环境
内网本地服务 IP:192.168.1.100
内网路由器 IP: 101.245.198.155(可以不是公网 IP)
公网 IP 地址:121.40.66.100
步骤
把服务器部署在内网机器上,比如我的博客在内网可以访问: 192.168.1.100:8088
登录路由器,配置“端口转发”,把请求路由器8088端口的请求,转发到请求 192.168.1.100:8088
登录公网服务器,执行远程端口转发命令:
ssh -C -f -N -g -L 80:101.245.198.155:8088 root@101.245.198.155
表示,请求公网80端口的请求,会被转发到路由器(101.245.198.155)的8088端口
参数解释
root@101.245.198.155
其中 root 其实是连接在当前路由器下的用户
可以在【路由器】-【DHCP服务器】-【客户端列表】进行查看。
ssh 免密登录
转发肯定需要授权,不然直接转发过去不就乱套了。
所以执行上述命令时,可能会让你输入密码。为了后期默认可以重连,可以用下面的方式实现免密登陆。
公网服务器==》101.245.198.155
保持连接不断
借助 linux 系统的定时任务
查看任务
crontab -l
创建任务
crontab -e
每小时重连一次
0 * * * * sh conn.sh
免费的三方工具
天下没有免费的午餐。
注意
-
限制较多
-
数据的安全性。所有信息都会经过服务器。