所以我有一台运行 Debian Stretch 的计算机;它需要使用静态 IP(例如 192.168.0.x)连接到 Raspberry Pi eth0
,同时能够使用移动宽带调制解调器通过 sftp 抓取文件(wwx....
;这是一个动态 IP,例如 10.73.28.x) 。
问题是,一旦两台计算机连接并且 eth0 启动,sftp 就不再工作,因为它似乎尝试使用 eth0 进行连接。如何强制它使用不同的网络接口,例如 wlan 或调制解调器?
例如,如果我有服务器的 IP 并且不需要 DNS,则这适用于 ping:
ping -I wwx58... 81.169.bla.bla
所以我尝试了这个:
sftp -o BindAddress=10.73.bla.bla -q [email protected]: <<<"ls -la"
但它仍然没有选择接口,或者有些东西不起作用:
Couldn't read packet: Connection reset by peer
答案1
eth0
通过配置接口/etc/network/interfaces
,例如:
auto eth0
iface eth0 inet static
address 192.168.0.123
netmask 255.255.255.0
通过该文件定义的任何接口都将被 NetworkManager 忽略,因此 NetworkManager 仍将尝试通过其他接口建立连接。
由于按eth0
上述方式配置的接口,noet 是否设置了网关(默认路由),该网关将在其他接口和 sftp 上配置,并且与 192.168.0.0/24 之外的其他网络的任何其他连接都应该可以正常工作。
答案2
听起来你的路线配置错误。是什么赋予了ip route
?
听起来也不eth0
应该有默认路由 ( nmcli connection modify "$ETH0PROFILE" ipv4.never-default yes
) 和静态地址 ( nmcli connection modify "$ETH0PROFILE" ipv4.method manual ipv4.addresses 192.168.24.5/24
)。
您也可以设置ipv4.route-metric
以确保wwx
获得更好的默认路由。