我需要在 Raspberry Pi 上远程安装 Omxplayer。 RPi 通过 PPP0 接口由 LTE 调制解调器连接。我的 RPI 位于另一个国家/地区,我使用 SSH 通过 VPN 连接到 Raspberry。我的 VPN 无法访问 Internet,默认网关是 10.1.64.1 (PPP0)。
RPI还有WiFi连接:WLAN0接口。我想使用 WLAN0 启动:“sudo apt-get install omxplayer”,而不会丢失通过 PPP0 的 SSH 通信
ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 184 bytes 11776 (11.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 184 bytes 11776 (11.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.1.64.45 netmask 255.255.255.255 destination 10.64.64.64
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 202 bytes 25021 (24.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 808 bytes 65151 (63.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.93 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2db7:3540:5e17:a470 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:da:d6:37 txqueuelen 1000 (Ethernet)
RX packets 1806 bytes 369775 (361.1 KiB)
RX errors 0 dropped 620 overruns 0 frame 0
TX packets 184 bytes 25229 (24.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果更改默认网关,我就会失去与设备的连接。我已尝试以下命令,但它不起作用:我丢失了 ssh 连接。
sudo ip route change default via 192.168.1.1 dev wlan0
sudo route add default gw 192.168.1.1
我的路线表:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
0.0.0.0 192.168.1.1 0.0.0.0 UG 302 0 0 wlan0
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
169.254.0.0 0.0.0.0 255.255.0.0 U 203 0 0 wwan0
192.168.1.0 0.0.0.0 255.255.255.0 U 302 0 0 wlan0
$ ip route show
default dev ppp0 scope link
default via 192.168.1.1 dev wlan0 src 192.168.1.205 metric 302
10.64.64.64 dev ppp0 proto kernel scope link src 10.1.64.54
169.254.0.0/16 dev wwan0 proto kernel scope link src 169.254.104.103 metric 203
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.205 metric 302
如何选择网络接口?
提前致谢
答案1
如果我理解正确的话,你有这样的安排:
(Client)---LAN?---(VPN)---ppp0---(Raspberry Pi)---wlan0---(the internet)
您提到,当您将默认路由更改为使用 wlan0 时,您将失去 SSH 访问权限。您还指出您无法通过 ppp0(通过您的 VPN)访问互联网。
如果您只想让您的 r-pi 能够访问互联网......
更改默认路由时,您无法通过 SSH 访问 PI,因为默认路由是唯一可以到达 SSH 客户端的路由。所以你可以做的是添加一个新的路由来与你的 SSH 客户端对话然后更改您的默认路线。
临时解决此问题的一个非常简单/肮脏的方法是:
# Find your current SSH client IP address as seen by the raspberry pi
env | grep SSH_CLIENT
然后假设这为您提供了 IP 10.20.30.40
,添加一条到该 IP 的路由:
ip route add 10.20.30.40 dev ppp0 proto kernel scope link
# Now you can change your default route
ip route change default via 192.168.1.1 dev wlan0
一种更好的方法是发现可以通过 ppp0 访问哪些子网,然后为这些子网(而不仅仅是一个 SSH 客户端)创建路由。我不知道如何找到这些子网。但一旦你掌握了这个,技术就是一样的。 (例如子网10.20.0.0/16
):
ip route add 10.20.0.0/16 dev ppp0 proto kernel scope link
# Now you can change your default route
ip route change default via 192.168.1.1 dev wlan0