20191023のLinuxに関する記事は6件です。

CentOS7 isoファイルダウンロード

はじめに

この記事はLinuxに初めて触れる方に向けた記事です。
Linuxの勉強を始める方、会社でLPIC取得を推奨されている方を対象としています。

CentOSとは

端的に言ってしまえば無料のLinuxだと思ってもらえれば大丈夫です。
とりあえずLinuxを触ってみたいという方には最適です。

CentOSのダウンロード方法

今回はCentOS7のisoファイルをダウンロードします。

1.以下にブラウザでアクセスします。
https://www.centos.org/download/
pic.png

2.画面下部にあるOlder Versionsの「then click here」をクリックします。
pic.png

3.CentOS Linux Version 7 のCD and DVD ISO Images列に「mirrors」という名前のリンクがあるのでクリックします。
pic.png

4.ISOイメージ入手先を選択します。今回は理化学研究所のISOイメージを利用します。
pic.png

5..isoのリンクをクリックすれば、isoファイルをダウンロードできます。何をダウンロードしたら良いかわからない方は「Minimal」の記載があるisoファイルをダウンロードすれば大丈夫です。
pic.png

最後に

ダウンロードしたisoファイルはDVD、USB等に焼いて使用します。仮想サーバの構築であればISOファイルはそのまま使用することができます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

nixOSでWPA-EAPなWiFiに接続する

対象読者のスキル

コマンドライン操作ができること
英語がちょっと読めること

前提

無線カードのドライバがインストールされており,認識されている
無線LANのSSIDとログインに必要な情報を持っている
wpa_supplicantがインストールされている

使用環境

動作確認した環境は以下の通り

  • nixOS 19.09.716.88bbb3c809
    • Kernel 4.19.78
    • wpa_supplicant v2.9
  • Let's note CF-MX3
    • CPU: Intel i5-4200U
    • RAM: 4GB
    • SSD: 128GB

問題

公式のインストールマニュアルに記載されている無線LAN設定はWPA-PSKを前提としているため,IDとパスワードの入力を必要とするWPA-EAPな無線LANに接続できない

それっぽい情報を見つけた

こんな感じで/etc/nixos/configuration.nixのネットワークを設定すると繋がった

networking.wireless.networks = {
  "eap wifi" = {
     auth = ''
         key_mgmt=WPA-EAP
         eap=PEAP
         identity="user_name"
         password="user_password"
     ''
  };
};

参考リンク

https://github.com/NixOS/nixpkgs/issues/29622
https://wiki.archlinux.org/index.php/WPA_supplicant

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【勉強用】OSとLinuxについて初心者視点から

免責事項

この記事は初心者視点でザックリとした説明をしています。正確性に欠ける可能性がございますが、ご了承ください。「明らかに違うよ」ということがありましたら、ご指摘くださると幸いです。

目次

  1. OSとは
  2. Linuxとは

1. OSとは

OSとはOperating System (オペレーティング・システム)の略で、 人間がコンピュータを使う上で便利にしてくれるものです。

スマートフォンで言えば、
iPhoneではiOS、AndroidではAndroidOSが使われています。
パソコンで言えば、
WindowsではWindowsOS、MacではmacOSが使われています。

OSの機能

OSの役割はプログラムの実行と管理を行うことです。
その役割上で、ザックリと以下の4つの管理を行います。

①ファイルの管理

ファイルとは、PC上で情報を書くための紙のようなものです。.htmlや.txtや.jsonなどと付いているものがファイルと思ってください。ちなみに、ファイルをまとめるものをディレクトリ(フォルダ)と言います。

②メモリの管理

ゲームキューブやプレステ2でメモリースティックというものを使いました、これを外部メモリと言いますが、ここで言うメモリはパソコンの内部メモリのことです。
スマートフォンやパソコンでアプリをたくさん使うと動きが遅くなりますよね。これはメモリがいっぱいになっている状態です。

③GUIの管理

GUIとはグラフィカル・ユーザー・インターフェースの略で、パソコンやスマートフォンの見える部分です。見える部分とはこれです。
スクリーンショット 2019-10-23 12.57.53.png
パソコンは本来、専門的な人だけが使えるものでしたが、誰もが使えるようにこのような見やすい画面を採用しました。

※WindowsやMacのGUIはOSが管理しているものですが、Linuxでは別のアプリを用意しないとGUIを使うことができません。

④ネットワーク管理

ネットワークはパソコン同士をつなぐものです。これがなかったらパソコン同士で通信は行えません。

2. Linuxとは

LinuxとはOSの1つです。正確に言うとOSの中のカーネルという部分を差しますが、ここではOSとして扱います。

Linuxの機能

Linuxの機能はWindowsOSやmacOSとほとんど変わりません。
ディストリビューションというOSの機能がまとまったものを使えば簡単にたくさんの機能を使うことができます。

なぜ使うのか(自分なりの解釈)

①どの環境でも使えるから

Linuxは仮想環境を使えば、macやWindowsなどのどのようなパソコン上でも使うことができます。そのためエンジニアが各々の好きなPCで利用することができるため使われています。

②無料で使えるから

mac上にwindowsを使うにはお金がかかりますが、Linuxを使う場合はお金はかかりません。

③サーバーとして使いやすいから

企業がアプリを世の中に出すときにはサーバーというものが必要です、サーバーを立てる際にLinuxは比較的高速であり、どんなPC(環境)でも使えるためよく利用されています。サーバーを借りるにしても、自社製にするとしても30%ほどのサーバーでLinuxが使われています。また最近ではIaasクラウドなどでもLinuxが利用されています。

参考

「N予備校 プログラミングコース」
https://www.nnn.ed.nico/
「サーバーOSとは?UNIX系とWindows系の違いをわかりやすく解説します」
https://www.kagoya.jp/howto/rentalserver/serveros/
「【初心者向け】3分でわかるLinuxでできることまとめ 10選」
https://eng-entrance.com/you_can_do_linux
「Linuxってなに? WindowsやMacとの違いや使い方までお答えします」
https://www.lifehacker.jp/2017/11/171105-how-to-get-started-with-the-linux-operating-system.html

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

LinuxのTCPタイムアウト値

※ パケットキャプチャして確認したわけではないので自信なし・・・

参考

tcp_syn_retries (integer; default: 5; Linux 2.2 以降)
アクティブな TCP 接続に初期 SYN の再送を試みる最大回数。 この数値は 255 よりも大きくすべきではない。 デフォルトの値は 5 で、およそ 180 秒に対応する。

TCP_TIMEOUT_INIT値をソースで確認

# CentOSの場合
yum install -y kernel-devel

# ubuntuの場合
apt install -y linux-source
ソース確認
# CentOS6.9の場合
vim -R /usr/src/kernels/2.6.32-754.23.1.el6.x86_64/include/net/tcp.h

# Ubuntu19.10の場合
vim -R /usr/src/linux-headers-5.3.0-19/include/net/tcp.h
  • CentOS6.9 も Ubuntu19.10 も同じ1秒だった。

スクリーンショット_2019-10-23_13-14-46.png

  • CentOS 5 では以下のように 3秒

スクリーンショット_2019-10-23_13-29-28.png

TCP SYN の再送間隔

  • windowsの場合
windowsでタイムアウトしてしまう最大の時間は

 0(最初のSYN)
    3秒経過してACKが戻らないときSYN(1)を再送します。( 3秒経過
また  6秒経過してACKが戻らないときSYN(2)を再送します。( 9秒経過
また 12秒経過してACKが戻らないときここでタイムアウト発生21秒経過
  • CentOS5や6.2まで
CentOS5.11
$ cat /proc/sys/net/ipv4/tcp_syn_retries 
5
CentOS5や6.2まで
    3秒経過してACKが戻らないときSYN(1)を再送します。( 3秒経過
また  6秒経過してACKが戻らないときSYN(2)を再送します。( 9秒経過
また 12秒経過してACKが戻らないときSYN(3)を再送します。(21秒経過
また 24秒経過してACKが戻らないときSYN(4)を再送します。(45秒経過
また 48秒経過してACKが戻らないときSYN(5)を再送します。(93秒経過
また 96秒経過してACKが戻らないときここでタイムアウト発生189秒経過
  • CentOS6.3〜
$ cat /proc/sys/net/ipv4/tcp_syn_retries 
5
リトライ5回
    1秒経過してACKが戻らないときSYN(1)を再送します。( 1秒経過
また  2秒経過してACKが戻らないときSYN(2)を再送します。( 3秒経過
また  4秒経過してACKが戻らないときSYN(3)を再送します。( 7秒経過
また  8秒経過してACKが戻らないときSYN(4)を再送します。(15秒経過
また 16秒経過してACKが戻らないときSYN(5)を再送します。(31秒経過
また 32秒経過してACKが戻らないときここでタイムアウト発生63秒経過
  • Ubuntu 19.10
$ cat /proc/sys/net/ipv4/tcp_syn_retries 
6
リトライ6回
    1秒経過してACKが戻らないときSYN(1)を再送します。( 1秒経過
また  2秒経過してACKが戻らないときSYN(2)を再送します。( 3秒経過
また  4秒経過してACKが戻らないときSYN(3)を再送します。( 7秒経過
また  8秒経過してACKが戻らないときSYN(4)を再送します。(15秒経過
また 16秒経過してACKが戻らないときSYN(5)を再送します。(31秒経過
また 32秒経過してACKが戻らないときSYN(6)を再送します。(63秒経過
また 64秒経過してACKが戻らないときここでタイムアウト発生127秒経過

まとめ

CentOS 5 や 6.2 までは 189秒経過 でタイムアウト発生
CentOS 6.3〜 は 64秒経過 でタイムアウト発生
(CentOS5より125秒短くなった ← 気になるところ)
Ubuntu 19.10 で確認したところ 127秒

TCP SYN のリトライ回数を変更する方法

$ cat /proc/sys/net/ipv4/tcp_syn_retries 
5

$ sudo sh -c "echo 6 > /proc/sys/net/ipv4/tcp_syn_retries"

$ cat /proc/sys/net/ipv4/tcp_syn_retries 
6
  • 恒久的に変える場合
/etc/sysctl.confに追記
net.ipv4.tcp_syn_retries = 6
再起動せずに適用したい場合
sysctl -p
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWSのDNS障害でDebianパッケージがインストールできなかった話

やろうとしたこと

Dockerファイルをビルドしようとしていました。

FROM php:7.1.11-fpm

WORKDIR /var/local

RUN apt-get update && apt-get install -y \
    apt-transport-https \
    lsb-release \
    ca-certificates \
    wget
...

エラー発生

Step 3/13 : RUN apt-get update && apt-get install -y     apt-transport-https     lsb-release     ca-certificates     wget
 ---> Running in 50a658d96e1f
Get:1 http://security.debian.org jessie/updates InRelease [44.9 kB]
Err http://deb.debian.org jessie InRelease
Err http://deb.debian.org jessie-updates InRelease
Err http://deb.debian.org jessie Release.gpg
  Could not resolve 'cdn-fastly.deb.debian.org'
Err http://deb.debian.org jessie-updates Release.gpg
  Could not resolve 'cdn-fastly.deb.debian.org'
Get:2 http://security.debian.org jessie/updates/main amd64 Packages [893 kB]
Fetched 938 kB in 4s (192 kB/s)
Reading package lists...
W: Failed to fetch http://deb.debian.org/debian/dists/jessie/InRelease
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease
W: Failed to fetch http://deb.debian.org/debian/dists/jessie/Release.gpg  Could not resolve 'cdn-fastly.deb.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/Release.gpg  Could not resolve 'cdn-fastly.deb.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
Package lsb-release is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'lsb-release' has no installation candidate
The command '/bin/sh -c apt-get update && apt-get install -y     apt-transport-https     lsb-release     ca-certificates     wget' returned a non-zero code: 100
make: *** [build] Error 100

原因調査

deb.debian.orgのサーバーが死んだのかな?と思いきや、エラーメッセージに下記を発見。

Could not resolve 'deb.debian.org'

ネームサーバー変わったのかなと思っていたら、社内のエンジニアからSlackが飛んできました。
AWSでDNS周りの障害が起きていたみたいです。

https://www.theregister.co.uk/2019/10/22/aws_dns_ddos/

その障害によって、deb.debian.orgの名前解決ができず、パッケージのダウンロードができなくなっていたんですね。

障害復旧後

下記のステータスを、AWSで確認しました。

[RESOLVED] Intermittent DNS Resolution Errors
Between 10:30 AM and 6:30 PM PDT, we experienced intermittent errors with resolution of some AWS DNS names.
Beginning at 5:16 PM, a very small number of specific DNS names experienced a higher error rate. These issues have been resolved.

https://status.aws.amazon.com

その後再ビルドすると、無事にdebianパッケージもインストールされ、ビルドできました!

考察

おそらくdeb.debian.orgはRoute53あたりを使っているんでしょうか。
今後debianパッケージ取得の際に名前解決関係のエラーが出たら、AWSの障害を疑ってみることも一つの手ですね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxのディレクトリの色がSSH接続で見ると見辛い

Linuxのディレクトリの色が見辛い

Linuxターミナルを利用するときに自端末で利用するときには問題ないですが、
SSHを利用してwindows端末から見ようとすると非常に見辛い!

どんなふうに見辛いかと言うとこんな感じ。
image.png
もう見辛いというか、見えない・・・。
(Ubuntu18.04で確認してます。)

設定変更方法

.dircolorsとしてユーザ直下に置くと設定が可能。
(Vimとかbashとかと同じ感じ)

現在の設定は残したまま、ディレクトリに関するものだけ変更したい・・・
下記のコマンドで現在の設定が確認可能。
dircolors -p

なので、一回ユーザ直下に現在の設定ファイルを下記のコマンドで出力
dircolors -p > ~/.dircolors

出力したファイルの中でDIRで始まる項目を編集します。
初期状態だと下記でした。
DIR 01;34 # directory
Vimの設定変更していないとDIR以外はディレクトリと同じ感じに見辛い・・・

色については ISO 6429 (ANSI) カラーシーケンスが設定されてます。
あんまり色が無いですが、お好みでいい感じに。

私は下記の設定にしました。
DIR 02;36 # directory
image.png
濃い緑な感じで割と見やすい。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む