0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Windows下实现端口映射

Linux爱好者 来源:varlemon 作者:varlemon 2020-11-12 15:40 次阅读

通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服务器经过配置就可以承担起了转发数据包的功能。

一、Windows下实现端口映射

1. 查询端口映射情况

netsh interface portproxy show v4tov4

2. 查询某一个IP的所有端口映射情况

netsh interface portproxy show v4tov4 | find "[IP]"例:netsh interface portproxy show v4tov4 | find "192.168.1.1"

3. 增加一个端口映射

netsh interface portproxy add v4tov4 listenaddress=[外网IP] listenport=[外网端口] connectaddress=[内网IP] connectport=[内网端口]例:netsh interface portproxy add v4tov4 listenaddress=2.2.2.2 listenport=8080 connectaddress=192.168.1.50 connectport=80

4. 删除一个端口映射

netsh interface portproxy delete v4tov4 listenaddress=[外网IP] listenport=[外网端口]例:netsh interface portproxy delete v4tov4 listenaddress=2.2.2.2 listenport=8080

二、Linux下端口映射

1. 允许数据包转发

echo 1 >/proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADEiptables -A FORWARD -i [内网网卡名称] -j ACCEPTiptables -t nat -A POSTROUTING -s [内网网段] -o [外网网卡名称] -j MASQUERADE 例:echo 1 >/proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADEiptables -A FORWARD -i ens33 -j ACCEPTiptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens37 -j MASQUERADE

2. 设置端口映射

iptables -t nat -A PREROUTING -p tcp -m tcp --dport [外网端口] -j DNAT --to-destination [内网地址]:[内网端口]例:iptables -t nat -A PREROUTING -p tcp -m tcp --dport 6080 -j DNAT --to-destination 10.0.0.100:6090

实验:将部署在内网的服务映射到外网

实验环境

VMWare Workstation Pro

5台最小化安装的centos 7虚拟机

实验拓扑

内网和外网是相对Server4来说的。
Server1和Server2为内网环境的两台服务器;
Server3为外网环境下的一台服务器;
Server4为一台双网卡主机,分别连接192.168.50.0/24和172.16.2.0/24两个网络。

配置实验环境

1. Server1,2,3上搭建HTTP服务

Python在Server1上搭建一个简单的HTTP服务

cd ~echo "server1" > index.htmlpython -m SimpleHTTPServer 8080

Server2、Server3同理

对照实验

在client上访问Server1的资源

curlhttp://192.168.50.11:8080/index.html

在client上访问Server2的资源

curl http://192.168.50.12:8080/index.htm

在client上访问Server3的资源

curl http://172.16.2.11:8080/index.html

可以看到,外网的client是无法访问内网Server1,Server2的资源的。

在Server4上配置端口映射

临时配置

#允许数据包转发echo 1 >/proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADEiptables -A FORWARD -i ens33 -j ACCEPTiptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens37 -j MASQUERADE#设置端口映射iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8081 -j DNAT --to-destination 192.168.50.11:8080iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8082 -j DNAT --to-destination 192.168.50.12:8080

永久配置
如果需要永久配置,则将以上命令追加到/etc/rc.local文件。

检查效果

在client上访问Server1的资源

curl http://172.16.2.100:8081/index.html

在client上访问Server2的资源

curl http://172.16.2.100:8082/index.html

在client上访问Server3的资源

curlhttp://172.16.2.11:8080/index.html

如果Server4为Windows,替换一下相应的命令即可

Windows的IP信息如下

Ethernet0 192.168.50.105 255.255.255.0 - 内网网卡
Ethernet1 172.16.2.105 255.255.255.0 - 外网网卡
网卡 IP地址 子网掩码 默认网关 备注

配置并查看端口映射情况

netsh interface portproxy add v4tov4 listenaddress=172.16.2.105 listenport=8081 connectaddress=192.168.50.11 connectport=8080netsh interface portproxy add v4tov4 listenaddress=172.16.2.105 listenport=8082 connectaddress=192.168.50.12 connectport=8080netshinterfaceportproxyshowv4tov4

检查效果

在client节点上

curl http://172.16.2.105:8081/index.htmlcurl http://172.16.2.105:8082/index.htmlcurl http://172.16.2.11:8080/index.html

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    6034

    浏览量

    136037
  • Linux
    +关注

    关注

    87

    文章

    11310

    浏览量

    209616
  • WINDOWS
    +关注

    关注

    4

    文章

    3547

    浏览量

    88767

原文标题:Linux 或 Windows 上实现端口映射

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何设置内网IP的端口映射到公网

    服务器、家庭监控等场景中得到了广泛应用。今天,我们将介绍如何实现端口映射,帮助大家在不同网络环境实现内网设备的公网访问。
    的头像 发表于 11-14 14:23 524次阅读

    细数那些令人瞩目的内网穿透工具

    在日常工作场景中,我们时常面临需要将本地网络中的特定端口(如80、3306等)对外开放,以便让远程用户或设备跨越局域网界限进行访问的需求。为实现这一目标,端口映射(又称内网穿透)威廉希尔官方网站 显得尤为重要
    的头像 发表于 08-14 15:45 367次阅读
    细数那些令人瞩目的内网穿透工具

    IR615做端口映射后笔记本连接lan口无法连接路由器,为什么?

    IR615做端口映射后笔记本连接wan口可以连接路由器,lan口无法连接路由器
    发表于 07-25 07:40

    请问IR900路由器如何做端口映射

    IR900 路由器如何做端口映射
    发表于 07-25 06:24

    请问IR615如何进行端口映射

    IR615 如何进行端口映射
    发表于 07-24 07:53

    串口服务器端口映射和地址怎么配置

    深圳市振鑫通信科技研发的ZP-8601-EV/ZP-8621/ZP-IES8808/ZP-MBS008系列连接西门子PLC
    的头像 发表于 07-18 09:07 995次阅读
    串口服务器<b class='flag-5'>端口映射</b>和地址怎么配置

    使用espconn api实现UPNP IGD端口转发,为什么没有发送ACK?

    我正在尝试使用 espconn api 实现 UPNP IGD 端口转发。 我创建了与路由器的连接,然后: 1) 在连接的回调 (espconn_regist_connectcb) 上,我
    发表于 07-18 08:09

    路由器端口转发怎么设置

    )威廉希尔官方网站 ,它允许将路由器的一个或多个外部端口映射到内网中的一个设备或服务上。这样,外部设备就可以通过这些端口访问内网中的设备或服务,实现远程访问、远程控制等功能。 1.2 路由器端口转发
    的头像 发表于 07-09 11:33 8015次阅读

    容器怎么完成和容器引擎的映射

    容器与注入机的映射通常涉及网络端口、文件系统和环境变量等方面的配置。以下是如何在不同方面完成容器和注入机映射的详细说明: 1. 网络端口映射 通过使用Javascript,我们可以将
    的头像 发表于 06-06 15:18 378次阅读

    Windows 11 24H2 添加 NAS 安全映射功能

    据悉,微软Windows 11 24H2发布预览版新增了安全机制。若将硬盘映射至第三方网络附加存储(NAS)设备,可能引发如0xc000a000等错误现象。
    的头像 发表于 05-30 15:39 1266次阅读

    STM8的端口怎样进行映射

    STM8的端口怎样进行映射,请大神指教!!!
    发表于 05-15 07:19

    路由器映射是什么意思?路由器端口映射怎么设置?

    有一个Web服务器在您的家庭网络中运行,您可以使用路由器映射将其公开到互联网上。这样,任何人都可以从互联网上访问该Web服务器。 路由器端口映射的好处有: 1. 隐藏原地址端口。或者说改变访问地址
    的头像 发表于 05-10 13:42 1371次阅读

    stm32cubeF1 1.3.1端口重映射被禁用的原因和解决方法

    现象:如果使用了端口重映射功能,只要一运行到类似于__HAL_AFIO_REMAP_TIM4_ENABLE();这样的语句,就会推出调试状态,JTAGH或者SW的调试端口就被禁用了。 原因:这个语句
    发表于 05-08 07:24

    STM32F4能否实现用重映射功能将dcmi映射到别的io口?

    能否实现用重映射功能将dcmi映射到别的io口
    发表于 03-25 08:07

    在TC387微控制器上实现内存映射,负载增加的原因是什么?

    我正在 TC387 微控制器上实现内存映射。 关于内存映射,在 Linker 脚本中定义了新区域,并将数据映射到这些区域。 从功能上看,在有内存映射
    发表于 03-04 07:43