#!/bin/bash
# 2022.2.28 by dewan
# DNAT configuration. iptables -t nat -F PUB_IFACE="enp125s0f0"
INT_IFACE="enp125s0f1" LAN="10.0.0.0/8 172.16.0.0/12 192.168.0.0/16"
SERVER_IP= for ips in $LAN
do
iptables -t nat -A POSTROUTING -o $PUB_IFACE -s $ips -j MASQUERADE
done # 20000 ~ 23999
iptables -t nat -A PREROUTING -p tcp -i $PUB_IFACE --dport 20000:23999 -j DNAT --to-destination $SERVER_IP
iptables -t nat -A PREROUTING -p tcp -i $INT_IFACE -d x.x.x.x --dport 20000:23999 -j DNAT --to-destination $SERVER_IP
iptables -t nat -A PREROUTING -p tcp -i $INT_IFACE -d x.x.x.x --dport 20000:23999 -j DNAT --to-destination $SERVER_IP # 24000 ~ 32000
# reserved # 32001 ~ 32768
# sshd for c in {1..15}
do
for s in {1..12}
do
id=$((c*12-12+s))
dport=$((32000+id))
chassis=$((130+c))
ip="172.168.$chassis.$s"
echo "$ip:22 --> $dport" >> ip_port.info iptables -t nat -A PREROUTING -p tcp -i $PUB_IFACE --dport $dport -j DNAT --to-destination $ip:22
[ $? -eq 0 ] || echo "$ip failed!"
done
done # net.ipv4.ip_local_port_range = 32769 48999 # 48999 ~ 60999
# reserved # 61000 ~ 64999
# 20 range ports for every hosts rm -f ip_port.info
for c in {1..15}
do
for s in {1..12}
do
id=$((c*12-12+s))
dport=$((60980+$id*20)):$((60999+$id*20))
chassis=$((130+c))
ip="172.168.$chassis.$s"
echo "$ip --> $dport" >> ip_port.info if [ $c -eq 3 -a $s -eq 4 ] ;then
ip="172.168.130.2"
fi iptables -t nat -A PREROUTING -p tcp -i $PUB_IFACE --dport $dport -j DNAT --to-destination $ip
[ $? -eq 0 ] || echo "$ip failed!"
done
done # 65000 ~ 65536
# reserved

linux 脚本:iptables-nat.sh的更多相关文章

  1. 【linux】linux脚本中#!/bin/sh的含义

    来源:百度知道 #! /bin/sh 是指此脚本使用,/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径.

  2. Linux下如何将数据库脚本文件从sh格式变为sql格式

    在从事软件开发的过程中,经常会涉及到在Linux下将数据库脚本文件从sh格式变为sql格式的问题.本文以一个实际的脚本文件为例,说明格式转换的过程.        1. sh文件内容 本文中的文件名为 ...

  3. Linux在什么样的从脚本文件数据库sh格式改变sql格式

    在软件开发过程中,经常参与Linux从下一个脚本文件数据库sh格式改变sql格式问题.在本文中,一个实际的脚本文件,例如.描述格式转换过程.        1. sh文件内容 本文中的文件名称为exa ...

  4. [shell]Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别

    一直以为在shell脚本中#都是代表着注释功能,同样在脚本开始的#!/bin/sh也只是告诉用户这是一个shell脚本,而最近顺手查了下,才发现不是这个意思,分享下面的文章. 转自:http://ww ...

  5. Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别

    一.意思 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径. 其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释 ...

  6. Linux centos7iptables filter表案例、iptables nat表应用

    一.iptables filter表案例 vim /usr/local/sbin/iptables.sh 加入如下内容 #! /bin/bash ipt="/usr/sbin/iptable ...

  7. Linux利用iptables实现真-全局代理

    对于经常要浏览油管等被墙网站的人而言,利用代理来实现fq是非常有必要的.现在fq的方法中,最为主流的应该要数ssr了,因此本教程都是基于ssr的socks5代理而言的. 在windows中,ssr客户 ...

  8. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  9. Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  10. linux 防火墙 iptables实例讲解

    端口为例): 显示现有规则: iptables –L -n 清空现有规则表: iptables -F 黑名单:先允许所有数据包通过,后逐条添加黑名单规则. iptables –A INPUT–p tc ...

随机推荐

  1. java无效发源版本xx

    这三个地方统一一下 就可以解决了

  2. SpringBoot开启日志级别

    #开启logging logging.level.org.springframework.boot.autoconfigure: error logging: level: main.blog.map ...

  3. [Python图像处理] 一.图像处理基础知识及OpenCV入门函数

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. DataX更换python3,File “datax.py“, line 114 print readerRef

    datax 报错 File "datax.py", line 114 print readerRef 报错: File "datax.py", line 114 ...

  5. Mastering Regular Expressions(精通正则表达式) 阅读笔记:前言

    General Concept(一般概念) If you master the general concept of regular expressions, it's a short step to ...

  6. 掌握这些GitHub搜索技巧,你的开发效率将翻倍!

    作为开发it行业一员,学习借鉴他人项目是很有必要的,所以我们一般都会从github或者 Gitee 上面去参考借鉴他人的项目来学习增加自己的项目经验 但是github你真的用对了嘛,他的功能其实很强大 ...

  7. #Python 利用pandas 合并csv/xlsx文件

    上次我们分享了利用powerquery来合并文件进行数据分析,但是Pq有一部分局限性,在现实工作中,我们往往需要合并多个文件去处理数据, 如果面对20个甚至更多的文件,pq中的每一步的步骤都会去读取每 ...

  8. 2022-08-05:以下go语言代码输出什么?A:65, string;B:A, string;C:65, int;D:报错。

    2022-08-05:以下go语言代码输出什么?A:65, string:B:A, string:C:65, int:D:报错. package main import ( "fmt&quo ...

  9. 2021-06-12:已知一棵搜索二叉树上没有重复值的节点,现在有一个数组arr,是这棵搜索二叉树先序遍历的结果。请根据arr生成整棵树并返回头节点。

    2021-06-12:已知一棵搜索二叉树上没有重复值的节点,现在有一个数组arr,是这棵搜索二叉树先序遍历的结果.请根据arr生成整棵树并返回头节点. 福大大 答案2021-06-12: 先序遍历+中 ...

  10. 2021-09-01:三数之和。给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。

    2021-09-01:三数之和.给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组. ...