http://book.51cto.com/art/200904/120833.htm
9.4.3 使用iptables配置目的NAT 目的NAT改变的是数据包的目的IP地址,当来自Internet的数据包访问NAT服务器网络接口的公网IP时,NAT服务器会把这些数据包的目的地址转换为某一对应的内网IP,再路由给内网计算机。这样,使用内网IP地址的服务器也可以为Internet上的计算机提供网络服务了。 如图9-11所示,位于子网10.10.1.0/24的是普通的客户机,它们使用源NAT访问Internet。而子网10.10.2.0/24是服务器网段,里面的计算机运行着各种网络服务,它们不仅要为内网提供服务,而且要为Internet上的计算机提供服务。但由于使用的是内网地址,因此需要在NAT服务器配置目的NAT,才能让来自Internet的数据包能顺利到达服务器网段。 图9-11 用于目的NAT配置的例子网络结构 假设IP为10.10.2.3的计算机需要为Internet提供网络服务,此时,可以规定一个公网IP地址,使其与10.10.2.3建立映射关系。假设使用的公网IP是218.75.26.34,则配置目的NAT的命令如下: # iptables -t nat -A PREROUTING -i eth0 -d 218.75.26.34/32 -j DNAT --to 10.10.2.3 以上命令是在PREROUTING链中添加规则,这条链位于路由模块的前面,因此是在路由前改变了数据包的目的IP,这将对路由的结果造成影响。由于网络接口eth0与Internet连接,因此,"-i eth0"保证了数据包是来自Internet的数据包。"-d 218.75.26.34/32"表示数据包的目的地是到218.75.26.34主机,而这个IP应该是eth0某个子接口的地址,这样才能由NAT服务器接收数据包,否则,数据包将会因为无人接收而丢弃。 "-j DNAT"指定了目标动作是DNAT,表示要对数据包的目的IP进行修改,它的子选项"--to 10.10.2.3"表示修改后的IP地址是10.10.2.3。于是,目的IP修改后,接下来将由路由模块把数据包路由给10.10.2.3服务器。 以上是让一个公网IP完全映射到内网的某个IP上,此时同10.10.2.3主机直接位于Internet,并且使用218.75.26.34地址是没有区别的。因此这种方式虽然达到了地址转换的目的,但实际上并没有带来多大好处,因为使用NAT的主要目的是为了能够共用公网IP地址,以节省日益紧张的IP地址资源。为了达到共用IP地址的目的,可以使用端口映射。 端口映射是把一个公网IP地址的某一端口映射到内网某一IP地址的某一端口上去。它使用起来非常灵活,两个映射的端口其端口号可以不一样,而且同一个公网IP的不同端口可以映射到不同的内网IP地址上去。 例如,假设主机10.10.2.3只为外网提供Web服务,因此,只需要开放80端口,而主机10.10.2.9为外网提供了FTP服务,因此需要开放21号端口。在这种情况下,完全可以把公网IP地址218.75.26.34的80号和21号端口分别映射到10.10.2.3和10.10.2.9的80号和21号端口,以便两台内网服务器可以共用一个公网IP。具体命令如下所示。 # iptables -t nat -A PREROUTING -i eth0 -d 218.75.26.34/32 -p tcp --dport 80 -j DNAT --to 10.10.2.3:80 # iptables -t nat -A PREROUTING -i eth0 -d 218.75.26.34/32 -p tcp --dport 21 -j DNAT --to 10.10.2.9:21 以上命令中,目的地址是218.75.26.34的TCP数据包。当目的端口是80时,将转发给10.10.2.3主机的80端口;当目的端口是21时,将转发给10.10.2.9主机的21号端口。当然,两个映射的端口完全可以不一样。例如,如果还有一台主机10.10.2.8也通过80端口提供Web服务,并且映射的IP地址也是218.75.26.34,此时需要把218.75.26.34的另一个端口,如8080,映射到10.10.2.8的80端口,命令如下: # iptables -t nat -A PREROUTING -i eth0 -d 218.75.26.34/32 -p tcp --dport 8080 -j DNAT --to 10.10.2.8:80 注意:上面介绍的只是有关iptables中的DNAT配置,在实际应用中,还需要其他一些配置的配合才能真正成功。例如,filter表的3个链应该允许相应的数据包通过,应该为每一个外网IP创建eth0接口的子接口等。 此外,对于FTP服务来说,由于21号端口只是建立控制连接时用到的端口,真正传输数据时要使用其他端口。而且在被动方式下,客户端向FTP服务器发起连接的端口号是随机的,因此,无法通过开放固定的端口来满足要求。为了解决这个问题,可以在Linux系统中载入以下两个模块。 modprobe ip_conntrack_ftp modprobe ip_nat_ftp 这两个模块可以监控FTP控制流,以便能事先知道将要建立的FTP数据连接所使用的端口,从而可以允许相应的数据包通过,即使防火墙没有开放这个端口。
分享到:
相关推荐
c语言学习
人脸识别项目源码实战
人脸识别项目源码实战
本图书进销存管理系统管理员功能有个人中心,用户管理,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理,我的收藏管理。 用户功能有个人中心,图书类型管理,进货订单管理,商品退货管理,批销订单管理,图书信息管理,客户信息管理,供应商管理,库存分析管理,收入金额管理,应收金额管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得图书进销存管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高图书进销存管理系统管理效率。 关键词:图书进销存管理系统;Spring Boot框架;MYSQL数据库
基于动态规划和模型预测控制的并联混合电动汽车最佳控制 简介:利用动态规划,使用模型预测控制,实现对并联混合动力电动汽车的最佳控制,并降低总体成本函数 使用动态规划可以实现混合动力电动汽车的优化控制 混合动力电动汽车的模型预测控制是通过使用动态规划在缩短的时域内实现的 代码为纯matlab脚本,附带说明电子文档 ,并联混合电动汽车; 动态规划; 模型预测控制; 最佳控制; 总体成本函数; Matlab脚本。,动态规划与模型预测控制在并联混合动力电动汽车的最优控制策略
人脸识别项目实战
2025 DeepSeek技术全景解析-重塑全球AI生态的中国力量.pdf
能够爬取非会员视频和音频资源,可通过ffmpeg等工具将视频资源和音频资源合并
基于差分进化算法DE的机器人路径规划 本产品基于优化的差分进化算法,专为机器人山地路径规划而设计 通过模拟差分进化过程中的变异、交叉与选择机制,算法能够智能探索并确定最优行进路线,全面考量路径长度、能量消耗及地形适应性 优化之处在于融合了动态差分权重与精英保留策略,显著增强了算法的搜索效率和求解质量,有效规避了早熟收敛的风险 该算法在山地这一复杂且多变的自然环境中展现出卓越性能,完美适配于机器人探险、山地救援、环境监测等多种应用场景 我们矢志为用户提供卓越、稳健的机器人路径规划方案,推动各类山地作业迈向更为精确与高效的路径规划新时代 ,差分进化算法DE; 机器人路径规划; 山地路径规划; 算法优化; 早熟收敛风险规避; 山地探险应用场景; 环境监测场景。,DE算法赋能机器人,优化山地路径规划方案
情侣游戏情侣飞行棋10元真心话大冒险情侣情趣骰子php源码 ----- 程序特色 ----- 1、完整的分销制度,可自定义多种不同的返佣比例 2、支持情侣飞行棋、情趣骰子,多种等级 3、无感微信自动授权登录,支持微信第三方授权登录 4、完全开源无加密
HeidiSQL的12.2.0.6576安装压缩包
监护人,小孩和玩具数据集 4647张原始图片 监护人 食物 孩子 玩具 精确率可达85.4% yolov5pytorch格式
本课程是 PHP 进阶系列之 Swoole 入门精讲,系统讲解 Swoole 在 PHP 高性能开发中的应用,涵盖 协程、异步编程、WebSocket、TCP/UDP 通信、任务投递、定时器等核心功能。通过理论解析和实战案例相结合,帮助开发者掌握 Swoole 的基本使用方法及其在高并发场景下的应用。 适用人群: 适合 有一定 PHP 基础的开发者、希望提升后端性能优化能力的工程师,以及 对高并发、异步编程感兴趣的学习者。 能学到什么: 掌握 Swoole 基础——理解 Swoole 的核心概念,如协程、异步编程、事件驱动等。 高并发处理——学习如何使用 Swoole 构建高并发的 Web 服务器、TCP/UDP 服务器。 实战项目经验——通过案例实践,掌握 Swoole 在 WebSocket、消息队列、微服务等场景的应用。 阅读建议: 建议先掌握 PHP 基础,了解 HTTP 服务器和并发处理相关概念。学习过程中,结合 官方文档和实际项目 进行实践,加深理解,逐步提升 Swoole 开发能力。
机器人先进视觉赛-基于深度学习yolov8的3D识别项目源码含gui界面(最新发布).zip 实现机器人的3D目标识别和分割功能 支持深度图像的处理和分析 【资源详情说明】 【1】该项目为近期精心打造开发,完整代码。同时,配套资料一应俱全,涵盖详细的设计文档 【2】项目上传前源码经过严格测试,在多种环境下均能稳定运行,功能完善且稳定运行,技术研究、教学演示还是项目实践,都能轻松复现,节省时间和精力。 【3】本项目面向计算机相关专业领域的各类人群,对于高校学生,可作为毕业设计、课程设计、日常作业的优质参考;对于科研工作者和行业从业者,可作为项目初期立项演示,助力快速搭建原型,验证思路。 【4】若具备一定技术基础,可在此代码上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 【5】小白,在配置环境或运行项目时遇到困难,可提供远程指导和全方位技术支持。 欢迎下载学习本项目资源,期待与你共同探讨技术问题,交流项目经验!
Matlab实现TSO-XGBoost多变量回归预测 Matlab实现TSO-XGBoost多变量回归预测,金枪鱼算法优化XGBoost多变量回归预测 1.data为数据集,7个输入特征,1个输出特征 2.MainTSO XGboost.m为主程序文件,其他为函数文件,无需运行 3.命令窗口输出R2、MAE、MAE和RMSEP等评价指标,可在下载区获取数据和程序内容 注意程序和数据放在一个文件夹,文件夹不可以XGBoost命名,因为有函数已经用过,运行环境为 Matlab2018及以上,预测效果如下 ,TSO-XGBoost; 多变量回归预测; Matlab实现; 金枪鱼算法优化; 评价指标; 预测效果; 文件夹结构; 运行环境,Matlab中TSO-XGBoost多变量回归预测优化实践
实时音视频SRT协议中文完整版
学习WiFi,入手资料
c语言学习
jl5104开发板的代码,sdk
二级建造师电子证照.ofd.zip