实际问题如下:
我的电脑上有vm虚拟机,我有两个网络,一个叫137,一个叫102 ,我现在vm的网络是102的网络(137不允许被vm使用),但是别人都是137的网络,如何让137的局域网访问我的vm中的网站/应用
我的解决办法是使用Nginx来将vm中的102网络反向代理到宿主机上(137), 比如我在vm部署了一个网站,访问地址是102.123.123.10:8080,最终我可以让137的局域网可以访问到这个网站
1.首先我们用宿主机去nginx官网下载nginx https://nginx.org/en/download.html
我下载的是解压版的,直接解压到d:\nginx
2.打开conf 文件夹,找到nginx.conf,编辑,在server 下增加如下配置项:
server { listen 8080; server_name vmWebSite; location / { proxy_pass http://102.123.123.10:8080; root html; index index.html index.htm; } }
3.保存文件,打开cmd 进入到d:\nginx 然后执行命令 start nginx;
4.使用宿主机浏览器访问:http://localhost:8080/ (虚拟机要设置防火墙,允许8080出入站,或者直接关闭防火墙);
5.大功告成(宿主机也要设置防火墙,允许8080出入站,或者直接关闭防火墙)),结果图:
补充一下,远程桌面也可以进行代理,具体配置如下:
events { worker_connections 1024; # 设置每个工作进程的最大连接数 } stream { server { listen 3333; # Nginx监听的端口 proxy_pass 192.168.148.128:3389; # 将请求代理到Windows远程桌面服务的IP地址和端口 } server { listen 2222; # Nginx监听的端口 proxy_pass 192.168.148.129:22; # 将请求代理到Ubuntu远程桌面服务的IP地址和端口 } server { listen 90; # Nginx监听的Web端口 proxy_pass 192.168.148.129:190; } server { listen 91; # Nginx监听的WebApi端口 proxy_pass 192.168.148.129:191; } }