Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1424066
  • 博文数量: 188
  • 博客积分: 1784
  • 博客等级: 上尉
  • 技术积分: 2772
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-05 22:20
个人简介

发上等愿,结中等缘,享下等福;择高处立,就平处坐,向宽处行。

文章分类

全部博文(188)

文章存档

2020年(12)

2019年(11)

2018年(4)

2017年(3)

2016年(11)

2015年(22)

2014年(19)

2013年(25)

2012年(32)

2011年(49)

分类: 系统运维

2019-08-28 13:48:41

接触Linux恐怕对SSH再熟悉不过了,还有scp,sftp各种方便的功能,一般的使用都需要ip:port(如果不是默认22的话),但有些情况比较特殊,就是想连接一台内网主机(比如公司内网,当然你肯定做不了Port Forwarding,除非你想在公司防火墙上拆个洞)。稍懂一点网络的童鞋会明白,Internet上去主动连接一台内网是不可能的,一般的解决方案分两种,一种是端口映射(Port Forwarding),将内网主机的某个端口Open出防火墙,相当于两个外网主机通信;另一种是内网主机主动连接到外网主机,又被称作反向连接(Reverse Connection),这样NAT路由/防火墙就会在内网主机和外网主机之间建立映射,自然可以相互通信了。但是,这种映射是NAT路由自动维持的,不会持续下去,如果连接断开或者网络不稳定都会导致通信失败,这时内网主机需要再次主动连接到外网主机,建立连接。
配置公网的服务器
修改ssh配置文件
vi /etc/ssh/sshd_config

#连接相关配置
GatewayPorts yes # 是否允许远程主机连接本地的转发端口
TcpKeepAlive yes # 是否保持连接
ClientAliveInterval 30 # 心跳发送间隔
ClientAliveCountMax 5 # 心跳发送最大失败次数

配置内网的服务器
1、配置免密登录公网的服务器

用ssh-keygen生成密钥
ssh-keygen

# 这里填写的路径是最终生成密钥的路径,一般用括号给出的
Enter file in which to save the key (/root/.ssh/id_rsa):

# 一般为空,直接回车即可
Enter passphrase (empty for no passphrase):
same passphrase again:

用ssh-copy-id将公钥复制到远程机器中
# 路径填写上面生成密钥的路径
ssh-copy-id -i ./root/ssh/id_rsa.pub  用户名@公网机子ip

2、安装autossh
yum -y install autossh

如果提示没有可用包,则下载源码编译安装:
sudo yum install wget gcc make
wget
tar -xf autossh-1.4e.tgz
cd autossh-1.4e
./configure
make
sudo make install

3、配置公网服务器远程代理
# 用公网机器(比如:123.123.123.123)的80端口代理本地的8080端口
autossh -M 8888 -fCNR 80:localhost:8080 root@123.123.123.123

-M:这个参数指定一个本地端口,用该端口来监视跳板机是否正常,否则重连
注意:如果要通过 autossh 指定多个映射,那么 -M 参数要不同,否则因为本地端口冲突无法生效
-f:后台执行ssh指令
-C:允许压缩数据
-N:不执行远程指令
-R:将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
注意(拿这个例子来说):还要开放公网服务器的80端口、内网服务器的8080端口。
4、测试
拿本例来说,访问公网服务器的80端口,即可反向代理到内网机器的8080端口

阅读(8295) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~