背景
实际场景:现有几台内网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配置
可以参考官网文档,如下图。
当然,必须上一个简洁明了的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;
}
}
如上所示,有多个端口就配置多对进行映射代理即可!
总结
好了,如有帮助则希望一键三连,哈哈哈!!!