还在用iptables/nftables配NAT?来试试这套平台 - 内附教程
本来只是想做个nat平台的,后来越做越多就干脆一套全部做到位了# Forward - 面向 Linux 的高性能转发与 NAT 平台
(https://github.com/Unicode01/forward) 是一个面向 Linux 服务器与虚拟化场景的高性能转发与 NAT 平台,支持 eBPF 内核加速、userspace 回退、IPv6、托管网络、Web UI 和 WHMCS 集成。
## 性能对比
| Engine | Payload PPS | Mean Payload Throughput |
| --- | ---: | ---: |
| iptables | `~84.3-90.0k pps` | `~5.29 MiB/s` |
| nftables | `~84.1-86.3k pps` | `~5.20 MiB/s` |
| userspace | `~28.2-28.5k pps` | `~1.73 MiB/s` |
| TC | `~90.8-96.0k pps` | `~5.69 MiB/s` |
| Engine | Payload Throughput |
| --- | ---: |
| iptables | `~1027-1121 MiB/s` |
| nftables | `~965-1085 MiB/s` |
| userspace | `~841-875 MiB/s` |
| TC | `~1352-1509 MiB/s` |
# 多说无益,直接开始图文教程(PVE):
1. 在一台裸PVE上输入 ``bash <(curl -fsSL https://raw.githubusercontent.com/Unicode01/forward/refs/heads/main/bootstrap.sh)``回车进入自动安装+部署 直到出现下面的界面
> (更新也可以用这个命令)
> 如果出现 apt-get update 失败 (exit=0),3s 后重试 (1/3) 尝试去存储库禁用企业订阅
!(https://cr.un1c0de.com/f/ovXi7/b845d9ca-09f4-4b7e-9910-0c77a7c53596.png)
> token可以在`/opt/forward/config.json`更改,更改后使用`systemctl restart forward`应用
> 默认监听127.0.0.1,如果需要监听0.0.0.0请使用: `WEB_BIND=0.0.0.0 bash <(curl -fsSL https://raw.githubusercontent.com/Unicode01/forward/refs/heads/main/bootstrap.sh)`
> 如果已经安装需要修改为0.0.0.0请使用:`sudo python3 -c "import json; p='/opt/forward/config.json'; d=json.load(open(p,'r',encoding='utf-8')); d['web_bind']='0.0.0.0'; json.dump(d, open(p,'w',encoding='utf-8'), ensure_ascii=False, indent=2); open(p,'a',encoding='utf-8').write('\n')" && sudo systemctl restart forward
`
2.进入WebUI管理界面,按下面的顺序创建托管网桥
!(https://cr.un1c0de.com/f/eO4T5/a81cb32c-d762-4dd6-b462-73dce40a73e1.png)
> 默认创建的出向NAT是Symmetric,如果需要Full-cone需要按下面的步骤做:
> 先禁用自动出向NAT!(https://cr.un1c0de.com/f/7BjtY/66bde1ba-eda2-42dc-b5e3-e679c9e6b6d6.png)
> 然后去出向NAT页配置 !(https://cr.un1c0de.com/f/Zw3FQ/cc8f6838-4d1f-4afd-a247-4df10d3b9d5a.png) 即可做到fullcone
3.为了让PVE识别,需要写入宿主机配置
> 如果PVE有没保存的更改一定要先点击保存,**一定一定**
> !(https://cr.un1c0de.com/f/pXnCo/3f427d3a-c3e1-4d1e-a823-0b7a855372d2.png)
!(https://cr.un1c0de.com/f/B1Wtj/1513446d-bb41-4549-9471-20d090634894.png)
4.这时就可以在PVE里看到并选择桥接接口了
!(https://cr.un1c0de.com/f/O2aiP/0b8986ca-2a4a-4bd6-8afe-b16d84ec88d3.png)
4.1.如果需要固定DHCP可以按下面图操作
!(https://cr.un1c0de.com/f/Qn7HQ/a739b8ad-77b6-45b6-b5d0-c7a27268d5ce.png)
4.2 如果需要指定IPv6分配可以按下面操作
- 关闭ipv6自动下发并保存 !(https://cr.un1c0de.com/f/gegHx/526deb8e-ae4d-450e-87a4-3226758860e6.png)
- 配置IPv6分配 !(https://cr.un1c0de.com/f/RPEtL/d240d67d-ebea-462e-b04c-d876ae97f396.png)
5.这时虚拟机内就可以通过DHCP自动获取IP了
6.端口转发,共享建站和范围映射这些常见功能就自己配置就行,应该都会,解释一下透传:
- 开启透传:不做src IP修改将请求源地址直接传回目标IP,相当于虚拟机可以拿到请求的源IP
- 关闭透传:宿主机使用自己的IP进行回传,虚拟机192.168.1.2拿到192.168.1.1的网关IP,而不是公网IP
> 补充一点配置项解释:
> !(https://cr.un1c0de.com/f/zveIJ/91b8c0a6-8a8f-4898-beaf-f6202fd1e501.png)
# 如果需要物理接口配置就更简单了
1. 先配置托管网络
!(https://cr.un1c0de.com/f/a1zH9/35faa229-d09c-4a63-84cb-56805b5fa608.png)
然后就没有2了
# WHMCS插件在 https://github.com/Unicode01/forward/tree/main/plugins/whmcs/forward, 需要自取
github: https://github.com/Unicode01/forward
> 注意:
> 没有Firewall功能,需要Firewall还是要上层设备做或者等我心血来潮做
如果对你有帮助麻烦点个star,有什么疑问或者不懂的都可以发issue或者评论区交流 支持一下,小白不知道是什么 看着不错 感谢分享 ikuai主路由nat的,装了这个不久多重nat了? 本帖最后由 Unicode 于 2026-4-21 05:26 编辑
倒霉鬼 发表于 2026-4-14 10:34
ikuai主路由nat的,装了这个不久多重nat了?
会有优先级,理论可以共存(看优先级),这个性能好但是没那么多功能,看你需求吧,和ikuai定位不一样,这个更适合做次级路由
页:
[1]