Mar*_*len 3 linux routing iptables
在我的办公室网络上,我有两个 Internet 连接和一个运行网站的 CentOS 服务器(端口 443 上的 HTTPS)。该网站应可通过第一个 Internet 连接 (ISP-1) 的公共 IP 公开访问。另一个 Internet 连接 ISP-2 标识网络上的默认网关。两个互联网连接都有带 NAT、SPI 防火墙等的路由器(家用)。 ISP-2 上的路由器是带有原始固件的 Netgear WNDR3700(又名 N600)。
问题是该网站无法访问。看起来 ISP-1 上的传入流量将到达服务器,但返回流量通过 ISP-2 路由,从而有效地使站点无法访问。据我所知,我无法在 WNDR3700 上进行基于端口的路由。
我有哪些选择可以使这项工作发挥作用?我一直在考虑在服务器本身上实现一个基于 iptables/路由的解决方案,但一直无法实现。
更新:请注意,服务器有一个网络接口将它连接到两个路由器。
小智 5
我有同样的问题,但我只用 iproute2(源路由)解决了。不需要使用 iptables 进行标记:
echo "101 webtraffic" >> /etc/iproute2/rt_tables
ip route add default table webtraffic via $ISP1_GW_LAN_IP
ip rule add from $ISP1_IP table webtraffic
Run Code Online (Sandbox Code Playgroud)
关键是不仅网络可以使用 ISP1 连接。你可以选择。这很好,因为如果有人失败,您可以从两个连接中通过 ssh 连接到服务器。作为 CentOS 用户,我创建了以下文件,因此我的更改在重启后不会丢失:
echo "default table webtraffic via $ISP1_GW_LAN_IP" >> /etc/sysconfig/network-scripts/route-eth1
echo "from $ISP1_IP table webtraffic" >> /etc/sysconfig/network-scripts/rule-eth1
Run Code Online (Sandbox Code Playgroud)