有線接続と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 route
ip r
ip route add default via 192.168.0.1
ping google.com
編集: デフォルト ルートを含むルートを永続的に構成するには、systemd のバージョンに応じて、netctl
または を使用します。私の PC では、よりもルートを設定する方が安定するsystemd-networkd
傾向があります。netctl
systemd-networkd
答え2
私の場合も、私のデバイス(Dell)はブロードコム 品番手動でインストールしたb43 ファームウェア)は(無線)Wi-Fiに接続されています(ルーターの接続デバイスで確認できます)が、インターネットにアクセスできません(できませんping
)。私はiwd /iwctl
現在指示されているようにArch Linux インストール ドキュメント。
試してみるべきこと:
- ノート:
- 以下の5番を直接試してください。これが最終的に私ができるようになったステップです。
ping google.com
- 以下のコマンドは、
wlan0
に表示されるデバイス名を と想定していますip link
。それに応じて調整してください。
- 以下の5番を直接試してください。これが最終的に私ができるようになったステップです。
開始/再起動ワードサービス
sudo systemctl start iwd.service
まだインストールされていない場合はインストールしてください。ルーターへの有線イーサネット接続を使用するか、インターネットにアクセスできるAndroidスマートフォンを接続して「モデムUSB」を有効にして有線接続として機能させます。Arch Linux環境でそれができない場合は、Archインストーラ(起動可能なドライブ)を使用してからハードディスクドライブを使用してみて
mount
くださいmount --mkdir /dev/sda2 /mnt/sda2
。chroot
arch-chroot /mnt/sda2
pacman -S iwd
-
ip link # or ls /sys/class/net ip link set wlan0 up # where wlan0 is the device name
必ずWi-Fiに接続。
sudo iwctl device wlan0 show sudo iwctl station wlan0 show
接続するまだ接続されていない場合
sudo iwctl --passphrase mywifipassword station wlan0 connect MyWifiSsidName
また、ルーターにアクセスして接続されているデバイスを表示し、接続されていることを確認します。
自動IPアドレス割り当てを有効にするには、内蔵DHCPクライアントを手動で有効にする注記に記載されている通りWi-Fi接続手順。
sudo cat >> /etc/iwd/main.conf [General] EnableNetworkConfiguration=true
これはステップそれが最終的に私にとってはうまく機能するようになりました。
システムログでDNSに関連するものを確認してください。私の場合
error
はfail
WARNING: 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
。