nginx转发sftp请求,ssh远程登录

1 篇文章 0 订阅
1 篇文章 0 订阅

1.背景
公司内部为了加强服务器网络的权限管控,对某些网端进行了登录限制,也就是说,即使你有服务器的账号密码,但是想要远程登录到服务器也是没有权限的。
有些权限控制了太死,感觉是为了限制而限制,比如开发人员需要获取测试服务器上的系统日志,也不允许开放权限,导致解决问题的效率大大下降。
和运维人员沟通无效,之能自己找路子。
2.nginx配置代理sftp请求
根据我描述的背景,本地环境与目标环境的网络无法通信,需要存在一台中间服务器,它与本地环境和目标服务器均能通信。类似一个中转站,帮我们拐了一个弯。
在这里插入图片描述

在这个中转站安装一个nginx,安装编译必要的模块,通过监听不同的端口,管理转发至不同的服务器上。

下载nginx包

wget http://nginx.org/download/nginx-1.12.2.tar.gz

解压

tar -zxvf nginx-1.12.2.tar.gz

编译nginx模块

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module

编译

make

安装模块

make install

编辑配置文件

vi  /usr/local/nginx/conf/nginx.conf

加入以下stream配置项内容

events {
    worker_connections  1024;
}
stream {
    upstream sftp {
    hash $remote_addr consistent;
    server 192.168.xxx.xx:22 max_fails=3 fail_timeout=60s;
    }
    server {
        listen 90; #端口可以自己定义
        proxy_connect_timeout 60s;
        proxy_timeout  300s;
        proxy_pass sftp;
    }
}
http {
  ...
}

配置说明:
1.nginx默认是不能代码sftp请求的,需要加载对应的模块,否则会提示无法支持相应配置。
2.示例中配置的是监听90端口,当90端口收到请求,会转发给对应的服务器地址的22端口。
3.若需要配置多个转发路由,增加多个upstream与server即可。

检查nginx配置是否正确

/usr/local/nginx/sbin/nginx -t

动态加载nginx配置,未启动无需手动加载

/usr/local/nginx/sbin/nginx -s reload

启动nginx

/usr/local/nginx/sbin/nginx

这样配置就完成了,使用sftp工具链接nginx地址地址和对应监听的端口,即可链接到转发的服务器上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值