コース一覧
LinuC レベル1(LPIC-1対応)対策
疎通トラブルシュート

LinuC レベル1(LPIC-1対応)対策

ブートとsystemd、パッケージ管理(APT/RPM両系統)、コマンドとviの操作、ファイルシステム、シェルスクリプト、ユーザー管理とセキュリティ、ネットワークまで、LinuC レベル1(LPIC-1対応)の全出題範囲を、毎レッスン実際にコマンドを打って確かめながら学べる対策コースです。ブラウザの中で本物の Debian 12 が動いていて、62レッスンのうち36本は読むだけで終わらず、自分の手でコマンドを打った結果で採点されます。Linux入門を修了した方を対象としています。101・102それぞれの模試60問で分野別の弱点を洗い出し、直前チェックで暗記事項を固めてから本番に臨めます。

1
試験ガイダンス
01. LinuC/LPICとは15分
02. LinuCとLPICの選び方15分
03. 学習計画15分
04. 出題形式を体験15分
2
101 ブートとアーキテクチャ
01. ブートの流れ18分
02. GRUB15分
03. systemdとターゲット18分
04. ハードウェア情報18分
05. カーネルモジュール18分
06. 過去問 アーキテクチャ15分
3
101 パッケージ管理
01. Debian系パッケージ18分
02. RPM系パッケージ15分
03. 両系統の対応表15分
04. リポジトリ管理18分
05. 共有ライブラリ18分
06. 過去問 パッケージ管理15分
4
101 GNU/Unixコマンド
01. ファイル操作の試験オプション18分
02. テキスト処理18分
03. ストリームとリダイレクト18分
04. プロセス監視18分
05. 優先度18分
06. grepと正規表現18分
07. viの操作15分
08. 過去問 コマンド15分
5
101 ファイルシステム
01. パーティション15分
02. 作成とマウント18分
03. fstabとUUID18分
04. パーミッションとリンク18分
05. 容量とクォータ18分
06. findとlocate18分
07. 過去問 ファイルシステム15分
6
102 シェルとスクリプト
01. シェル環境18分
02. testと条件式18分
03. スクリプトの制御18分
04. cronとat15分
05. systemdタイマー18分
06. 過去問 シェル15分
7
102 ユーザーとセキュリティ
01. passwdとshadow18分
02. ユーザー管理コマンド18分
03. suとsudo18分
04. 特殊パーミッション18分
05. ホストのセキュリティ18分
06. SSHとGPG18分
07. 過去問 ユーザーとセキュリティ15分
8
102 ネットワーク
01. TCP/IPとウェルノウンポート18分
02. アドレス設定18分
03. ルーティング18分
04. 名前解決の設定18分
05. 疎通トラブルシュート18分
06. 過去問 ネットワーク15分
9
102 システム管理
01. 時刻とNTP15分
02. ロケールと文字コード18分
03. ログ管理18分
04. サービス管理の試験形式18分
05. メールと印刷のきほん15分
06. 過去問 システム管理15分
10
模試と直前対策
01. 模試 10190分
02. 101弱点復習15分
03. 模試 10290分
04. 102弱点復習15分
05. 直前チェック15分
06. 受験と次のステップ15分

疎通トラブルシュート

「繋がりません」と言われて、いきなり curl を叩いても何も分かりません。通信は下の層が成り立って初めて上の層が動くので、調べる順番も下から上です。この順番そのものが出題されます。

下の層から順に7段

段確かめること使うコマンド
1リンクは上がっているかip link show
2アドレスは付いているかip addr show
3経路はあるかip route show
4相手まで届くかping / traceroute
5名前は引けるかgetent hosts / dig
6ポートは開いているかss -tuln
7サービスは応答するかcurl / systemctl status

リンクが下りているのに curl を何度叩いても、返ってくるのは同じエラーだけです。逆に1から3までが正常だと分かっていれば、疑う範囲は一気に狭まります。

ip link show の出力に NO-CARRIER が出ていたら、設定ではなく物理層、つまりケーブルやスイッチを疑います。state DOWN だけなら ip link set <名前> up で上がる可能性があります。アドレスがまったく付いていないなら、DHCP で取得する設定なのに応答が無い、という筋を疑います。169.254 で始まるリンクローカルアドレスが付いていたら、それが DHCP に失敗した証拠です。

ping が通らないことは、相手が落ちている証拠にならない

ping は ICMP を使います。ICMP をファイアウォールで落としている相手には届かないので、応答が無いことと相手が停止していることは別です。この誤解は試験でも狙われます。

ターミナル

ping -c 4 192.168.1.1 # 4回だけ送る traceroute 192.168.1.1 # 経路上のルーターを順に表示 tracepath 192.168.1.1 # traceroute の権限不要版

順番としては、まず自分のアドレス、次にデフォルトゲートウェイ、そして外部、と近いところから遠くへ広げます。どこで止まるかで故障箇所が絞れます。なお、この学習環境には ping も traceroute も入っていません。

アドレス指定なら通るのに名前だと通らない場合は名前解決の問題です。/etc/resolv.conf の nameserver 行、/etc/nsswitch.conf の hosts 行、/etc/hosts の中身を順に確かめます。

外から繋がらないのに、ローカルからは通る

オプション意味
-tTCP のソケット
-uUDP のソケット
-lLISTEN 状態のものだけ
-nポート番号を名前に変換せず数値のまま表示
-pソケットを使っているプロセスを表示。-a はすべての状態

最もよく使う組み合わせが ss -tuln で、TCP と UDP の待ち受けを数値で一覧します。-l を付けないと確立済みの接続も混ざり、-n を付けないと名前解決に時間がかかることがあります。プロセス名まで知りたければ -p を足します。

出力の Local Address と Port の列を見てください。全インターフェースで待ち受けているなら 0.0.0.0 から始まり、ループバックだけなら 127.0.0.1 から始まります。外から繋がらないのにローカルからは通る、という症状なら、この待ち受けアドレスがループバックに限定されていないかを疑います。

ポートが開いていないなら、サービスを見る

ポートが開いていない場合、そもそもサービスが起動していない可能性が高くなります。systemctl status <unit> で状態と直近のログが見え、journalctl -u <unit> でログを追えます。停止していれば systemctl start、次回起動時にも上げたいなら systemctl enable です。

ポートが開いているなら、正しい応答を返すかを確かめます。curl の -s は進捗表示を消すオプション、-f は HTTP エラー時に終了ステータスを 0 以外にするオプションで、この2つの組み合わせがスクリプトから疎通を確かめるときの定番です。-I ならヘッダだけ、-v なら通信の詳細が見られます。

サービスが動いていてポートも開いているのに外から繋がらない場合は、ufw status verbose や iptables -L -n -v でファイアウォールの現在のルールを確認します。ローカルからは通るという切り分けができていれば、原因はファイアウォールかバインドアドレスのどちらかです。

試験で狙われるところ

調べる順番は下の層からです。ping が通らないことは相手が落ちている証拠になりません。ss の -l は LISTEN だけで、付けないと確立済みの接続も混ざります。169.254 で始まるアドレスは DHCP に失敗した印です。そして netstat は非推奨で、現行は ss です。

ヒント

順番が大事です。いきなり curl を叩かず、まず ss -tuln で 80 番が開いているかを見てください。開いていなければサービス側の問題です

サービスの状態は systemctl status <名前> で分かります。inactive (dead) と出ていれば止まっています。起動は systemctl start <名前> です

systemctl start nginx のあと `ss -tuln | grep ':80'` で確認し、curl -sf http://localhost/ を打ちます。記録は `echo 'ss -tuln で 80 番が閉じていた。nginx が停止していたので起動した' > /root/triage.txt` のように書けます

  • 1. ip -br addr で lo が UP で 127.0.0.1 が付いていることを確かめる
  • 2. ss -tuln で 80 番が待ち受けているかを見る
  • 3. systemctl status nginx でサービスの状態を確かめる
  • 4. systemctl start nginx で起動する
  • 5. ss -tuln で 80 番が開いたことを確かめる
  • 6. curl -sf http://localhost/ で応答を確認する
  • 7. 調べた過程を /root/triage.txt に書き残す

4 項目で採点します