Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arloor/nftables-nat-rust
nftables nat rule generator——nftables nat规则生成器
https://github.com/arloor/nftables-nat-rust
Last synced: 25 days ago
JSON representation
nftables nat rule generator——nftables nat规则生成器
- Host: GitHub
- URL: https://github.com/arloor/nftables-nat-rust
- Owner: arloor
- License: mit
- Created: 2020-02-03T14:26:04.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-07T15:53:32.000Z (6 months ago)
- Last Synced: 2024-05-21T08:19:54.263Z (6 months ago)
- Language: Rust
- Homepage:
- Size: 150 KB
- Stars: 656
- Watchers: 17
- Forks: 203
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
-----------------------------------------------------------------
## 基于nftables的端口转发管理工具
用途:便捷地设置nat流量转发
> 适用于centos8及以后的redhat系发行版和支持nftables的debian系linux发行版如debian10
## 优势
1. 实现动态nat:自动探测配置文件和目标域名IP的变化,除变更配置外无需任何手工介入
2. 支持IP和域名
3. 支持单独转发tcp或udp
4. 支持转发到本机其他端口(nat重定向)【2023.1.17更新】
5. 以配置文件保存转发规则,可备份或迁移到其他机器
6. 自动探测本机ip
7. 支持自定义本机ip【2023.1.17更新】
8. 开机自启动
9. 支持端口段
10. 轻量,只依赖rust标准库## 准备工作
1. 关闭firewalld
2. 关闭selinux
3. 开启内核端口转发
4. 安装nftables(一般情况下,centos8默认包含nftables)以下一键完成:
```shell
# 关闭firewalld
service firewalld stop
systemctl disable firewalld
# 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 修改内存参数,开启端口转发
echo 1 > /proc/sys/net/ipv4/ip_forward
sed -i '/^net.ipv4.ip_forward=0/'d /etc/sysctl.conf
sed -n '/^net.ipv4.ip_forward=1/'p /etc/sysctl.conf | grep -q "net.ipv4.ip_forward=1"
if [ $? -ne 0 ]; then
echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p
fi
# 确保nftables已安装
yum install -y nftables
```**debian系说明** 请自行使用apt安装nftables,并禁用iptables
## 使用说明
```shell
# 必须是root用户
# sudo su
# 下载可执行文件
#curl -sSLf http://cdn.arloor.com/tool/dnat -o /tmp/nat
curl -sSLf https://us.arloor.dev/https://github.com/arloor/nftables-nat-rust/releases/download/v1.0.0/dnat -o /tmp/nat
install /tmp/nat /usr/local/bin/nat# 创建systemd服务
cat > /lib/systemd/system/nat.service < /opt/nat/env #自定义本机ip,用于多网卡的机器# 生成配置文件,配置文件可按需求修改(请看下文)
cat > /etc/nat.conf < /opt/nat/env
```### 如何查看最终的nftables规则
```shell
nft list ruleset
```### 查看日志
执行
```shell
cat /opt/nat/nat.log
```或执行
```shell
journalctl -exfu nat
```## 联系
[Telegram](https://t.me/popstary)
## 赏个鸡腿吧