公网 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

SSH 免密登录

保持连接不断

借助 linux 系统的定时任务

查看任务
crontab -l

创建任务
crontab -e

每小时重连一次
0 * * * * sh conn.sh

免费的三方工具

天下没有免费的午餐。

注意

  • 限制较多

  • 数据的安全性。所有信息都会经过服务器。

拓展阅读

ssh 内网穿透

参考资料

如何把内网机器变成外网可以访问的服务器

怎样从外网访问内网服务器