私は Wi-Fi リンクを備えた Ubuntu Bionic マシンを持っており、そこに Wireguard トンネルを設定しました。
# 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 5502 bytes 545376 (545.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5502 bytes 545376 (545.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
inet 10.0.0.3 netmask 255.255.0.0 destination 10.0.0.3
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 22980 bytes 2777236 (2.7 MB)
RX errors 75 dropped 0 overruns 0 frame 75
TX packets 23467 bytes 12255956 (12.2 MB)
TX errors 0 dropped 362 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.218 netmask 255.255.0.0 broadcast 192.168.255.255
ether dc:85:de:f3:3f:65 txqueuelen 1000 (Ethernet)
RX packets 103227 bytes 54970550 (54.9 MB)
RX errors 0 dropped 103695 overruns 0 frame 0
TX packets 41654 bytes 15633577 (15.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
以前はすべてのトラフィックを Wireguard トンネル経由でリダイレクトしていましたが、現在はこれを逆にして、ピアがこのホスト経由で転送できるようにしました。ただし、何らかの理由で、パケットがまだトンネル経由でルーティングされるようです。
これが私のルーティングテーブルです:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 600 0 0 wlan0
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wg0
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.1.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlan0
192.168.100.1 192.168.1.1 255.255.255.255 UGH 0 0 0 wlan0
外部アドレスに ping または curl を実行しようとすると、常にハングします。Traceroute は、トンネルを介してパケットをルーティングしようとしていることを示しています (ピアは現在、パケットをドロップするように設定されています)。
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 10.0.0.1 (10.0.0.1) 68.393 ms 74.587 ms 74.328 ms^C
ただしtraceroute 8.8.8.8 -i wlan0
、上記のルーティング テーブルで強制されているように、traceroute に wlan0 の使用を強制する場合は機能します。
何が起こっているのでしょうか? ルーティング テーブルには、8.8.8.8 をターゲットとするパケットは転送のために wlan0 から 192.168.1.1 に送信される必要があると記載されていませんか?
(関係があるかもしれないが、現在私が使用している iptables は-A FORWARD -i wg0 -j ACCEPT
とのみである-t nat -A POSTROUTING -o wlan0 -j MASQUERADE
)
答え1
は、またはをwg-quick up
使用しても表示されない別のテーブルにルートを追加するようです。 を実行すると、それが表示されます。この場合、それは というテーブルにあり、デフォルトのテーブルよりも優先されていました。route -n
ip route show
ip route show table all
51820