首页 > 其他分享 >MDZ UPnP和端口映射 区别

MDZ UPnP和端口映射 区别

时间:2024-06-06 16:48:12浏览次数:27  
标签:网关 主机 addPortMappingAction MDZ setArgumentValue UPnP 端口映射

DMZ(demilitarized zone):可以简单理解成把网关的全端口转发到指定内网主机上,只能指定一台主机。这是一种静态全端口映射。这个协议只要早网关开启就行了。

UPnP(Universal Plug and Play):这个协议的目的是动态的映射网关的指定端口到指定主机上,可以一把网关的不同端口映射到不同内网主机的不同端口上。这个协议需要网关开启,然后内网的主机操作系统支持,并且应用主动申请才能使用。

下面是一段java请求UPnP的接口,目的是把网关的8080 端口映射到192.168.1.100:8080

// 导入相关类和库
import org.cybergarage.upnp.*;
import org.cybergarage.upnp.device.*;
import org.cybergarage.upnp.ssdp.*;

public class UPnPPortMappingExample {
    public static void main(String[] args) {
        // 创建 UPnP 控制点对象
        ControlPoint controlPoint = new ControlPoint();
        
        // 启动 SSDP 发现
        controlPoint.start();

        // 搜索 UPnP 设备
        Device dev = controlPoint.getDevice("urn:schemas-upnp-org:device:InternetGatewayDevice:1");

        // 确保获取到了设备
        if (dev == null) {
            System.out.println("未发现 UPnP 设备");
            return;
        }

        // 获取 IGD 服务
        Service igd = dev.getService("urn:schemas-upnp-org:service:WANIPConnection:1");

        // 确保获取到了服务
        if (igd == null) {
            System.out.println("未发现 IGD 服务");
            return;
        }

        // 获取 WAN IP 地址
        Action getExternalIPAddressAction = igd.getAction("GetExternalIPAddress");
        getExternalIPAddressAction.setArgumentValue("NewExternalIPAddress", "");
        getExternalIPAddressAction.postControlAction();

        String externalIPAddress = getExternalIPAddressAction.getArgumentValue("NewExternalIPAddress");
        System.out.println("WAN IP 地址:" + externalIPAddress);

        // 添加端口映射规则
        Action addPortMappingAction = igd.getAction("AddPortMapping");
        addPortMappingAction.setArgumentValue("NewRemoteHost", "");
        addPortMappingAction.setArgumentValue("NewExternalPort", "8080");
        addPortMappingAction.setArgumentValue("NewProtocol", "TCP");
        addPortMappingAction.setArgumentValue("NewInternalPort", "8080");
        addPortMappingAction.setArgumentValue("NewInternalClient", "192.168.1.100");
        addPortMappingAction.setArgumentValue("NewEnabled", "1");
        addPortMappingAction.setArgumentValue("NewPortMappingDescription", "My Port Mapping");
        addPortMappingAction.setArgumentValue("NewLeaseDuration", "0");
        addPortMappingAction.postControlAction();

        System.out.println("端口映射已添加");
    }
}

端口映射:把网关的端口映射到指定主机的端口上,这个也是可以设置多个,处于DMZ和UPnP之间。

DMZ,UPnP,端口映射的目的都是把网关的请求转发到内网主机上,如果是用到同样的端口他们是冲突的。他们有一定的优先级,不同设备上可能不一样,

DMZ>端口映射>UPnP,易用程度依次降低,功能也助教变强,一般我们如果只是映射一台主机DMZ就够了,端口映射支持多个主机,但是每个主机端口在网关配置上定死的和主机,UPnP每个主机的端口都是主机内应用自己申请的。

标签:网关,主机,addPortMappingAction,MDZ,setArgumentValue,UPnP,端口映射
From: https://www.cnblogs.com/cxygg/p/18235563

相关文章

  • 端口映射
    一个没有公网IP的内网设备要连接外网,通过网关路由器进行映射网关将数据包包装上网关IP(即公网IP)和新的未使用的端口,对应内网设备的内网IP和端口,即内网IP+内网端口----------------公网IP+公网端口多个内网IP请求则是映射成不同的公网端口,如内网IP1+内网端口1-------------......
  • Docker 桥接模式下端口映射会绕过防火墙
    问题描述使用Docker桥接模式启动了一个MySQL容器查看防火墙发现并未开启3306端口,但该宿主机3306端口仍能被第三方机器访问telnet152.51.32.113306 问题本质Docker在进行端口映射时,已经自动使用iptables命令修改了防火墙规则;并且这个规则不会被ufw显示、管理;甚至插入的......
  • Docker 端口映射防火墙规则配置
    背景当docker使用端口映射时,dockerdaemon会创建DOCKER链绕过firewalld建立iptables规则,可能使firewall规则失效。可以通过修改DOCKER-USER链来管理docker的防火墙规则或禁用firewalld直接配置iptables(不推荐)1.停止docker不要在Docker运行时Reloadfi......
  • docker之旅 7.docker的端口映射解决所有不服
    这是我的docker-compose.yml文件version:'2.x'services:myNginx:image:nginxrestart:alwaysmyRedis:image:redisrestart:alwaysports:-"6379:6379"mysql:image:mysqlrestart:alwaysen......
  • wsl命令之子系统网络端口映射
    查看端口映射netshinterfaceportproxyshowall添加映射#netshinterfaceportproxyaddv4tov4listenport=[win10端口]listenaddress=0.0.0.0connectport=[虚拟机的端口]connectaddress=[虚拟机的ip]netshinterfaceportproxyaddv4tov4listenport=80listenadd......
  • linux端口映射
    linux端口映射添加端口映射iptables-tnat-APREROUTING-ptcp--dport[外部端口]-jREDIRECT--to-ports[内部端口]删除端口映射iptables-tnat-DPREROUTING-ptcp--dport[外部端口]-jREDIRECT--to-ports[内部端口]解释命令和参数iptables-tnat-APRER......
  • UPnP/DLNA媒体服务器搭建
    UPnP/DLNA媒体服务器可以在家庭局域网中分享音乐、照片、视频等媒体资源,本文将讲述PC、路由器、NAS三种常见的搭建UPnP/DLNA媒体服务器分享音乐的方法。1.PC平台UniversalMediaServer是PC平台常用的媒体服务器,开放且免费,官网:https://www.universalmediaserver.com/。支持Windo......
  • 公网环境下如何端口映射?
    公网端口映射是一种网络技术,它允许将本地网络中的设备暴露在公共互联网上,以便能够从任何地方访问这些设备。通过公网端口映射,用户可以通过互联网直接访问和控制局域网中的设备,而无需在本地网络中进行复杂的配置。公网端口映射的实现原理是将公共互联网上的一个端口与局域网......
  • 解决Docker端口映射后外部访问未开启的端口问题
    在使用Docker时,经常会遇到需要将容器内部的服务映射到宿主机上的端口,以便外部可以访问。但有时候会遇到这样的问题:即使宿主机上未开启对应的端口,外部依然可以通过这些端口直接访问到服务,这可能存在一定的安全隐患。本文将介绍如何解决这个问题。首先,让我们了解一下Docker端......
  • Windows系统如何做端口映射?
    在网络通信中,端口映射是一项关键技术,允许将公共网络上的端口映射到私有网络上的特定设备或服务。对于Windows用户而言,端口映射为实现远程访问提供了便利。本文将探讨Windows端口映射及其应用。天联组网的优势天联组网是一项功能强大的服务,具有以下优势:无网络限制:天联组网......