nftables转发落地机中转机教程
- 编辑 /etc/sysctl.conf 文件并添加```bash
net.ipv4.ip_forward = 1
```
- 安装nftables
```bash
apt install -y nftables
```
- 编辑nftables配置文件
```bash
vim /etc/nftables.conf
# 创建一个名为 "foward2jp" 的表,用于转发流量
table ip foward2jp {
# 在 prerouting 链中配置 DNAT(目的地址转换)
chain prerouting {
# 设置该链的类型为 NAT(网络地址转换),并在 prerouting 阶段生效
type nat hook prerouting priority -100;# priority -100 表示较早匹配规则
# 将所有目标端口为 1234 的 TCP 和 UDP 流量的目的地址重定向到 JP 服务器 () 的 17443 端口
tcp dport 1234 dnat to 目的机器的ip:17443
udp dport 1234 dnat to 目的机器的ip:17443
# 上述两行规则会将访问本机 1234 端口的 TCP/UDP 流量重定向到指定的远程服务器端口
}
# 在 postrouting 链中配置 SNAT(源地址转换)
chain postrouting {
# 设置该链的类型为 NAT,并在 postrouting 阶段生效
type nat hook postrouting priority 100;# priority 100 表示在路由后生效
# 使用 masquerade(伪装)机制,将流向 JP 服务器 (目的机器的ip) 的流量的源地址转换为本机的出站 IP 地址
ip daddr 目的机器的ip masquerade
# masquerade 的效果是隐藏本地 IP,使目标服务器 (JP 服务器) 看到的是中转机的外网 IP,而非局域网 IP
}
}
```
- 重启nftables
```bash
sudo systemctl restart nftables
sudo nft -f /etc/nftables.conf
``` 用socat也不错
页:
[1]