通过ssh反向代理实现外网主动向内网通信 | 实例:实现个人云中心,实现离线下载,并可以远程控制
admin 提交于 星期日, 02/01/2015 - 23:07
背景:
- 公网的IP是有限的,运营商提供的ip不太可能是公网的ip, 就算是也做了非常多的限制
- 由于众多防火墙的缘故,中国的网络是由众多的小型互联网组成的,内部主机是无法直接进行通信的;
- 由于众多智能设备的成长,局域网非常阻碍网络的发展。
原理:
- 虽然外网不可以向内网请求连接,但内网可以向外网建立通信的连接
- 可以通过连接后,再反向传输数据
- openssh有很成熟的实现反向传输数据,可以端口的转发
- 同时,传输的数据是经过认证和加密的
实例:实现个人云中心,实现离线下载,并可以远程控制
物理硬件:
- 1. 路由器(带usb,型号支持刷openwrt)
- 2. 移动硬盘(推荐)或U盘
软件:
openwrt固件
openssh-server, openssh-client, openssh-keygen
aria2
- 1. 设置路由器,使其可以上网
- 2. 挂载移运硬盘
- 3. 使用公钥实现,来实现不使用密码登陆
- 4. 使用openssh-server, openssh-client, openssh-keygen, autossh, 移除默认的ssh server
- 5. 在自己的服务器上搭建yaaw,设置nginx, 把一个域名的请求转到本机的6800端口
- 6. 绑定外网服务器的6800端口到路由器的6800端口
autossh -M 5678 -fNR 6800:localhost:6800 tianbao@xx.xx.xx.xx -i ~/.ssh/linode >/dev/null 2>&1 &
linode为私钥
- 7. 监控绑定状态,如果失败则重连
- 8. aria以服务运行,实现多线程离线下载