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

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

3天内不再提示

Linux或Windows上实现端口映射

马哥Linux运维 来源:入门小站 2023-04-07 10:19 次阅读

一、Windows 下实现端口映射

查询端口映射情况

netshinterfaceportproxyshowv4tov4

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

netshinterfaceportproxyshowv4tov4|find"[IP]"

例:

netshinterfaceportproxyshowv4tov4|find"192.168.1.1"

增加一个端口映射

netshinterfaceportproxyaddv4tov4listenaddress=[外网IP]listenport=[外网端口]connectaddress=[内网IP]connectport=[内网端口]

例:

netshinterfaceportproxyaddv4tov4listenaddress=2.2.2.2listenport=8080connectaddress=192.168.1.50connectport=80

删除一个端口映射

netshinterfaceportproxydeletev4tov4listenaddress=[外网IP]listenport=[外网端口]

例:

netshinterfaceportproxydeletev4tov4listenaddress=2.2.2.2listenport=8080

二、Linux 下实现端口映射

允许数据包转发

echo1>/proc/sys/net/ipv4/ip_forward
iptables-tnat-APOSTROUTING-jMASQUERADE
iptables-AFORWARD-i[内网网卡名称]-jACCEPT
iptables-tnat-APOSTROUTING-s[内网网段]-o[外网网卡名称]-jMASQUERADE

例:

echo1>/proc/sys/net/ipv4/ip_forward
iptables-tnat-APOSTROUTING-jMASQUERADE
iptables-AFORWARD-iens33-jACCEPT
iptables-tnat-APOSTROUTING-s192.168.50.0/24-oens37-jMASQUERADE

设置端口映射

iptables-tnat-APREROUTING-ptcp-mtcp--dport[外网端口]-jDNAT--to-destination[内网地址]:[内网端口]

例:

iptables-tnat-APREROUTING-ptcp-mtcp--dport6080-jDNAT--to-destination10.0.0.100:6090

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

实验环境

VMWare Workstation Pro

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

实验拓扑

cbd54cda-d4b9-11ed-bfe3-dac502259ad0.png

内网和外网是相对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.html
python-mSimpleHTTPServer8080
Server2、Server3同理

对照实验

在client上访问Server1的资源

curlhttp://192.168.50.11:8080/index.html

在client上访问Server2的资源

curlhttp://192.168.50.12:8080/index.html

cbeebe72-d4b9-11ed-bfe3-dac502259ad0.png

在client上访问Server3的资源

curlhttp://172.16.2.11:8080/index.html

cbfe4b26-d4b9-11ed-bfe3-dac502259ad0.png

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

在Server4上配置端口映射

临时配置

#允许数据包转发
echo1>/proc/sys/net/ipv4/ip_forward
iptables-tnat-APOSTROUTING-jMASQUERADE
iptables-AFORWARD-iens33-jACCEPT
iptables-tnat-APOSTROUTING-s192.168.50.0/24-oens37-jMASQUERADE
#设置端口映射
iptables-tnat-APREROUTING-ptcp-mtcp--dport8081-jDNAT--to-destination192.168.50.11:8080
iptables-tnat-APREROUTING-ptcp-mtcp--dport8082-jDNAT--to-destination192.168.50.12:8080

永久配置

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

检查效果

在client上访问Server1的资源

curlhttp://172.16.2.100:8081/index.html

cc0edbc6-d4b9-11ed-bfe3-dac502259ad0.png

在client上访问Server2的资源

curlhttp://172.16.2.100:8082/index.html

cc1fa546-d4b9-11ed-bfe3-dac502259ad0.png

在client上访问Server3的资源

curlhttp://172.16.2.11:8080/index.html

cc2da6a0-d4b9-11ed-bfe3-dac502259ad0.png

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

Windows 的 IP 信息如下

cc3e3768-d4b9-11ed-bfe3-dac502259ad0.png

cc5369da-d4b9-11ed-bfe3-dac502259ad0.png

配置并查看端口映射情况

netshinterfaceportproxyaddv4tov4listenaddress=172.16.2.105listenport=8081connectaddress=192.168.50.11connectport=8080
netshinterfaceportproxyaddv4tov4listenaddress=172.16.2.105listenport=8082connectaddress=192.168.50.12connectport=8080
netshinterfaceportproxyshowv4tov4

cc6a889a-d4b9-11ed-bfe3-dac502259ad0.png

检查效果

在client节点上

curlhttp://172.16.2.105:8081/index.html
curlhttp://172.16.2.105:8082/index.html
curlhttp://172.16.2.11:8080/index.html

cc7d6dde-d4b9-11ed-bfe3-dac502259ad0.png

审核编辑:汤梓红

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

    关注

    87

    文章

    10990

    浏览量

    206735
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
  • Server
    +关注

    关注

    0

    文章

    88

    浏览量

    23847
  • 端口
    +关注

    关注

    4

    文章

    820

    浏览量

    31588
  • 映射
    +关注

    关注

    0

    文章

    42

    浏览量

    15722

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

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [分享]免费小软件——天锐端口映射器V1.0

    软件名称:天锐端口映射器软件版本:V1.0软件大小:72kB下载:天锐端口映射器.rar 软件介绍:本软件是绿色软件,实现TCP/IP端口重定向。通过在服务器安装运行此程序,可以把内网
    发表于 08-12 17:06

    TCP通信利用花生壳软件将内网端口映射到外网

    里用修改路由器参数实现过。无奈现在在公司进不去路由器啊。突然发现花生壳里有个端口映射功能,还比较好用。现在分享给大家,希望对需要进行远程访问做测试的同学提供一点帮助。友情提示:要花一块钱。小菜鸟一只
    发表于 07-27 19:26

    Linux如何配置本地端口映射

    linux服务器,1024以下的端口是禁止非root用户使用的。所以如果想要使用80端口访问tomcat,则修改conf/server.xml的
    发表于 07-22 07:14

    如何提取FMC端口映射用户逻辑信号?

    表示我们可以为FMC使用80差分160单端信号。我尝试通过FMC连接器(例如H8)提取一些切换信号,但我无法在示波器中捕获它们的切换图像。它只显示出嘈杂的波形。怎么了?我应该首先在FMC端口映射用户逻辑信号?我将port属性设置为LVCMOS18。
    发表于 09-12 09:45

    端口映射如何保证其稳定性

    1.端口映射原理2.大部分连接不稳定,如何解决
    发表于 09-29 11:28

    Docker的端口映射和nginx安装流程

    Docker的端口映射和nginx安装
    发表于 04-14 11:44

    Docker端口映射和nginx安装

    Docker的端口映射和nginx安装
    发表于 04-17 11:44

    NAT端口映射功能在CDMA无线数传模块组网中的应用是什么?

    固定IP连接方式有哪几种?如何利用NAT来映射端口?NAT端口映射功能在CDMA无线数传模块组网中的应用是什么?
    发表于 05-31 06:28

    路由器端口映射的原理及设置

    路由器端口映射的原理及设置 端口映射其实就是我们常说的?NAT地址转换的一种,其功能就是把在公网的地址转翻译成私有地址,?采
    发表于 01-27 10:05 692次阅读

    使用IdMappedPortTCP进行端口映射_Delphi教程

    Delphi教程使用IdMappedPortTCP进行端口映射,很好的Delphi学习资料。
    发表于 03-16 15:00 40次下载

    关于自动端口映射功能实现步骤和调试

    接下来,小编就为大家讲解如何使用UPnP协议实现网络设备自动配置路由器进行端口映射
    发表于 09-23 10:00 4次下载
    关于自动<b class='flag-5'>端口映射</b>功能<b class='flag-5'>实现</b>步骤和调试

    端口映射端口转发的区别?

    端口转发,有时被叫做隧道,是安全壳为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为端口映射是NAT的一种,功能是把在公网的地址转翻译成私有地
    发表于 12-04 17:31 3.7w次阅读
    <b class='flag-5'>端口映射</b>和<b class='flag-5'>端口</b>转发的区别?

    如何通过路由器设置端口映射

    不少朋友问到什么是端口端射?在项目中我们经常会遇到,这个功能也是非常实用的,可以解决一些远程控制访问,很多朋友对这个设置一直都了解不多。那么如何设置端口映射呢?一起来看下。
    的头像 发表于 06-16 12:54 7937次阅读
    如何通过路由器设置<b class='flag-5'>端口映射</b>

    关于工业路由器端口映射的详细配置方法

    欢迎来到东用知识小课堂,今天我们来给大家做一个端口映射的详细操作说明,大家如果有需要的话,不妨来试一试下面,我们就以东用科技的ORC305工业级路由器为例,来给大家做图文说明吧ORC305系列开启
    的头像 发表于 03-19 07:00 461次阅读
    关于工业路由器<b class='flag-5'>端口映射</b>的详细配置方法

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

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