實驗 一、我現在內網裝了一臺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

再次運行就不用輸入密碼

再次查看鏈接正常