1. 首页 > 快讯

Linux 或 Windows 上实现端口映射-linux 端口映射

大家好,今天来为大家解答Linux 或 Windows 上实现端口映射-linux 端口映射这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

一、Windows下实现端口映射

1. 查询端口映射情况

  1. netsh interface portproxy show v4tov4  

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

  1. netsh interface portproxy show v4tov4 | find "[IP]"  
  2. 例:  
  3. netsh interface portproxy show v4tov4 | find "192.168.1.1  

 

3. 增加一个端口映射

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

 

4. 删除一个端口映射

  1. netsh interface portproxy delete v4tov4 listenaddress=[外网IP] listenport=[外网端口]  
  2.   
  3. 例:  
  4.   
  5. netsh interface portproxy delete v4tov4 listenaddress=2.2.2.2 listenport=8080  

 

二、Linux下端口映射

  1. echo 1 >/proc/sys/net/ipv4/ip_forward  
  2. iptables -t nat -A POSTROUTING -j MASQUERADE  
  3. iptables -A FORWARD -i [内网网卡名称] -j ACCEPT  
  4. iptables -t nat -A POSTROUTING -s [内网网段] -o [外网网卡名称] -j MASQUERADE  
  5.   
  6.   
  7. 例:  
  8. echo 1 >/proc/sys/net/ipv4/ip_forward  
  9. iptables -t nat -A POSTROUTING -j MASQUERADE  
  10. iptables -A FORWARD -i ens33 -j ACCEPT  
  11. iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens37 -j MASQUERADE  

 

2. 设置端口映射

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

 

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

实验环境

  1. VMWare Workstation Pro
  2. 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服务

  1. cd ~  
  2. echo "server1" > index.html  
  3. python -m SimpleHTTPServer 8080  

 

 

 

Server2、Server3同理

对照实验

在client上访问Server1的资源

  1. curl http://192.168.50.11:8080/index.html  

 

 

在client上访问Server2的资源

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

 

 

在client上访问Server3的资源

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

 

 

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

在Server4上配置端口映射

临时配置

  1. echo 1 >/proc/sys/net/ipv4/ip_forward  
  2. iptables -t nat -A POSTROUTING -j MASQUERADE  
  3. iptables -A FORWARD -i ens33 -j ACCEPT  
  4. iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens37 -j MASQUERADE  
  5. #设置端口映射  
  6. iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8081 -j DNAT --to-destination 192.168.50.11:8080  
  7. iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8082 -j DNAT --to-destination 192.168.50.12:8080  

 

永久配置

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

检查效果

在client上访问Server1的资源

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

在client上访问Server2的资源

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

 

 

在client上访问Server3的资源

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

 

 

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

Windows的IP信息如下

 

 

 

 

配置并查看端口映射情况

  1. netsh interface portproxy add v4tov4 listenaddress=172.16.2.105 listenport=8081 connectaddress=192.168.50.11 connectport=8080  
  2. netsh interface portproxy add v4tov4 listenaddress=172.16.2.105 listenport=8082 connectaddress=192.168.50.12 connectport=8080  
  3. netsh interface portproxy show v4tov4  

 

检查效果

在client节点上

  1. curl http://172.16.2.105:8081/index.html  
  2. curl http://172.16.2.105:8082/index.html  
  3. curl http://172.16.2.11:8080/index.html  

 

 

关于Linux 或 Windows 上实现端口映射-linux 端口映射,的介绍到此结束,希望对大家有所帮助。

用户评论

独角戏°

想在 Linux 中设置端口映射,可以试试这篇教程。

    有7位网友表示赞同!

有一种中毒叫上瘾成咆哮i

端口映射真挺费解,希望能看懂这篇文章!

    有8位网友表示赞同!

慑人的傲气

Windows 和 Linux 都能做端口映射?那真是太棒了!

    有10位网友表示赞同!

该用户已上天

我之前一直在用 Windows 做端口映射,现在想尝试一下 Linux 的方法。

    有16位网友表示赞同!

像从了良

学习一下这个端口映射功能,说不定什么时候用到呢?

    有5位网友表示赞同!

病态的妖孽

文章会不会介绍一些常见的端口映射工具和技巧啊?

    有6位网友表示赞同!

抚涟i

这篇文章刚好能解决我现在的一个技术难题!

    有11位网友表示赞同!

等量代换

我对 Linux 的端口映射不是很了解,看一看这篇教程应该能有所收获。

    有12位网友表示赞同!

安之若素

终于找到一篇详细讲解 Linux 端口映射的教程了!

    有8位网友表示赞同!

酒笙倾凉

分享一下我之前用过的端口映射方法,也许会有帮助!

    有20位网友表示赞同!

蔚蓝的天空〃没有我的翅膀

学习一下这些知识以后,可以自己搭建服务器了吧?

    有9位网友表示赞同!

Hello爱情风

我觉得这篇文章应该还会介绍一些安全方面的注意事项吧?

    有16位网友表示赞同!

tina

端口映射看起来很复杂,但我还是要尝试一下。

    有8位网友表示赞同!

景忧丶枫涩帘淞幕雨

我正在学习 Linux,这段时间的重点学习就是端口映射了!

    有18位网友表示赞同!

予之欢颜

期待这篇教程能提供一些实用的操作步骤!

    有5位网友表示赞同!

﹎℡默默的爱

感谢分享这个宝贵的信息!这篇文章真帮了大忙!

    有9位网友表示赞同!

三年约

看了标题,感觉应该是一篇很专业的教程。希望能学到东西!

    有5位网友表示赞同!

柠夏初开

端口映射确实是个很有意思的技术,让我学习一下!

    有20位网友表示赞同!

歆久

最近在玩一些网络游戏,这篇文章好像能帮助我解决一些问题。

    有8位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/8073.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666