設定 - ネットワーク
概要
ネットワークの設定には、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
NICの確認
NICの状態および名称を確認する。
nmcli device # 出力例 DEVICE TYPE STATE CONNECTION eth0 ethernet connected CableConnection lo loopback unmanaged --
スタティックIPアドレスの設定
以下の例では、有線LAN接続のIPアドレスを恒久的に設定している。
- IPアドレス
- 192.168.1.10
- サブネットマスク
- 255.255.255.0
- デフォルトゲートウェイ
- 192.168.1.1
- DNSサーバ
- 8.8.8.8
- 8.8.4.4
- 接続名の確認
まず、現在の有線LAN接続の名前を確認する。
nmcli connection show
- 設定の変更
上記で確認した接続名を使用して、IPアドレス、ゲートウェイ、DNSサーバ等を設定する。
sudo nmcli connection modify <接続名> ipv4.addresses "192.168.1.10/24" sudo nmcli connection modify <接続名> ipv4.gateway "192.168.1.1" sudo nmcli connection modify <接続名> ipv4.dns "8.8.8.8 8.8.4.4" sudo nmcli connection modify <接続名> ipv4.method manual
- 設定の適用
設定を適用するため、接続を再起動する。
sudo nmcli connection down <接続名> && nmcli connection up <接続名>
ネットワーク接続の開始
まず、接続の関連付けを行う。
sudo nmcli device connect <NICのデバイス名 例. eth0>
次に、接続プロファイルを開始する。
sudo nmcli connection up <接続プロファイル名 例. CableConnection>
ネットワーク接続の停止
まず、接続の関連付けを切る。
sudo nmcli device disconnect <NICのデバイス名 例. eth0>
次に、接続プロファイルを停止する。
sudo nmcli connect down <接続プロファイル名 例. CableConnection>
ネットワーク接続の再起動
NetworkManagerの細かい制御が可能なため、nmcliコマンドを使用することを推奨する。
sudo nmcli connection down <接続プロファイル名 例. eth0> sudo nmcli connection up <接続プロファイル名 例. eth0>
従来のネットワークコマンドを使用する場合
sudo ifdown <接続プロファイル名 例. eth0> sudo ifup <接続プロファイル名 例. eth0>
systemctlを使用する場合
sudo systemctl restart NetworkManager
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を再起動する。
Wicked : VPNクライアントの設定
まず、openvpnパッケージをインストールする。
sudo zypper install openvpn
/etc/openvpn/client.confファイルを作成して、以下に示す内容で編集する。
sudo vi /etc/openvpn/client.conf
# /etc/openvpn/client.confファイル remote <ドメイン名またはVPNサーバのパブリックIPアドレス> dev tun ifconfig <VPNクライアントのIPアドレス> <VPNサーバのIPアドレス> secret secret.key
/etc/sysconfig/network/ifcfg-tun0ファイルを作成して、tunデバイスを設定する。
sudo vi /etc/sysconfig/network/ifcfg-tun0
# /etc/sysconfig/network/ifcfg-tun0ファイル STARTMODE='manual' BOOTPROTO='static' TUNNEL='tun' TUNNEL_SET_OWNER='nobody' TUNNEL_SET_GROUP='nobody' LINK_REQUIRED=no PRE_UP_SCRIPT='systemd:openvpn@client' PRE_DOWN_SCRIPT='systemd:openvpn@client'
ファイアウォールにおいて、UDPポートの1194番を開放する。
sudo firewall-cmd --permanent --add-port=1194/udp sudo firewall-cmd --reload
作成したtunデバイスをUPにして、OpenVPNのサービスを開始する。
sudo wicked ifup tun0 # 出力例 tun0 up
OpenVPNが正常に起動した後、tunデバイスの可用性を確認する。
ip addr show tun0
VPN接続を確認するため、VPNクライアントからping
コマンドを実行する。
ping -I tun0 <VPNサーバのIPアドレス>
VPNサーバを構築している場合は、VPNサーバからVPNクライアントへping
コマンドを実行する。
ping -I tun0 <VPNクライアントのIPアドレス>
エラー
起動時に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