实验 一、我现在内网装了一台ubuntu虚拟机 安装httpd模拟web 服务器
apt-get install apache2
root@ubuntu:/var/www/html# /etc/init.d/apache2 start
* Starting web server apache2 *
或者这样
root@ubuntu:/# python -m SimpleHTTPServer 80 Serving HTTP on 0.0.0.0 port 80 ...
二、在ubuntu上安装autossh 、ssh也可以实现
root@ubuntu:/var/www/html# apt-get install autossh
当然内网是centos 啊redhat 同理 可能得用yum来安装
三、autossh用法
root@ubuntu:/var/www/html# autossh -M 5678 -NR 10086:192.168.0.49:80 root@192.243.112.193 -p 27022 root@192.243.112.193's password:
这段命令的意思是将外网主机的10086端口与内网IP主机的80端口进行绑定 ,然后每次都要输入远程主机的密码
-M 5678参数,负责通过5678端口监视连接状态,连接有问题时就会自动重连 -N仅仅端口转发,-R绑定ip和端口
四、查看监听
内网:
外网:
五、配置外网主机写一个apache 反向代理
启动反向代理模块
安装apache服务 开启反向代理模块
vim /etc/httpd/conf/httpd.conf #添加如下
启动apache
六、测试访问
如果你不做外网主机的反向代理的话不能直接来访问 得做代理
停掉ubuntu的apache2 启动一个简单的python http测试看
root@ubuntu:/# python -m SimpleHTTPServer 80 Serving HTTP on 0.0.0.0 port 80 ...
访问如下图
七、autossh免密码登陆
在此之前还要解决之前的一个问题,那就是每次内网主机连接外网主机时都需要输入密码,这个问题ssh本身是提供另外一种验证方式——通过密钥验证用户身份,实现自动登录。 生成公钥
复制到远端server
再次运行就不用输入密码
再次查看链接正常