nginx的stream使用实践,ssh代理,外网映射

背景

实际场景:现有几台内网linux服务器(内网互通),只有一台win服务器具有双网口(内外网)。
起初,对内网的linux服务进行配置时,ssh和ftp连接都是在双网口的win服务器上使用客户端进行。
现使用nginx的stream进行代理出一个22端口,用于外网的隧道连接
另外,我需要将一台服务器上部署的vue项目web服务给映射出一个外网端口,可以外网访问。
以此作为记录。

ssh的通道代理

1. nginx的安装

nginx官网下载
nginx的安装,windows和linux有所不同,这里不多赘述,直接搜索相应教程即可。
PS:此处需要注意,应该是在nginx的1.8版本及以前,在安装时需要对stream模块进行开启。

# linux在执行此步骤时需要带上此参数,
./configure --prefix=/usr/local/nginx --with-stream
#然后在执行make & make install

大于此版本则无需此操作,我使用的是1.22.0版本,正常安装即可。

2. nginx.conf配置

可以参考官网文档,如下图。
nginx的stream使用实践,ssh代理,外网映射_第1张图片
当然,必须上一个简洁明了的demo,如下:

#stream标签和http同级,内部成对使用可以多对,这里列举两个示例
stream {
#先定义两个代理地址,
 upstream my_peoxy_one{
 #这里以一个mysql默认端口为例,具体想代理什么自己修改
       server 166.66.66.66:3306;
    }
 upstream my_peoxy_two{
 #ssh协议的22端口
       server 166.66.66.66:22;
    }
 #在此使用上面定义的代理
 server {
 #监听本机的8098端口,代理到166.66.66.66:3306
        listen 8098;
        proxy_connect_timeout 300s;
        proxy_timeout 300s;
        proxy_pass  my_peoxy_one;
    }
 server {
 #监听本机的8099端口,代理到166.66.66.66:22,可用于隧道连接
        listen 8099;
        proxy_connect_timeout 300s;
        proxy_timeout 300s;
        proxy_pass  my_peoxy_two;
    }
}

stream标签和http同级,内部成对使用可以多对,这里仅列举两个示例。

3. 启动或者重启Nginx

至此,上述的配置完成后,对nginx进行重启。重启后生效即可外网进行隧道连接。
对于不同软件的隧道连接配置方式。这里直接贴两个链接。
xshell隧道连接配置
mobxterm隧道连接配置

外网映射

其实我这里还有一个需求,就是将一台服务器上部署的vue项目web服务给映射出一个外网端口。
该vue的web项目是通过nginx进行部署的。

操作过程

其实也好理解:就是在外网win服务上的nginx中,配置对web服务器的监听端口的代理。示意如下:

stream {
#定义代理地址,
 upstream my_peoxy_three{
 #这里是web服务器的nginx的监听端口
       server 166.66.54.54:9078;
    }
    
 server {
 #监听本机的9078端口,代理到166.66.54.54:9078
        listen 9078;
        proxy_connect_timeout 300s;
        proxy_timeout 300s;
        proxy_pass  my_peoxy_three;
    }
}

如上所示,有多个端口就配置多对进行映射代理即可!

总结

好了,如有帮助则希望一键三连,哈哈哈!!!

你可能感兴趣的:(服务器,nginx,ssh,服务器)