您现在的位置是:首页 >其他 >Nginx本地指定网络连接反向代理和netsh机器转发网站首页其他

Nginx本地指定网络连接反向代理和netsh机器转发

PascalMing 2024-06-04 10:27:41
简介Nginx本地指定网络连接反向代理和netsh机器转发

1、主机转发

      在网络中两台或多台主机,仅暴露一台的IP,其他处于受限状态,在Windows下可以用自带的portproxy功能实现。仅支持tcp协议的端口转发,前提需要作为portproxy的主机需要安装IPV6,安装可以不启用IPV6。

配置方法

假定需要通过192.168.31.8的8440端口连接192.168.31.118的18440端口,则需要在192.168.31.8主机的命令行输入如下语句

netsh interface ipv6 install

netsh interface portproxy add v4tov4 listenaddress=192.168.31.8 listenport=8440 connectaddress=192.168.31.118 connectport=18440

多个端口的转发,添加多条portproxy add记录。

如果想取消上面配置的端口转发,可以用如下语句:

netsh interface portproxy delete v4tov4 listenaddress=192.168.31.8 listenport=8440

如果想查看已经配置了哪些端口转发,可以用如下语句:

netsh interface portproxy show v4tov4

考虑到端口转发的冗余,可以多台主机都配置端口转发,且不用指定本地监听地址,这样可以通过操作系统提供浮动地址来实现冗余:

netsh interface portproxy add v4tov4 listenport=8440 connectaddress=192.168.31.118 connectport=18440

2、复杂路由

      上面提到的转发,利用Windows自带的功能执行几条命令就可以搞定。但如果主机有多网卡连接到不同的子网,子网之间还存在相同的IP他就无能为力,解决这个问题需要使用开源软件nginx。

     nginx是什么,有哪些优势,来自chartGpt的回答如下:

nginx是一款高性能的Web服务器、反向代理服务器以及电子邮件服务器,采用异步、事件驱动的架构,支持高并发、高吞吐量的请求处理。它的主要特点有:

1. 高并发性能:采用异步(非阻塞)I/O模型,一次可处理上万个并发连接,支持多进程、多线程以及多核CPU。

2. 节省硬件资源:占用内存少,CPU占用率低,可以在低配置的服务器上运行。

3. 可扩展性:支持动态模块加载和动态配置文件重载。

4. 高可靠性:提供健壮的服务监控机制、自动故障转移、热备等功能。

5. 负载均衡和反向代理:作为反向代理服务器,可以实现负载均衡、高可用性和多站点统一入口等功能。

6. 支持HTTP、HTTPS、SMTP、POP3、IMAP等协议:可以作为电子邮件服务器,支持SSL/TLS协议的加密和解密。

综合以上优势,nginx适用于高并发、高性能、高可靠性、高扩展性的Web应用场景,例如Web服务、大型门户网站、在线视频、企业级网站和电子商务等。

     nginx可以实现复杂的协议解析和http/https路由规则,实现我们是需求,仅使用stream代理即可。

       主机使用两块独立的网卡连接到vlan01和vlan02两个子网,这两个子网均存在一个192.168.31.8的设备,在配置时需要为连接vlan01的网卡配置ip 192.168.31.100,连接vlan02的网卡配置ip 192.168.31.200,这两个IP不要和两个子网内的IP有重复。

      实现此路由的nginx.conf配置如下:

stream {
    upstream vlan01 {
        zone upstream_tcp 64k;
        server 192.168.31.8:18440 max_fails=3 fail_timeout=30s;
    }
    upstream vlan02 {
        zone upstream_tcp 64k;
        server 192.168.31.8:18440 max_fails=3 fail_timeout=30s;
    }
    server {
        listen 8440;
        proxy_pass vlan01;
        proxy_bind 192.168.31.100;
    }
    server {
        listen 8441;
        proxy_pass vlan02;
        proxy_bind 192.168.31.200;
    }
}

   当不使用proxy_bind配置时,效果与portproxy相同。

3、附录

nginx下载地址:nginx news

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。