通常服务器会有许多块网卡,因此也可能会连接到不同的网络,在隔离的网络中,某些服务可能会需要进行通信,此时服务器经过配置就可以承担起了转发数据包的功能。 一、Windows下实现端口映射 1。查询端口映射情况netshinterfaceportproxyshowv4tov4 2。查询某一个IP的所有端口映射情况netshinterfaceportproxyshowv4tov4find〔IP〕例:netshinterfaceportproxyshowv4tov4find192。168。1。1 3。增加一个端口映射netshinterfaceportproxyaddv4tov4listenaddress〔外网IP〕listenport〔外网端口〕connectaddress〔内网IP〕connectport〔内网端口〕例:netshinterfaceportproxyaddv4tov4listenaddress2。2。2。2listenport8080connectaddress192。168。1。50connectport80 4。删除一个端口映射netshinterfaceportproxydeletev4tov4listenaddress〔外网IP〕listenport〔外网端口〕例:netshinterfaceportproxydeletev4tov4listenaddress2。2。2。2listenport8080 二、Linux下端口映射 1。允许数据包转发echo1procsysnetipv4ipforwardiptablestnatAPOSTROUTINGjMASQUERADEiptablesAFORWARDi〔内网网卡名称〕jACCEPTiptablestnatAPOSTROUTINGs〔内网网段〕o〔外网网卡名称〕jMASQUERADE例:echo1procsysnetipv4ipforwardiptablestnatAPOSTROUTINGjMASQUERADEiptablesAFORWARDiens33jACCEPTiptablestnatAPOSTROUTINGs192。168。50。024oens37jMASQUERADE 2。设置端口映射iptablestnatAPREROUTINGptcpmtcpdport〔外网端口〕jDNATtodestination〔内网地址〕:〔内网端口〕例:iptablestnatAPREROUTINGptcpmtcpdport6080jDNATtodestination10。0。0。100:6090实验:将部署在内网的服务映射到外网实验环境VMWareWorkstationPro5台最小化安装的centos7虚拟机实验拓扑 内网和外网是相对Server4来说的。 Server1和Server2为内网环境的两台服务器; Server3为外网环境下的一台服务器; Server4为一台双网卡主机,分别连接192。168。50。024和172。16。2。024两个网络。 配置实验环境1。Server1,2,3上搭建HTTP服务 用Python在Server1上搭建一个简单的HTTP服务cdechoserver1index。htmlpythonmSimpleHTTPServer8080 Server2、Server3同理对照实验 在client上访问Server1的资源curlhttp:192。168。50。11:8080index。html 在client上访问Server2的资源curlhttp:192。168。50。12:8080index。htm 在client上访问Server3的资源curlhttp:172。16。2。11:8080index。html 可以看到,外网的client是无法访问内网Server1,Server2的资源的。在Server4上配置端口映射 临时配置允许数据包转发echo1procsysnetipv4ipforwardiptablestnatAPOSTROUTINGjMASQUERADEiptablesAFORWARDiens33jACCEPTiptablestnatAPOSTROUTINGs192。168。50。024oens37jMASQUERADE设置端口映射iptablestnatAPREROUTINGptcpmtcpdport8081jDNATtodestination192。168。50。11:8080iptablestnatAPREROUTINGptcpmtcpdport8082jDNATtodestination192。168。50。12:8080 永久配置 如果需要永久配置,则将以上命令追加到etcrc。local文件。检查效果 在client上访问Server1的资源curlhttp:172。16。2。100:8081index。html 在client上访问Server2的资源curlhttp:172。16。2。100:8082index。html 在client上访问Server3的资源curlhttp:172。16。2。11:8080index。html 如果Server4为Windows,替换一下相应的命令即可 Windows的IP信息如下 网卡 IP地址 子网掩码 默认网关 备注 Ethernet0 192。168。50。105 255。255。255。0 内网网卡 Ethernet1 172。16。2。105 255。255。255。0 外网网卡 配置并查看端口映射情况netshinterfaceportproxyaddv4tov4listenaddress172。16。2。105listenport8081connectaddress192。168。50。11connectport8080netshinterfaceportproxyaddv4tov4listenaddress172。16。2。105listenport8082connectaddress192。168。50。12connectport8080netshinterfaceportproxyshowv4tov4 检查效果 在client节点上curlhttp:172。16。2。105:8081index。htmlcurlhttp:172。16。2。105:8082index。htmlcurlhttp:172。16。2。11:8080index。html END