利用iptables做地址转发

1、实现目的

有三台服务器,分别为node1,node2(nat),node3,其中node2做nat转换。在node1不能与node3直接通信的情况下,通过node2 nat地址转换,实现node1能与node3通信。

node1:192.168.0.73

node2:192.168.0.74 【nat机器】

node3:192.168.0.189

2、环境配置

node1不能与node3同学,在node3上开启防火墙,

在node3上操作

# systemctl start firewalld.service

# iptables -A INPUT -s 192.168.0.73 -j REJECT

将所有来自于192.168.0.73的请求拒绝。

3、NAT服务器配置

node2上的操作

首先打开内核ip地址转发功能

# cat /proc/sys/net/ipv4/ip_forward  //查看,1为打开,0为关闭

# echo "1" >/proc/sys/net/ipv4/ip_forward

# systemctl start firewalld.service

# iptables -t nat -A PREROUTING -s 192.168.0.73 -j DNAT --to-destination 192.168.0.189    //做目标地址转发,将所有来自node1的请求的目的地址转换成node3,由于在路由器是看不到原地址的,所以只有做目的地址转换。

# iptables -t nat -A POSTROUTING -d 192.168.0.189 -j SNAT --to 192.168.0.74

// 由于PREROUTING链做的目的地址转换,所以在POSTROUTING链看到的就是指向node3的数据包,因此在这里对目的地址为node3的数据包做SNAT(源地址转换),将源地址node1转换成node2的,

经过目的地址转换和源地址转换后,发往node3的数据包就是S:node2,D:node3,因此跳过了node3的防火墙规则。

时间: 2024-10-27 06:15:58

利用iptables做地址转发的相关文章

利用iptables做端口转发

#!/bin/bash #sh forward_port.sh add/del port #sh forward_port.sh add 80 if [ -z $1 ];then echo "参数1为空" elif [ -z $2 ];then echo "参数2为空" fi mode=$1 pro='tcp' #src_host='47.97.205.48' src_host='47.97.205.48' src_port=$2 Dst_Host='183.129

使用iptables做端口转发

#!/bin/sh IPT="/sbin/iptables" /bin/echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/modprobe ip_tables /sbin/modprobe iptable_filter /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprob

iptables 做本地转发

需求: 服务器192.168.1.209 上 某个web程序监听到了127.0.0.1 的8000 端口上. 要通过访问192.168.1.209的80端口来访问127.0.0.1的8000端口:做法:iptables -t nat -I PREROUTING -p tcp --dport 8080 -j DNAT --to 127.0.0.1:8000 开启本地路由转发!!!sysctl -w net.ipv4.conf.eno16780032.route_localnet=1 #eno167

【20180202】使用iptables做MySQL的端口转发

导读:将一个实例上面的MySQL请求转向另外一个MySQL实例上面. 源服务:172.16.3.6:3306 主库 目标服务:172.16.3.7:3306 从库 访问账户: [email protected] 新旧实例以及搭建主从 在源服务上面开启端口转发服务: shell>> sudo vim /etc/sysctl.conf vim>> net.ipv4.ip_forward=1 ##在文件中修改这个选项为1 shell>> sudo sysctl -p shel

iptables 设置端口转发/映射

iptables 设置端口转发/映射 服务器A有两个网卡 内网ip:192.168.1.3 外网ip:10.138.108.103 本地回环:127.0.0.1 服务器B有网卡,8001提供服务 内网ip:192.168.1.1 目的使用户通过外网10.138.108.103:8001访问内网服务器192.168.1.1:8001 如图2所示,端口转发走的是下发A路,利用nat表中prerouting做dnat,用postrouting做snat 包分析时期 操作 源IP:PORT 目的IP:P

centos7 && centos6.5部KVM使用NAT联网并为虚拟机配置firewalld && iptables防火墙端口转发

centos7 && centos6.5 部KVM使用NAT联网并为虚拟机配置firewalld && iptables防火墙端口转发 一.准备工作: 1: 检查kvm是否支持a: grep '(vmx|svm)' /proc/cpuinfo vmx是intel cpu支持的svm是AMD cpu支持的如果flags: 里有vmx 或者svm就说明支持VT:如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机. b: 确保BIOS里开启VT: Intel(R)

使用linux系统做路由转发

使用linux系统(PC机)做路由转发 关键字:linux,Fedora,route,iptables,ip_forward 最近做网络实验,在实验过程中需要用到linux的转发功能,但是遇到一些问题,在请教了linux网络技术的网友后终于把它解决了,解决了之后我开始总结之前失败的原因,并将历程写成博文,供以后遇到这类问题的各位朋友参考借鉴. 1.网络拓扑 网络拓扑如下所示,我们在这里用到了三台机子做实验,分别是①.④.⑦号机,使用①号机ping⑦号机,④号机作为路由转发. 2.错误的路由配置

nginx + apache 做端口(转发)

nginx + apache 做端口转发 最近公司需要搭建一个内容管理系统,用的框架是dedecms,没有多考虑,首选的就是apache,因为公司的服务器是centos,所以一通折腾之后安装好了apache,php,以及各种模块及依赖库.      在安装好之后启动apache,发现无法启动,说是80端口被占用,经过netstat -anp | grep 80 之后发现是ngnix占用了该端口.因为这台服务器一直在使用nginx + unicorn 来跑rails项目,所以这个nginx是万万不

为什么DT时代,企业需要利用数据做精细化运营

随着互联网的飞速发展,信息的传输日益方便快捷,需求也日益突出,纵观整个互联网领域,大数据已被认为是继云计算.物联网之后的又一大颠覆性的技术性革命,大数据市场是待挖掘的金矿,其价值不言而喻.企业运营对于企业来说是非常重要的,因为良好的运营体系会让企业在市场宣传中轻松应对各种情况.当我们迈入DT数据时代的时候,企业在运营上相对应的也发生了改变,从最初的粗放式运营逐渐过渡到精细化运营. 大数据,可以说是史上第一次将各行各业的用户.方案提供商.服务商.运营商以及整个生态链上游厂商,融入到一个大的环境中,