1. 程式人生 > >autossh反向隧道

autossh反向隧道

gen 端口 安裝 local ntp 代理 公網 auto ...

實驗目標

有兩臺主機:
	hostA: 阿裏雲公網主機
	hostB: 本地內網主機

需求實現:
	在hostB上使用autossh將hostB的80的端口映射到hostA的8080,使得其他機器訪問hostA的8080從而訪問到hostB的80

實施步驟

1、登錄內網hostB,生成密鑰,並上傳到hostA,實現hostB可以免密登錄
	配置免密登錄	
		ssh-keygen -t rsa
		ssh-copy-id -i .ssh/id_rsa.pub user@hostA
	
	運行80服務
		yum install -y httpd
		systemctl start httpd

	安裝autossh		
		wget http://www.harding.motd.ca/autossh/autossh-1.4c.tgz  
		tar -xf autossh-1.4c.tgz  
		cd autossh-1.4c  
		./configure  
		make install
	端口映射
		autossh -p 22 -M 20522 -NR 8080:localhost:80 root@hostA
		ctrl +z 回到bash
			參數說明:
				-p 22  :表明hostA的sshd端口是22,22可以省去不寫
				-M 20522 :通過20522端口監視連接狀態,連接有問題就會自動重連
				8080:映射到hostA的端口
				localhost:80: hostB的服務端口

2、登錄外網主機hostA
	可以發現已經起來了端口20522和8080
		# netstat -lntp
		Active Internet connections (only servers)
		Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
		tcp        0      0 127.0.0.1:20522         0.0.0.0:*               LISTEN      8937/sshd: root     
		tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      8937/sshd: root
		....     
	這種情況下,我們可以在hostA搭建一個nginx反向代理8080端口,就方便外網用戶訪問

  

autossh反向隧道