Alvis 发表于 2024-12-5 18:42:11

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
```

ww4arnv9n8 发表于 2024-12-13 15:56:27

用socat也不错
页: [1]
查看完整版本: nftables转发落地机中转机教程