我有:
eth0 eth0
Router 1|eth1 ---- eth1|Router 2
两个 eth0 都连接到互联网。但是,目前路由器 2 上到达互联网的默认路由是通过 eth1(因此它经过路由器 1)。路由器 1 可以正常访问互联网,但是我无法从互联网 ssh 到路由器 2 上 eth0 上的 ip。
我尝试了“sudo bash -c 'echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter”,但问题并未解决。当我在路由器 2 上执行数据包转储时,对尝试 ssh 到路由器 2 的机器的源 IP 进行过滤,我看到了传入的数据包,但没有回复。
答案1
一些问题:
路由器 2 上是否运行了防火墙?
SSH 是否在路由器 2 上运行?
路由器 1 上是否有 NAT 或访问规则?
两个路由器上的路由都正确吗?
答案2
请显示您的路由表。这很可能是路由问题 :)
要获取路由表,请输入
route -n
答案3
事实上,我的 rp_filter 想法是正确的解决方案。当我在两个路由器上禁用它时,问题就解决了。
这显然是 BIG HAMMER 方法,所以我需要研究所有逻辑并找出我需要有选择地禁用哪些,然后使用 iptables 为其提供更细粒度的保护……未完待续 :-)