AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 826429
Accepted
Cage
Cage
Asked: 2017-01-16 10:38:28 +0800 CST2017-01-16 10:38:28 +0800 CST 2017-01-16 10:38:28 +0800 CST

如何通过 VPN 隧道重定向公共 IP

  • 772

我是新手,我已经查看了许多其他类似的问题,但我找不到答案。

我在 SoYouStart 有两台服务器,在一台服务器上我有一个 HAProxy 虚拟机。两台服务器都通过 Strongswan VPN 隧道连接。我还有一个故障转移 IP,它在端口 80、443 和其他几个端口上侦听 HAProxy。

HAProxy VM1 网络配置:

iface eth0 inet static
    address 192.168.100.2
    netmask 255.255.255.224
    network 192.168.100.0
    broadcast 192.168.100.31
    gateway 192.168.100.30
    post-up ip addr add FAILOVER_IP dev $IFACE
    pre-down ip addr del FAILOVER_IP dev $IFACE

在主机服务器上,我使用此路由使故障转移 IP 在我的 HAProxy VM 上可用。

ip route add FAILOVER_IP/32 via 192.168.100.2 dev vmbr1

一切正常,但现在我想通过我的 VPN 隧道为服务器 2 上的所有 VM 将流量重定向到此故障转移 IP。

我已经尝试过这些规则,但它不起作用。

服务器 2:

iptables -t nat -A PREROUTING -i eth0 -d FAILOVER_IP -m connmark 
         --mark 0xE010E798 -j DNAT --to-destination 192.168.100.2

服务器 1:

iptables -t nat -A POSTROUTING -i eth0 -d 192.168.100.2/32 
         --match connmark --mark 0xE010E798 -j SNAT --to-source FAILOVER_IP

请有人帮我弄清楚我做错了什么?我的目标是在服务器 2 上拥有第二个 HAProxy 实例,并将内部流量重定向到活动的 HAProxy 实例。

谢谢。

iptables static-routes haproxy
  • 1 1 个回答
  • 973 Views

1 个回答

  • Voted
  1. Best Answer
    Cage
    2017-01-17T12:13:45+08:002017-01-17T12:13:45+08:00

    找到了答案。首先,我不知道该标记仅适用于本地机器。第二个错误是我在服务器 1 上使用了 SNAT,它更改了发件人地址,但我需要再次更改目标地址,我不得不更改接口。我的工作规则是

    服务器 2

    iptables -t nat -A PREROUTING -i vmbr1 -p tcp -d FAILOVER_IP 
             -j DNAT --to-destination 192.168.100.2
    

    服务器 1

    iptables -t nat -A PREROUTING -p tcp -d 192.168.100.2 
             -j DNAT --to-destination FAILOVER_IP
    
    • 0

相关问题

  • OpenVPN 的 Linux IP 转发 - 正确的防火墙设置?

  • iptables 单个规则中的多个源 IP

  • 存储 iptables 规则的规范方法是什么

  • 使用 iptables 和 dhcpd 进行端口转发

  • 根据 Apache 日志数据自动修改 iptables 以阻止行为不良的客户端

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve