設定 - ネットワーク

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

ネットワークの設定には、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