利用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.207.71‘
Dst_Port=$2

# 清空规则
function clean_rule(){
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
}
function add_rule(){
#iptables -w -t nat -A PREROUTING  -p $pro -d $src_host  --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
echo "iptables -t nat -A PREROUTING  -p $pro -d $src_host  --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port"
#iptables -w -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host
echo "iptables -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host"
}

function del_rule(){
iptables -w -t nat -D PREROUTING  -p $pro -d $src_host  --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
#echo "iptables -t nat -A PREROUTING  -p $pro -d $src_host1  --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port"
iptables -w -t nat -D POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host
#echo "iptables -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host1"
}

if [[ "$mode" == "add"  ]];then
  add_rule
elif [[ "$mode" == "del"  ]];then
  del_rule
else
  echo "参数1不正确(add/del)"
fi

iptables-save > /dev/null 

# 显示已有规则
#iptables -t nat -L -n --line-number

原文地址:https://www.cnblogs.com/vijayfly/p/9257911.html

时间: 2024-10-09 22:33:37

利用iptables做端口转发的相关文章

使用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做地址转发

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 firewall

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)

nginx + apache 做端口(转发)

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

iptables实现端口转发

iptables实现端口转发 Linux下iptables不仅可以用来做防火墙还可以用来做端口转发 示例: 将本机的8080端口转发至其他主机,主机IP:192.168.1.12,目标主机IP和端口:192.168.1.13:8088,规则如下 iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.13:8088 iptables -t nat -A POSTROUT

Linux下用iptables做端口映射

Linux下用iptables做端口映射详细过程 在CentOS5.4上用iptables配置了端口映射,讲述详细的配置过程,供大家参考. [实现功能] server-A eth0      119.159.220.96  外网 eth1      10.105.75.32     内网 server-B 192.168.137.3              内网 将server-A的80端口映射到server-B的3306端口,实现通过server-A的外网地址访问server-B内网的338

远地利用ssh进行端口转发,传输数据和远程登录

博客地址:http://loopholes.blog.51cto.com/9445813/16203672015-03-17 "本试验需要下载花生壳,不要问我花生壳是什么,下载点这里" 如何让在家里面连入到公司的电脑,对于这个问题,就是我作试验的起因了: 1.如果只是让用户登录,你只需要安装SSH的服务端(server),如果你还需要远程对方,你需要下载SSH的客户端(clients) yum install -y openssh ==>会自动把openssh-server(服务

CentOS系统中使用iptables设置端口转发

echo 1 > /proc/sys/net/ipv4/ip_forward 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0    这样允许iptalbes FORWARD. 修改完成后运行以下命令使参数生效:/sbin/sysctl -p 将本地接口IP 61.144.14.72 的3389端口 转发到 116.6.73.229的3389      (主要访问到61.144.14.72的3389端口,就会跳转到116.6.73