专栏首页johnnyxsu技术交流分享玩转CVM之利用iptables进行端口转发
原创

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

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]

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用iptables进行端口转发

    说明:玩vps的经常要用到端口转发用以实现更快的速度,比如手上有个某商家的vps,本地访问速度很慢,这时候就可以用一个香港或者日本的线路做桥梁,达到更快的速度,...

    用户8851537
  • CLB健康检查异常排查流程

    CLB健康检查是指负载均衡实例定期向后端服务器发送 Ping、尝试连接或发送请求来测试后端服务器运行的状况。当后端服务器实例被判定为不健康时,负载均衡实例将不会...

    苏欣
  • iptables之NAT端口转发设置

    背景: 服务器A:103.110.114.8/192.168.1.8,有外网ip,是IDC的一台服务器 服务器B:192.168.1.150,没有外网ip,A服...

    洗尽了浮华
  • Linux下利用iptables快速实现UDP/TCP端口转发

    很多时候我们搭建某些服务后,发现本地连接效果不给力,但是我们有一个国内机器,由于国内机器出去走BGP线路,国内机器连接国外效果好,本地连接国内效果也不错,这样我...

    砸漏
  • 防火墙(iptables)

    防火墙(iptables)基于Netfilter实现,它在Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包...

    研究僧
  • CentOS6中利用iptables实现NAT转发和端口映射

    1、CentOS6服务器双网卡,eth0:192.168.31.25/24可以通过外网出口路由器上网,eth1:172.16.10.1/24用于与内网网段172...

    yuanfan2012
  • Ubuntu使用socat进行端口转发

    以前写过一篇使用iptables进行端口转发的文章, 今天写一下使用socat将本地端口的流量转发到远程机上的过程. 不要问我这样做有什么用, 我也不知道.

    用户8851537
  • 用autossh工具进行端口转发

    比如我们在host2机器上面部署了很多服务,但是由于某种原因导致我们无法直接ssh访问该服务器已经其上服务的对应端口,但是host3服务器,既能够访问host2...

    子润先生
  • Linux服务器利用防火墙iptables策略进行端口跳转的方法

    假设用户访问115.29.112.119:8804时我想让它转发到42.99.16.84:8890

    砸漏
  • 如何使用mosh替换ssh

    毫无疑问,SSH是远程服务器管理最实用的方法。然而,它的主导地位并不意味着它在某些情况下没有缺点。如果您曾在移动设备上使用过SSH,那么,你应该知道SSH的一些...

    林岑影
  • Linux上使用ssl进行端口转发

    作为一个后端程序员,经常要和别人联调接口,每当这时,总是被公司的各种,dev,qa,pre,prod环境搞得头疼,,,我真的只是想简单的联调一下看看能不能调的通...

    呼延十
  • 使用iptables实现多主机间端口转发

    访问 192.168.1.10:18888 ,实际访问服务为 192.168.1.125:80

    大大大黑白格子
  • 如何通过公网代理连接MySQL

    本节主要介绍通过云主机自带的iptables(防火墙)功能来做代理服务的转发,因为MySQL的用户比较多可以看到很多网友对这里也有一些需求所以这里以它为例,但通...

    研究僧
  • python基于socket进行端口转发

    分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/xia...

    py3study
  • 【腾讯云的1001种玩法】搭建属于自己的Minecraft服务器

    利用CVM环境从零开始搭建属于自己的Minecraft Spigot服务器

    陈润泽
  • 【玩转腾讯云】征文活动获奖名单公布

    由云+社区联合腾讯云免费体验馆及各产品团队举办【玩转腾讯云】征文活动,吸引入驻作者积极参加,非常感谢各位作者的参与。经过评委老师从产品创新性、实用性、可借鉴性、...

    云加社区
  • 用TC优化腾讯云Linux服务器QOS软限速导致的断流

    关键词:QOS 限速 惩罚机制 断流 腾讯云 轻量 Youtube卡顿 tc 流量控制 技术 随笔

    用户4693001
  • 求生之路2服务器搭建教程

    《求生之路2》(英语:Left 4 Dead 2)是2008年由V社开发、以丧尸为主题的恐怖生存类游戏《求生之路》的续作,游戏初次于2009年电玩E3展亮相,并...

    GeekZ
  • SSH延迟太高,试试mosh吧!

    毫无疑问,SSH是远程服务器管理最实用的方法。然而,它的主导地位并不意味着它在某些情况下没有缺点。如果您曾在移动设备上使用过SSH,那么,你应该知道SSH的一些...

    不会飞的蝴蝶

扫码关注云+社区

领取腾讯云代金券