autossh反向隧道

倖福魔咒の 提交于 2019-11-28 02:20:29

实验目标

有两台主机:
	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端口,就方便外网用户访问

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!