如何让 SSH 流量经过第二个路由表

如何让 SSH 流量经过第二个路由表

我基本上是尝试通过 SSH 连接到始终连接到 VPN 的 RPi,这会导致 SSH 失败。我已收到关于如何解决这个问题的一些想法,在我看来最好的办法是让 SSH 流量通过第二个路由表。

问题是,对于我这样的网络菜鸟来说,这相当复杂。所以我想知道我是否可以得到一些入门的指点,因为我完全迷路了。特别是关于如何标记 SSH 流量以通过第二个表。

谢谢

-A

编辑:再次感谢 Marius 的回答。我终于有时间处理这个问题了,以下是我所做的。

  1. sudo modprobe ip_conntrack
  2. sudo iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j CONNMARK --set-mark 1
  3. 然后以 root 身份:
  4. echo 200 hma >> /etc/iproute2/rt_tables
  5. ip 路由添加 10.0.1.0/24 dev eth0 表 hma
  6. ip 规则添加 fwmark 1 表 hma

但似乎不起作用。由于我真的不知道该怎么做,所以这并不奇怪。

更具体地说,我对 2) 和 4) 真的不确定。2) 完全正确吗?对于 4),我在哪里可以找到要添加的正确 IP,/24 是什么意思,它是否应该通过 eth0(我的 vpn 似乎是 tun0)?

再次感谢

EDIT2:重启后,我实际上已经失去了对 pi 的 SSH 访问权限 :(

答案1

这其实很简单,对我们所有人来说都很幸运:让我将 IP2 称为第二个路由表中本地主机的 IP 地址。然后您要做的就是:

      ssh -b IP2 me@some_remote_machine 

-b选项指示 ssh bindIE,用作源地址)到 IP 地址 IP2。如果您已经设置了第二个路由表,则使用如下规则

      ip rule from IP2 table2

其中 table2 是第二个路由表,一切就绪。

相关内容