유선(enp59s0u2u1i5)과 무선 인터페이스가 모두 인터넷에 연결되어 있고, 그 외에도 VPN(wg-mullvad)을 사용합니다.
VPN 인터페이스에서 트래픽을 라우팅하는 데 사용되는 인터페이스(유선 또는 무선)를 어떻게 알 수 있나요?
이것은 다음의 출력입니다 ip link
.
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
4: enp59s0u2u1i5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
6: wg-mullvad: <POINTOPOINT,UP,LOWER_UP> mtu 1380 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/none
출력 netstat -r
:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 enp59s0u2u1i5
default _gateway 0.0.0.0 UG 0 0 0 wlan0
10.64.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 wg-mullvad
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp59s0u2u1i5
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
답변1
ip route get
정확한 매개변수, 즉 터널 종점의 원격 IP 주소와 중요하게는 명령에 의해 표시되는 경우 wg-mullvad에서 사용하는 fwmark와 함께 사용하십시오 wg
.
# wg show wg-foo
interface: wg-foo
fwmark: 0x52
peer:
endpoint: 1.2.3.4
# ip r get 1.2.3.4 mark 0x52
1.2.3.4 via 192.168.10.1 dev rtl0 table 82 mark 0x52
(추가하여 fibmatch
실제 사용되는 경로 항목을 직접 볼 수 있습니다.)
일반적으로 ip route
하나 이상의 라우팅 테이블이 있을 수 있으므로 Linux에서 라우팅 테이블을 나열하는 데 사용됩니다. WireGuard에서 설정한 패킷 표시는 ip rule
암호화된 트래픽에 대한 대체 테이블을 선택하는 데 사용됩니다. 수동으로 해결할 수도 있지만 일부 VPN 클라이언트는 약간 복잡한 규칙을 생성하므로 사용하기가 더 쉽고 ip r get
커널이 답변을 제공하도록 합니다.
# ip rule
501: from all fwmark 0x52 lookup 82 proto static
# ip r ls table 82
default via 192.168.10.1 dev rtl0 proto dhcp
netstat -r
(그러나 기본 테이블의 경우에도 Linux에서는 가장 간단한 경로 항목 이상을 표시하는 방법을 모르기 때문에 일반적으로 Linux에서는 피합니다 .)
tcpdump
각 인터페이스를 통해 전송되는 패킷을 문자 그대로 표시할 수 있다는 것을 잊지 마십시오 .