Linuxでプログラムをインストールするときにネットワークインタフェースを選択する方法は?

Linuxでプログラムをインストールするときにネットワークインタフェースを選択する方法は?

Raspberry PiにリモートでOmxplayerをインストールする必要があります。 RPi は PPP0 インターフェイスを介して LTE モデムに接続されます。私のRPIは別の国にあり、SSHを使用してVPNを介してRaspberryに接続しています。私のVPNはインターネットにアクセスできず、デフォルトゲートウェイは10.1.64.1(PPP0)です。

RPIにはWiFi接続もあります:WLAN0インターフェイス。 PPP0を介したSSH通信を失うことなくWLAN0:「sudo apt-get install omxplayer」を使用したいと思います。

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クライアントに接続できる唯一のパスであるため、SSHを介してPIにアクセスできなくなります。したがって、あなたができることは、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

おすすめ記事