我試圖透過不同的介面(在帶有 raspbian strech 的樹莓派上)打開多個反向 ssh 隧道作為後備。
也就是說,我在透過不同介面開啟傳出 ssh 連線時確實遇到問題。現在有:
- eth0 作為靜態 IP (192.168.1.200)
- wlan0 經 dhcp (192.168.178.100)
將 ssh 綁定到 IP 位址適用於“eth0”,但不適用於“wlan0”:
ssh -b 192.168.1.200 user@externalip
工作中ssh -b 192.168.178.100 user@externalip
是不是在職的
除此之外,我可以透過兩個互聯網介面追蹤路由:
ssh -b 192.168.1.200 user@externalip
工作中
sudo traceroute -i wlan0 google.com
traceroute to google.com (172.217.21.14), 30 hops max, 60 byte packets
1 192.168.178.1 (192.168.178.1) 12.528 ms 17.229 ms 21.757 ms
2 192.0.0.1 (192.0.0.1) 26.576 ms 41.445 ms 47.408 ms ...
...
sudo traceroute -i eth0 google.com
traceroute to google.com (172.217.21.14), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 0.537 ms 0.404 ms 0.570 ms
...
知道如何讓 ssh 在兩個介面上都運作嗎?
路線-n:
0.0.0.0 192.168.1.1 0.0.0.0 UG 202 0 0 eth0
0.0.0.0 192.168.178.1 0.0.0.0 UG 303 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.252.0 U 202 0 0 eth0
192.168.178.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
答案1
預設情況下,僅使用(主)路由表中的第一個符合條目來決定到目的地的路由。此外,在該匹配條目上未收到的資料包將被丟棄,因為rp_filter
。
您的設定需要策略路由:路由現在必須不僅取決於目的地,還取決於來源,透過在多個路由表中儲存多個路由並選擇適當的表,從而根據來源進行路由。前面的陳述仍然正確:將選擇表中的第一個匹配路由,但它可能是從(一個或多個)不同的表中選擇的。
main
因此,您首先設定額外的路由表(「任意」選擇的表值)來補充僅使用該表無法運作的內容:
ip route add table 1921681 default via 192.168.1.1 dev eth0
ip route add table 192168178 default via 192.168.178.1 dev wlan0
然後使用正確的來源選擇器來選擇適當的表ip rule
。這裡只需一條新規則就足夠了,但為了對稱性,將添加兩條規則,從而在主路由表上提供更大的靈活性,例如在更改度量時(見下文):
ip rule add from 192.168.0.0/22 lookup 1921681
ip rule add from 192.168.178.0/24 lookup 192168178
現在的規則是:
# ip rule
0: from all lookup local
32764: from 192.168.178.0/24 lookup 192168178
32765: from 192.168.0.0/22 lookup 1921681
32766: from all lookup main
32767: from all lookup default
將條目32764
et視為尋找常用表格的32765
條目的例外。32766
main
就是這樣,現在您先前的命令將按預期工作,當您使用 option 聲明來源 IP 時,兩條路由可以同時工作-b
。
如果您不指定來源 IP,系統將不會立即符合附加規則和路由表,並且將預設為使用主表時所做的選擇:第一個符合的路由將獲勝,從而192.168.1.200
在目前設定中選擇來源。
再說一遍,如果你沒有明確指出來源 IP(通常是這種情況),你的主路由仍然會選擇預設預設路由和相應的預設來源 IP,然後規則32764
將32765
確保它在任何情況下都能正常運作。因此,您可以使用指標來選擇優先的路由和 IP。
例如,wlan0
在未指定來源 IP 的情況下,現在優先選擇 to have ,增加to have的預設路由202
的度量,以便先選擇 IP。明確指定來源 IP 仍將直接符合規則或.先前建立的連線算是“聲明來源IP”,因此不會受到干擾。eth0
1000
wlan0
32764
32765
ip route add default via 192.168.1.1 dev eth0 metric 1000
ip route del default via 192.168.1.1 dev eth0 metric 202
一些附加說明:
答案2
確保您已啟用介面
ip link set dev eth0 up
ip link set dev wlan0 up