- 便捷地设置iptables流量转发规则
- 当域名解析的地址发生变化时,自动更新流量转发规则,不需要手动变更(适用于ddns域名)
- 支持批量设置端口转发规则,提高效率
# 如果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) 批量添加转发规则"时,系统会提示您提供以下信息:
- 目标域名/IP:所有端口都将转发到此目标
- 本地端口范围:格式为"起始端口:结束端口",如"10000:10010"
- 目标端口范围:格式为"起始端口:结束端口",如"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.shjournalctl -exu dnat配置文件在
/etc/dnat/confiptables的后继者nftables已经在debain和centos最新的操作系统中作为生产工具提供,nftables提供了很多新的特性,解决了iptables很多痛点。
因此创建了一个新的项目/arloor/nftables-nat-rust。该项目使用nftables作为nat转发实现,相比本项目具有如下优点:
- 支持端口段转发
- 转发规则使用配置文件,可以进行备份以及导入
- 更加现代
所以强烈推荐使用/arloor/nftables-nat-rust。不用担心,本项目依然可以正常稳定使用。
PS: 新旧两个项目并不兼容,切换到新项目时,请先卸载此项目