Skip to content

lion1991/iptablesUtils

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

利用iptables设置端口转发的shell脚本

项目作用

  1. 便捷地设置iptables流量转发规则
  2. 当域名解析的地址发生变化时,自动更新流量转发规则,不需要手动变更(适用于ddns域名)
  3. 支持批量设置端口转发规则,提高效率

用法

# 如果vps不能访问 raw.githubusercontent.com 推荐使用这个
bash <(curl -fsSL https://www.arloor.com/sh/iptablesUtils/natcfg.sh)

bash <(curl -fsSL https://raw.githubusercontent.com/arloor/iptablesUtils/master/natcfg.sh)

输出如下:

#############################################################
# Usage: setup iptables nat rules for domian/ip             #
# Website:  http://www.arloor.com/                          #
# Author: ARLOOR <[email protected]>                         #
# Github: https://github.com/arloor/iptablesUtils           #
#############################################################

================ iptables端口转发管理工具 =================
请选择要执行的操作(输入数字并回车):

  [1] 增加单条转发规则     [3] 列出所有转发规则
  [2] 删除转发规则         [4] 查看当前iptables配置
  [5] 批量添加转发规则

输入 Ctrl+C 退出本脚本
=======================================================
#?

此时按照需要,输入1-5中的任意数字,然后按照提示即可

批量端口转发功能使用说明

当选择"5) 批量添加转发规则"时,系统会提示您提供以下信息:

  1. 目标域名/IP:所有端口都将转发到此目标
  2. 本地端口范围:格式为"起始端口:结束端口",如"10000:10010"
  3. 目标端口范围:格式为"起始端口:结束端口",如"20000:20010"

系统会自动创建相应数量的端口转发规则,将本地端口范围内的每个端口映射到目标端口范围内的对应端口。

示例:

  • 本地端口范围:10000:10005
  • 目标端口范围:20000:20005
  • 目标IP:1.2.3.4

将创建以下转发规则:

  • 本地10000端口 -> 1.2.3.4:20000
  • 本地10001端口 -> 1.2.3.4:20001
  • 本地10002端口 -> 1.2.3.4:20002
  • 本地10003端口 -> 1.2.3.4:20003
  • 本地10004端口 -> 1.2.3.4:20004
  • 本地10005端口 -> 1.2.3.4:20005

注意:两个端口范围必须包含相同数量的端口,否则会提示错误。

简化的删除功能使用说明

当选择"2) 删除转发规则"时,系统会自动列出所有现有的转发规则,每条规则前面都会显示一个编号:

当前转发规则列表:
----------------------------------------
[1] 本地端口: 10000 → 目标: 1.2.3.4:20000 (网口: eth0, 源IP: 5.6.7.8)
[2] 本地端口: 10001 → 目标: 1.2.3.4:20001 (网口: eth0, 源IP: 5.6.7.8)
[3] 本地端口: 10002 → 目标: 1.2.3.4:20002 (网口: eth0, 源IP: 5.6.7.8)
----------------------------------------
请输入要删除的规则编号 (格式说明: 
  - 单个规则: 输入数字,如 "3"
  - 多个规则: 用空格分隔,如 "1 3 5"
  - 连续规则: 用连字符表示范围,如 "2-5"
  - 混合输入: 如 "1 3-5 7 9-11"
  - 输入 0 返回主菜单)
请输入:

您可以:

  • 输入单个数字删除某条规则,如 "3"
  • 输入多个数字(用空格分隔)删除多条规则,如 "1 3 5"
  • 使用范围表示法删除连续的规则,如 "2-5"(删除第2到第5条规则)
  • 混合使用上述方式,如 "1 3-5 7 9-11"
  • 输入 0 返回主菜单

系统会在执行删除前显示所有将被删除的规则并要求确认,以防止误操作。确认后,选定的规则将被删除,并自动重新加载转发规则。

卸载

wget --no-check-certificate -qO uninstall.sh https://raw.githubusercontent.com/arloor/iptablesUtils/master/dnat-uninstall.sh && bash uninstall.sh

查看日志

journalctl -exu dnat

配置文件备份和导入导出

配置文件在

/etc/dnat/conf

推荐新项目——使用nftables实现nat转发

iptables的后继者nftables已经在debain和centos最新的操作系统中作为生产工具提供,nftables提供了很多新的特性,解决了iptables很多痛点。

因此创建了一个新的项目/arloor/nftables-nat-rust。该项目使用nftables作为nat转发实现,相比本项目具有如下优点:

  1. 支持端口段转发
  2. 转发规则使用配置文件,可以进行备份以及导入
  3. 更加现代

所以强烈推荐使用/arloor/nftables-nat-rust。不用担心,本项目依然可以正常稳定使用。

PS: 新旧两个项目并不兼容,切换到新项目时,请先卸载此项目

电报交流群

https://t.me/popstary

About

iptables转发ddns域名

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%