Linux
如何選擇網路介面來在 linux 中安裝程序?
我需要在 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
如何選擇網路介面?
提前致謝
如果我理解正確,你有這樣的安排:
(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