2024年12月

编辑 /etc/sysctl.conf 文件并添加

net.ipv4.ip_forward = 1
安装nftables

apt install -y nftables
编辑nftables配置文件
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
sudo systemctl restart nftables
sudo nft -f /etc/nftables.conf

常见区域旗帜表

区域旗帜代码备注来源解释
中国香港hkHong Kong取自英文 Hong Kong 的缩写
中国澳门moMacao取自英文 Macao 的缩写
中国台湾twTaiwan取自英文 Taiwan 的缩写
英国gbGreat Britain (UK)取自英文 Great Britain 的缩写
美国usUnited States取自英文 United States 的缩写
加拿大caCanada取自英文 Canada 的缩写
澳大利亚auAustralia取自英文 Australia 的缩写
新西兰nzNew Zealand取自英文 New Zealand 的缩写
日本jpJapan取自英文 Japan 的缩写
韩国krSouth Korea取自英文 Korea 的缩写
德国deGermany来自德语 Deutschland 的缩写
法国frFrance取自英文 France 的缩写
意大利itItaly取自英文 Italy 的缩写
西班牙esSpain来自西班牙语 España 的缩写
俄罗斯ruRussia取自英文 Russia 的缩写
印度inIndia取自英文 India 的缩写
巴西brBrazil取自英文 Brazil 的缩写
南非zaSouth Africa来自荷兰语 Zuid-Afrika 的缩写
新加坡sgSingapore取自英文 Singapore 的缩写

使用说明

  • 旗帜代码:依据国际标准 ISO 3166-1 Alpha-2 分配。
  • 来源解释:大多数国家代码基于英文名称缩写,少数基于本地语言(如德国、南非、西班牙)。