<返回更多

nginx加vpn实现访问内网的云服务器

2021-01-18    
加入收藏

由于疫情的严重,要求在家办公,然后公司有vpn服务器,给员工vpn账号来在家办公。但是有两个问题,第一个问题是给的账号不多,每个人分不到一个。另一个问题是vpn客户端连接必须用widows系统,有一部分员工用的mac笔记本,没法安装软件。

nginx加vpn实现访问内网的云服务器

问题怎么解决?

有两种方案:

  1. 弄一台云服务器,把公司内部要用到的服务(比如数据库,应用服务)都挪到云服务器上,然后员工直接连接云服务器
  2. 也是弄一台云服务器,在云服务器上安装一个vpn去连接内网,然后在云服务器上再安装一个代理软件,你要连接的内网服务(数据库,redis,应用服务器等),都通过代理转发到内网。

毫无疑问第二种方案是比较好的,接下来我就带大家实现第二种方案。

动手解决

其实第二种方案主要就是找一个代理软件装到云服务器上就行了,有很多这样的软件,我这里用的是比较简单并且免费的反向代理软件Nginx,说出这个名字相信很多程序员都大概知道怎么搞了。

以下在云服务器上操作,或者把下载好的nginx拷贝到云服务上

首先去官网 http://nginx.org/en/download.html 下载nginx,如下图选择合适的版本即可

nginx加vpn实现访问内网的云服务器

 

下载完成后解压,进入解压后的目录如下:

nginx加vpn实现访问内网的云服务器

 

进入conf目录,并打开nginx.conf文件(删除了无用的配置即以“#”开头的行),并加入stream部分

stream {
    upstream oracle {
            server 192.168.10.121:1521;
    }
    # 服务器监听1521端口,并进来的流量转发到192.168.10.121服务器的1521端口
    server {
            listen 1521;
            proxy_connect_timeout 60s;
            proxy_timeout 60s;
            proxy_pass oracle;
    }
}

加入后如下:

events {
    worker_connections  1024;
}

stream {
    upstream oracle {
            server 192.168.10.121:1521;
    }

    server {
            listen 1521;
            proxy_connect_timeout 60s;
            proxy_timeout 60s;
            proxy_pass oracle;
    }
}

http {
    include       mime.types;
    default_type  Application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

然后启动,以windows系统举例,收入代开CMD窗口,然后进入到nginx解压的目录里,执行如下命令:

start nginx.exe

然后你就可以在家用你的电脑通过连接"云服务器ip:1521",来实现连接到公司内网192.168.10.121:1521上面了。

后续如果再加其他服务,就直接在ngnix.conf文件的stream模块里再加对应的upstream和server部分即可。

总体下来还是很方便的。

总结

用此方法解决了公司vpn不够和mac电脑无法安装vpn客户端的问题。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>