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

由于疫情的严重,要求在家办公,然后公司有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_connections1024;}stream {upstream oracle {server 192.168.10.121:1521;}server {listen 1521;proxy_connect_timeout 60s;proxy_timeout 60s;proxy_pass oracle;}}http {includemime.types;default_typeApplication/octet-stream;sendfileon;keepalive_timeout65;server {listen80;server_namelocalhost;location / {roothtml;indexindex.html index.htm;}error_page500 502 503 504/50x.html;location = /50x.html {roothtml;}}}然后启动,以windows系统举例,收入代开CMD窗口,然后进入到nginx解压的目录里,执行如下命令:
start nginx.exe然后你就可以在家用你的电脑通过连接"云服务器ip:1521",来实现连接到公司内网192.168.10.121:1521上面了 。
后续如果再加其他服务,就直接在ngnix.conf文件的stream模块里再加对应的upstream和server部分即可 。
总体下来还是很方便的 。
总结用此方法解决了公司vpn不够和mac电脑无法安装vpn客户端的问题 。

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


    推荐阅读