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

관련 정보