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

    文章

    5957

    浏览量

    135817
  • Linux
    +关注

    关注

    87

    文章

    11216

    浏览量

    208810
  • WINDOWS
    +关注

    关注

    3

    文章

    3523

    浏览量

    88373

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

    请问IR615如何进行端口映射

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

    路由器端口转发怎么设置

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

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

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

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

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

    STM8的端口怎样进行映射

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

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

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

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

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

    NAT网关实现IP地址转换与端口映射

    。 当需要实现内外网的跨网段访问时,可以通过NAT技术来实现。NAT完成将IP报文报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络访问外部网络的功能,也能实现增强安全性
    的头像 发表于 12-27 17:27 658次阅读
    NAT网关<b class='flag-5'>实现</b>IP地址转换与<b class='flag-5'>端口映射</b>

    Docker Compose部署Spug:实现内网穿透

    上面我们成功安装了openGauss数据库,下面我们在Linux安装cpolar内网穿透工具,通过cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤
    的头像 发表于 11-23 16:42 694次阅读
    Docker Compose部署Spug:<b class='flag-5'>实现</b>内网穿透

    完整的计算机网络基础思维导图

    一对一的IP映射并且一对一的端口映射 实现内网服务器能够被外网访问,同时隐藏内网服务器实际IP地址 服务器私网P地址和端口号转换为公网IP地址和
    的头像 发表于 11-23 12:25 1007次阅读
    完整的计算机网络基础思维导图

    端口转发和端口映射的区别 端口映射端口转发的各自意义?

    端口转发和端口映射的区别 端口映射端口转发的各自意义? 端口转发和端口映射是两种网络技术,它们
    的头像 发表于 11-22 17:41 4948次阅读