NAT中转节点配制

在 CentOS 7 中,使用 `firewalld` 配合公网 IP 进行流量中转(即端口转发),是 `firewalld` 的核心功能之一。

根据你之前查看 IP 的情况,你的服务器直接拥有公网 IP(`46.29.166.151`),这使得配置更加直接。你可以将访问这台服务器的流量,转发到任何你能网络互通的服务器(无论是内网服务器还是另一台公网服务器)。

以下是基于 `firewalld` 的标准配置流程:

核心原理

流量路径: 用户访问 `你的公网服务器:端口A`   ——  `firewalld` 拦截并修改数据包   ——  流量被发送到 `目标服务器:端口B`。

配置步骤

1. 开启内核转发功能

这是实现“中转”的基础,必须开启 Linux 内核的 IP 转发。

# 编辑系统配置文件

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

# 使配置立即生效(无需重启)

sysctl -p

2. 开启 IP 伪装(Masquerade)

这一步至关重要。它会修改数据包的源 IP 地址,让目标服务器知道回包应该发给谁(发给你的中转服务器),而不是直接发给最终用户。

# 开启伪装功能(–permanent 表示永久生效)

firewall-cmd --permanent --add-masquerade

3. 配置端口转发规则

假设你的需求是:将访问本机 443 端口的流量,转发到目标服务器 `192.168.1.100`的 8443 端口。

执行以下命令:

firewall-cmd --permanent --add-forward-port=port=443:proto=tcp:toaddr=192.168.1.100:toport=8443

参数详解:

    • `–permanent`:永久生效(重启后不失效)。

    • `port=443`:本机监听的端口(入口)。

    • `proto=tcp`:协议类型(也可以是 `udp`)。

    • `toaddr=192.168.1.100`:目标服务器的 IP 地址(出口去向)。

    • `toport=8443`:目标服务器上接收流量的端口。

附加:使用TCP Fast Open 以加速交互和数据传输

编辑主配置文件  /etc/sysctl.conf

添加如下配置

 net.ipv4.tcp_fastopen = 3

# 连接数优化

net.core.somaxconn = 32768

net.ipv4.tcp_max_syn_backlog = 8192

bab11f554e47a8b84fd0eb8e36e96a53

4. 重新加载防火墙

添加规则后,必须重载配置才能生效。

firewall-cmd --reload

常见场景示例

为了方便你理解,这里列出几种常见的中转需求写法:

场景描述命令示例
TCP 转发`firewall-cmd –permanent –add-forward-port=port=3389:proto=tcp:toaddr=10.0.0.5:toport=3389`
UDP 转发`firewall-cmd –permanent –add-forward-port=port=53:proto=udp:toaddr=8.8.8.8:toport=53`
端口映射`firewall-cmd –permanent –add-forward-port=port=80:proto=tcp:toaddr=192.168.1.20:toport=8080` (访问本机80——转发到目标机8080)
多端口范围`firewall-cmd –permanent –add-forward-port=port=4400-4600:proto=udp:toaddr=1.1.1.1` (转发 UDP 端口段)

验证与排查

    • 查看规则是否生效:
      firewall-cmd --list-all

  1.  

    1. 在输出结果中,你应该能看到 `masquerade: yes`(伪装开启)以及 `forward-ports: …`(你的转发规则)。

    1. 检查目标服务器连通性: 确保你的中转服务器能直接访问目标服务器。在中转服务器上执行:

    1. “`bash     ping 192.168.1.100     telnet 192.168.1.100 8443  # 检查端口是否通     “`

    1. 安全组/云防火墙: 既然你使用的是公网 IP,请务必检查云服务商(如阿里云、腾讯云、AWS等)的控制台安全组设置。确保入方向(Inbound)放行了你配置的端口(如 443),否则流量根本进不来。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容