設定 - ネットワーク
概要
ネットワークの設定には、GNOME設定またはKDEシステム設定を使用する方法(NetworkManager)、YaSTを使用する方法(Wicked)、テキストファイルを直接編集する方法等がある。
NetworkManager : CUIでの設定
セキュリティ上の理由から、接続プロファイルには、秘密鍵やパスフレーズ等の機密情報が含まれることがあるため、
NetworkManagerでは、所有者がルートであり、ルートのみが読み書き可能な設定ファイルを作成する必要がある。
接続プロファイルの目的に応じて、以下のいずれかのディレクトリに設定ファイルを作成する。
- /etc/NetworkManager/system-connectionsディレクトリ
- 永続的に設定する場合に使用する。
- /run/NetworkManager/system-connectionsディレクトリ
- PCを再起動する時、自動的に削除される一時的な設定ファイルの場合に使用する。
- /usr/lib/NetworkManager/system-connectionsディレクトリ
- NetworkManager APIを使用して作成または編集する場合、NetworkManagerはこのディレクトリにある設定ファイルを、
- /etc/NetworkManager/system-connectionsディレクトリまたは/run/NetworkManager/system-connectionsディレクトリにコピーする。
NetWorkManagerの設定ファイルを作成する。
sudo touch /etc/NetworkManager/system-connections/<任意の接続名>.nmconnection sudo chown root:root /etc/NetworkManager/system-connections/<任意の接続名>.nmconnection sudo chmod 600 /etc/NetworkManager/system-connections/<任意の接続名>.nmconnection
作成または編集した設定ファイルを読み込む。
sudo nmcli connection reload
NetworkManagerが設定ファイルからプロファイルを読み込んでいることを確認する。
sudo nmcli -f NAME,UUID,FILENAME connection
Wicked : CUIでの設定
まず、静的IPアドレスを設定する。
sudo vi /etc/sysconfig/network/ifcfg-eth0
# /etc/sysconfig/network/ifcfg-eth0ファイル # 静的IPアドレスを使用 BOOTPROTO='static' # ブロードキャストアドレスの指定 BROADCAST='<ブロードキャストアドレス 例. 192.168.10.255>' ETHTOOL_OPTIONS= # IPアドレスの指定 IPADDR='<IPアドレス 例. 192.168.10.5>' MTU= NAME= # サブネットマスクの指定 NETMASK='<サブネットマスク 例. 255.255.255.0>' # ネットワークアドレスの指定 NETWORK='<ネットワークアドレス 例. 192.168.10.0>' REMOTE_IPADDR= STARTMODE='auto' DHCLIENT_SET_DEFAULT_ROUTE='yes'
次に、参照するDNSサーバおよび自身のドメイン名を設定する。
sudo vi /etc/sysconfig/network/config
# /etc/sysconfig/network/configファイル # 自身のドメイン名を指定 # この設定は、resolv.confの[search]セクションに追加される NETCONFIG_DNS_STATIC_SEARCHLIST="<自身のドメイン名 例. suse.net>" # 参照するDNSサーバの指定 NETCONFIG_DNS_STATIC_SERVERS="<DNSサーバのIPアドレス 例. 192.168.10.1>"
参照するDNSサーバを設定する。
sudo vi /etc/resolv.conf
# /etc/resolv.confファイル nameserver <DNSサーバのIPアドレス 例. 192.168.10.1>
さらに、デフォルトゲートウェイを設定する。
sudo vi /etc/sysconfig/network/routes
# デフォルトゲートウェイの指定 default <デフォルトゲートウェイのIPアドレス 例. 192.168.10.1> - eth0
最後に、PCを再起動する。
エラー
起動時にWi-Fiに接続できない
Linuxにおいて、直面しがちな大きな課題の1つにWi-Fiがある。
Atheros Wi-Fiデバイスは、Linuxカーネル開発者がath10kドライバ等を介してサポートしているため、ほとんどのAtheros Wi-Fiデバイスは動作する。
Intel Wi-Fiデバイスは、IntelがLinuxカーネル開発者と協力しており、全てのIntel Wi-Fiデバイスが動作する。
方法 1
ハードウェアまたはソフトウェアにおけるWi-Fi接続の問題は、ハードウェアの問題かソフトウェアの問題のどちらかになる。
ハードウェアの問題は比較的簡単に診断できる。
ping localhost
localhostは、NICの回路をチェックするためのアドレスとして機能する。
上記のコマンドが動作しない場合、ハードウェアに何らかの細工をする必要があるかもしれない。
上記のコマンドが動作する場合、または、Wi-Fiモジュールが見えない場合、ソフトウェアの問題である可能性が高い。
Wi-Fiモジュールが検出されない場合は、以下のコマンドを実行する。
# USB Wi-Fiを使用している場合 sudo lsusb # 内蔵型Wi-Fiを使用している場合 sudo lspci # USB Wi-Fiおよび内蔵型Wi-Fiのいずれか sudo hwinfo --wlan --short
また、lshwコマンドを実行して、Wi-Fiモジュールを認識しているかどうかを確認することができる。
この時、configuration項目のdriver=...の値をメモする。
もし、lshwコマンドが実行できない場合、lshwをインストールする必要がある。
sudo zypper install lshw
sudo lshw -C network # 出力例 ...略 description: Wireless interface product: PRO/Wireless 3945ABG [Golan] Network Connection vendor: Intel Corporation ...略
lsusbコマンドまたはlspciコマンドでWi-Fiモジュールが確認できる場合、ファームウェアは動作している可能性が高い。
Wi-Fiモジュールが動作しない理由は、Wi-Fiモジュールが欠落しているからである。
現在、使用しているモジュールの一覧を表示するには、lsmodコマンドを実行する。
sudo lsmod
Wi-Fiモジュールを有効にするには、modprobeコマンドを実行する。
<モジュール名>には、上記のsudo lshw -C networkコマンドで表示されたconfiguration項目のdriver=...の値を入力する。
sudo modprobe <モジュール名>
Wi-Fiモジュールが正常に読み込まれたかどうかを確認する。
sudo lsmod | grep -i <モジュール名>
何らかの問題により、Linuxの起動時にWi-Fiモジュールを読み込まない場合がある。
この時、強制かつ永続的にWi-Fiモジュールを読み込ませることができる。
sudo vi /etc/modules-load.d/wifi.conf
# /etc/modules-load.d/wifi.confファイル # ... 略 <モジュール名>
Linuxを再起動して、Wi-Fiモジュールが正常に読み込まれているかどうかを確認する。
sudo lsmod | grep -i <モジュール名>
方法 2
まず、以下のファイルを作成する。
以下の例では、~/InstallSoftware/StartWi-Fiディレクトリ下に作成している。
mkdir -p ~/InstallSoftware/StartWi-Fi vi ~/InstallSoftware/StartWi-Fi/StartWi-Fi.sh
# ~/InstallSoftware/StartWi-Fi/StartWi-Fi.shファイル
#!/usr/bin/env bash
echo '<パスワード>' | sudo -S ip link set wlan0 up
echo '<パスワード>' | sudo -S systemctl disable packagekit
echo '<パスワード>' | sudo -S systemctl stop packagekit
exit
StartWi-Fiファイルに、実行権限を付加する。
chmod u+x ~/InstallSoftware/StartWi-Fi/StartWi-Fi.sh
次に、[KDEシステム設定]を起動して、[起動と終了] - [自動起動]を選択する。
[スクリプトを追加...]ボタンを押下して、上記で作成したStartWi-Fi.shファイルを選択する。
Linuxカーネルには、標準でbrcm80211ドライバが搭載されている。
このドライバは、bcm4313、bcm43224、bcm43225、bcm4329、bcm4330、bcm4334、bcm43241、bcm43235(>= rev 3)、bcm43236(>= rev 3)、bcm43238(>= rev 3)、bcm43143、bcm43242をサポートしている。
bcm4312、bcm4313、bcm4321、bcm4322、bcm43224、bcm43225、bcm43227、bcm43228
これらのドライバで問題が発生する時、以下のチップセットの場合は、Packmanリポジトリからインストールできる独自のbroadcom-wlドライバをインストールすることにより、正常に動作する可能性がある。
sudo zypper install --from packman --allow-vendor-change broadcom-wl
方法 3
現在のWi-Fiの設定が記述されている/etc/NetworkManager/system-connections/*.nmconnectionファイルを編集する。
sudo vi /etc/NetworkManager/system-connections/*.nmconnectionファイル
# /etc/NetworkManager/system-connections/*.nmconnectionファイル auto lo iface lo inet loopback auto wlan0 iface wlan0 inet dhcp wpa-essid <Wi-FiのSSID> wpa-psk <Wi-Fiのパスワード>
wlan0インターフェースを再起動する。
sudo ifdown wlan0 && sudo ifup -v wlan0