Iptables实现NAT是最基本的功能,大部分家用路由都是基于其SNAT方式上网,使用Iptables实现外网DNAT也很简单,不过经常会出现不能正常NAT的现象。
以下命令将客户端访问1.1.1.1的HTTP数据DNAT到2.2.2.2,很多人往往只做这一步,然后测试不能正常连接。

1
iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 80 -j DNAT --to 2.2.2.2:80

想像一下此时客户端访问1.1.1.1的数据流程:

1
2
3
4
客户端访问1.1.1.1
1.1.1.1根据Iptables DNA将数据包发往2.2.2.2,此时源IP为客户端IP
2.2.2.2处理后根据源IP直接向客户端返回数据,要知道此时客户端是直接和1.1.1.1连接的
然后呢,客户端不知所云,不能正常连接

最后还要添加一条SNAT规则,将发到2.2.2.2的数据包SNAT,1.1.1.1充当代理服务器的角色。

1
iptables -t nat -A POSTROUTING -d 2.2.2.2 -j SNAT --to-source 1.1.1.1

别忘记开启内核转发功能:

 

1
echo 1 > /proc/sys/net/ipv4/ip_forward
 
 
实例配置:
 
cat /etc/sysconfig/iptables

-A PREROUTING -d 60.190.*****./ -p tcp -m tcp --dport  -j DNAT --to-destination 172.20.18.104:
-A PREROUTING -d 60.190.*****/ -p udp -m udp --dport -j DNAT --to-destination 172.20.18.104:
 
 

Iptables实现公网IP DNAT/SNAT的更多相关文章

  1. CentOS内网机器利用iptables共享公网IP上网

    公司有个业务是2B的以及日活不大,所以两台服务器搞定,一个6M EIP.两台机器都是CentOS7系统EIP为 xxx.xxx.xxx.xxx绑在 内网ip为 172.18.30.175的服务器上,内 ...

  2. CentOS下OpenVPN实现公网IP映射到内网(iptables转发功能)(转)

    说明:这种方案的实现前提是必须要有一台拥有公网IP的电脑,OpenVPN搭建过程很普通,关键技术在于iptables的转发.搭建教程可能有点旧了,可以只看iptables的关键点技术. 方案背景: 公 ...

  3. 阿里云专有网络与弹性公网IP

    阿里云服务器经典网络和专有网络究竟有什么区别? 在用户提交订单购买阿里云ECS云服务器时,会面临怎样选择网络类型的烦恼,阿里云服务器定制购买时,网络类型里的经典网络和专有网络(VPC)是什么含义,该怎 ...

  4. Openvpn完美解决公司网络没有固定公网IP的问题

    方案背景: 公司办公网络使用长城宽带上网有一段时间了,有4个固定IP(2个电信,2个网通),链路不太稳定,经常有问题,因此考虑取消长城宽带,采用原来的adsl上网.但是有个问题,因为公司内网有几台服务 ...

  5. dnat,snat

    Iptables实现NAT是最基本的功能,大部分家用路由都是基于其SNAT方式上网,使用Iptables实现外网DNAT也很简单,不过经常会出现不能正常NAT的现象. 以下命令将客户端访问1.,很多人 ...

  6. Linux将公网ip映射到局域网ip

    测试环境如下: monitor: msc1:公网IP:103.6.164.128 eth0 内网IP:192.168.0.57 eth0内网IP:192.168.0.16 eth1 通过访问monit ...

  7. ubuntu 中DNAT SNAT配置实验.

    1.      目的 图1 如图1所示,有A,B两台计算机,其中A配置成普通PC,B是网关.实现由A向一个不存在的IP 发起tcp连接,并能向这个不存在的ip发送数据. 同时响应这个tcp连接的是B中 ...

  8. nginx公网IP无法访问浏览器

    配置服务器时候发现的问题,真的是搜肠刮肚的找答案,找一下午,终于找到了答案. 一.开始找原因 在浏览器输入:http://ip,正常的话,会有页面,welcome to nginx 我这里是浏览器访问 ...

  9. 解决阿里云ECS下kubeadm部署k8s无法指定公网IP

    背景 一般情况下,"kubeadm"部署集群时指定"--apiserver-advertise-address=<public_ip>"参数,即可在 ...

随机推荐

  1. HDU 5884 Sort(二分答案+计算WPL的技巧)

    Sort Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. [openjudge6043]哆啦A梦的时光机

    [openjudge6043]哆啦A梦的时光机 试题描述 哆啦A梦有一个神奇的道具:时光机.坐着它,大雄和他的伙伴们能穿越时空,回到过去或者去到未来. 有一天,大雄和他的伙伴们想穿越时空进行探险,可是 ...

  3. iOS资讯详情页实现—WebView和TableView混合使用(转)

    iOS资讯详情页实现—WebView和TableView混合使用 如果要实现一个底部带有相关推荐和评论的资讯详情页,很自然会想到WebView和TableView嵌套使用的方案. 这个方案是WebVi ...

  4. cxGrid让指定的某行自动呈选选中的状态

    cxView.ViewData.Rows[cxView.DataController.DataSource.DataSet.RecNo-1].Selected := True;//将当前的行呈选中的状 ...

  5. java网络编程学习笔记(二):socket详解

    1.Socket有多种构造方法,大多数构造方法在构造的时候就指定了连接的主机和端口号.当客户端的构造方法与服务器连接的时候,可能需要等待一段时间,因为需要建立连接.默认情况下,Socket的构造方法会 ...

  6. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---6

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: <Linux命令行与shell脚本 ...

  7. Scrapy学习-25-Scrapyd部署spider

    Scrapyd部署爬虫项目 github项目  https://github.com/scrapy/scrapyd    官方文档  http://scrapyd.readthedocs.org/  ...

  8. grep的简单理解

    概述: grep最早由肯·汤普逊写成.原先是ed下的一个应用程序,名称来自于g/re/p(globally search a regular expression and print,以正则进行全域查 ...

  9. Codeforces Gym100971 B.Derangement (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)

    昨天训练打的Gym,今天写题解. 这个题就是输出的时候有点小问题,其他的都很简单. 代码: #include<iostream> #include<cstring> #incl ...

  10. 洛谷——P2626 斐波那契数列(升级版)

    P2626 斐波那契数列(升级版) 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ ...