实验目标

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

  

05-12 00:13