前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转CVM之利用iptables进行端口转发

玩转CVM之利用iptables进行端口转发

原创
作者头像
苏欣
发布2019-07-09 15:41:59
5.2K0
发布2019-07-09 15:41:59
举报

NAT(端口转发)是什么

在网络上发送的所有数据包都是有原地址和目标地址的,NAT就是要对数据包的原地址或者目标地址(或者端口)进行修改的技术。

那为什么我们要修改IP地址呢?在互联网中只能传送公网地址的数据包,私有地址的数据包是无法传送的。例如,在WIFI环境下看视频浏览网站的时候终端的IP(私有地址,手机、pad、电脑发出来的所有数据包原地址基本都是私有地址)。为了能让数据包在互联网上传送,必须要一个公网IP才行。所以进行访问互联网的时候,路由器会把所有的数据包的源地址转换成它的WLAN口的IP地址(这个就是公网ip,一般就是ISP分配的IP)。这个转换的技术就是NAT。当所访问的服务器返回数据包时,路由器会把所有数据包目标地址,由它的WLAN口的IP地址,改回内网的IP地址。这样才能上进行上网的操作。所以每天都在大量使用NAT技术。

使用iptables进行端口转发

1.启用系统转发功能

vi /etc/sysctl.conf

将 net.ipv4.ip_forward=0

修改成 net.ipv4.ip_forward=1

编辑sysctl后如果需要马上生效需要

sysctl -p

2.修改iptables命令

如果是同一个端口进行转发,可以直接键入下面两跳命令:

iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]

iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP]

iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]

iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]

如果是不同端口进行转发,需要指定目标端口号和本地端口号:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport [本地端口] -j DNAT --to-destination [目标服务器IP]:[目标端口]

iptables -t nat -A PREROUTING -p udp -m udp --dport [本地端口] -j DNAT --to-destination [目标服务器IP]:[目标端口]

iptables -t nat -A POSTROUTING -d [目标服务器IP]/32 -p tcp -m tcp --dport [目标端口] -j SNAT --to-source [本地服务器IP]

iptables -t nat -A POSTROUTING -d [目标服务器IP]/32 -p udp -m udp --dport [目标端口] -j SNAT --to-source [本地服务器IP]

3.保存iptables并重启是配置生效

service iptables save

service iptables restart

4.查看iptables配置

iptables -t nat -L

扩展:

多端口转发的方案 ( 将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1 的 50000~65535 端口 ):

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1

iptables -t nat -A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1

iptables -t nat -A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]

iptables -t nat -A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NAT(端口转发)是什么
  • 使用iptables进行端口转发
    • 1.启用系统转发功能
      • 2.修改iptables命令
        • 3.保存iptables并重启是配置生效
          • 4.查看iptables配置
            • 扩展:
            相关产品与服务
            云服务器
            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档