ArchLinux: Wi-Fi は接続されていますが、インターネットに接続できません。有線ではインターネットが機能します。

ArchLinux: Wi-Fi は接続されていますが、インターネットに接続できません。有線ではインターネットが機能します。

有線接続とWi-Fi接続の両方があります。

有線接続のインターネットは機能するが、Wi-Fiのインターネットは機能しない

有線と Wi-Fi の両方に接続している場合、ifconfig の出力は次のようになります。

root@gauranga /home/simha # ifconfig 
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.5.113  netmask 255.255.248.0  broadcast 192.168.7.255
        inet6 fe80::66f9:5aa3:5449:bbf5  prefixlen 64  scopeid 0x20<link>
        ether 68:f7:28:71:8d:be  txqueuelen 1000  (Ethernet)
        RX packets 736130  bytes 710984014 (678.0 MiB)
        RX errors 0  dropped 181  overruns 0  frame 0
        TX packets 278415  bytes 23924104 (22.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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 1  (Local Loopback)
        RX packets 1428  bytes 369189 (360.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1428  bytes 369189 (360.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.5.245  netmask 255.255.248.0  broadcast 192.168.7.255
        inet6 fe80::14ac:2256:c091:2660  prefixlen 64  scopeid 0x20<link>
        ether 2e:dc:cd:0d:1f:82  txqueuelen 1000  (Ethernet)
        RX packets 1237969  bytes 135361481 (129.0 MiB)
        RX errors 0  dropped 4059  overruns 0  frame 0
        TX packets 18074  bytes 2059915 (1.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Wi-Fiのみを使用している場合は192.168.0.1にpingします

$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=10.7 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=7.82 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=12.0 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=7.14 ms

一方、google.com に ping しても何も表示されません。それ以上進みません。

/etc/resolv.confは

nameserver 192.168.0.1

Wi-Fi接続時も同様:

simha@gauranga ~ % ip route show
default via 192.168.0.1 dev wlp3s0  proto static  metric 600 
192.168.0.0/21 dev wlp3s0  proto kernel  scope link  src 192.168.5.245  metric 600 

有線接続の場合:

simha@gauranga ~ % ip route show
default via 192.168.0.1 dev enp2s0  proto static  metric 100 
192.168.0.0/21 dev enp2s0  proto kernel  scope link  src 192.168.5.113  metric 100 

私はその問題を理解することができません。

これらはすべて、ArchLinux をアップグレードした後に発生しました。

答え1

/etc/resolv.confまず、google.com に ping すると、PC は(末尾の e なしで)で指定されたネームサーバーを介して名前を IP アドレスに解決しようとします。

2番目に、superuser.comでのタイプミスではなかった場合、ネームサーバーは19を指しています3.168.0.1、19ではない2.168.0.1 です。そのため、名前を解決できません。代わりに、PC は 193.168.0.1 にアクセスしようとしますが、見つかりません。(193.168.0.1 はネームサーバーであり、192.168.0.0/255.255.248.0 と同じネットワーク上にはありません。同じネットワーク上にある必要はありませんが、ネームサーバーへのルートを認識するためにルーティングを設定する必要があります。

次に、、または(同義語)ip route showを介してルーティング テーブルを確認します。デフォルト ルートがない場合は、 を介してルートを追加します。その後、もう一度試してください。ip routeip rip route add default via 192.168.0.1ping google.com

編集: デフォルト ルートを含むルートを永続的に構成するには、systemd のバージョンに応じて、netctlまたは を使用します。私の PC では、よりもルートを設定する方が安定するsystemd-networkd傾向があります。netctlsystemd-networkd

答え2

私の場合も、私のデバイス(Dell)はブロードコム 品番手動でインストールしたb43 ファームウェア)は(無線)Wi-Fiに接続されています(ルーターの接続デバイスで確認できます)が、インターネットにアクセスできません(できませんping)。私はiwd /iwctl現在指示されているようにArch Linux インストール ドキュメント

試してみるべきこと:

  • ノート:
    • 以下の5番を直接試してください。これが最終的に私ができるようになったステップです。ping google.com
    • 以下のコマンドは、wlan0に表示されるデバイス名を と想定していますip link。それに応じて調整してください。
  1. 開始/再起動ワードサービス

    sudo systemctl start iwd.service
    

    まだインストールされていない場合はインストールしてください。ルーターへの有線イーサネット接続を使用するか、インターネットにアクセスできるAndroidスマートフォンを接続して「モデムUSB」を有効にして有線接続として機能させます。Arch Linux環境でそれができない場合は、Archインストーラ(起動可能なドライブ)を使用してからハードディスクドライブを使用してみてmountくださいmount --mkdir /dev/sda2 /mnt/sda2chrootarch-chroot /mnt/sda2

    pacman -S iwd
    
  2. インターフェースを有効にする

    ip link  # or ls /sys/class/net
    ip link set wlan0 up  # where wlan0 is the device name
    
  3. 必ずWi-Fiに接続

    sudo iwctl device wlan0 show
    sudo iwctl station wlan0 show
    

    接続するまだ接続されていない場合

    sudo iwctl --passphrase mywifipassword station wlan0 connect MyWifiSsidName
    

    また、ルーターにアクセスして接続されているデバイスを表示し、接続されていることを確認します。

  4. 自動IPアドレス割り当てを有効にするには、内蔵DHCPクライアントを手動で有効にする注記に記載されている通りWi-Fi接続手順

    sudo cat >> /etc/iwd/main.conf 
    [General]
    EnableNetworkConfiguration=true
    
  5. これステップそれが最終的に私にとってはうまく機能するようになりました。

    システムログでDNSに関連するものを確認してください。私の場合errorfailWARNING: src/resolve.c:resolve_systemd_set_dns() condition !systemd_state.is_ready failed

    journalctl
    journalctl | grep -i dns
    

    エラーがないか確認してください。私の場合はFailed to set global data: Unit dbus-org.freedesktop.resolve1.service not found.

    systemd-resolve --status
    

    サービスを再起動する

    sudo systemctl restart systemd-resolved
    

    このステップの後、私は成功しましたping google.com

デバッグには、dmesgとなどのコマンドが役立ちますjournalctl

関連情報