感谢腾信软创博客站提供技术方案
NGINX代理SSH协议
增加配置信息
在nginx的主配置文件中,最下方,所有的{} 以外,增加 一个代码块(和http{}平级)如下:
stream {
include /etc/nginx/stream.d/*.conf;
}
然后 在nginx 文件夹下,新建 stream.d 文件夹
⚠️如果您使用docker安装的nginx,请确保以下新建的文件夹已被挂载,否则无法生效
mkdir stream.d
接下来,在stream.d 文件夹中,创建一个文件,我这里用了协议名和ip做文件名
vi ssh37.conf
下一步的时候,输入文件内容 (以下内容寓意 访问本机ssh 1088端口,则会访问到192.168.22.37的22端口)
⚠️ server 下面的 listen 后的 1088 就是客户端最终访问服务器时用的端口(如果是阿里云,需要注意,这个端口需要在安全策略中开通)
⚠️如果您使用docker安装的nginx,请确保1088端口已绑定nginx容器实例,否则无法访问
server {
listen 1088;
proxy_pass 192.168.22.37:22;
proxy_connect_timeout 1h;
proxy_timeout 1h;
}
最后我们保存退出,执行重新加载配置文件即可完成配置
nginx -s reload
访问方式
接下来我们可以通过客户端进行测试。
ssh 用户名@服务器A的外网ip -p 1088
如果没有问题,即可看到要求输入密码的提示框,输入后即可登录
配置说明
- proxy_pass 后的ip是转发目标ip和端口
- proxy_connect_timeout 连接时间,根据实际情况修改即可
- proxy_timeout 连接时间,根据实际情况修改即可
评论区