class: title, smokescreen, shelf, no-footer # [演習]<br>各自のPC演習環境の確認 v1.1.2 <div class=footnote> <small> </small> </div> --- class: compact # 本日のおしながき <div class=footnote> <small> 確認は、この3本です。んがぐぐ ... (昭和のサザエさん?;_; このバージョンは1991/10/13放映分までらしい) </small> </div> 本日は次の(コマンド群が使えるか?の)確認をします 1. DNSを引ける(名前解決の動作確認;DNSは第3回の内容なので今は意味不明でもOK) 2. telnetかncコマンドが使える(手動でプロトコルを真似するため) 3. sshが使える 4. 終了(<-2時限目の拘束が終わる)要件(+ ELも忘れずに!今日中) - 「nslookupしてtelnet 80」(手動HTTP)が出来るはず(WWWの回のデモを参照) - sshでログインし、出席パスワードを取得し、出席を入れてください - サーバ名は www.ex2022.fml.org - パスワードは(全員同じ:-) = ex@20220421 - サーバ側で各自の学籍番号でログインできていることを確認します <br> (出席パスワードを人から教えてもらうインチキはダメ) --- class: col-2,compact # 次回以降の予告 - 4/28 第3回 ... 前半はOBのお話 - 後半は、なんでも質問コーナー - **第2回の演習がうまくいかなかった人**は、 ここで疑問を解消しておくこと - 5/05 GWでおやすみ - 5/12 第4回は口頭試問 ... 第2回と第3回の講義内容が頭の中で有機的に**こなれて**いるか?を確認する口頭試問です。 「nslookupしてIPアドレスを得、そのIPに対しtelnet 80」 (手動HTTP)の意味を各自に説明してもらいます。 少し間が空きますけど準備を忘れないように - いつでも**実演できる**ように準備 - **説明用構成図やスライド1,2枚は用意** <iframe width="480" height="270" src="https://www.youtube.com/embed/hq-CTEZK1-k?rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> [動画] telnet IPアドレス 80(手動HTTP)するデモ; 埋め込みが動作しない方は[こちら](https://www.youtube.com/embed/hq-CTEZK1-k?rel=0) --- class: compact # 全般的な注意 <div class=footnote> <small> (脚注) 著者の生活環境は NetBSD (オリジナル BSD Unix の最も直系の子孫)と Debian/Linux です。 スライドの例は、どれも各OSで実行して収集したものになっているはずですが、 違ってたら、やさしく指摘してね;-) もとい、あうんの呼吸で読みかえてくださいね(違っててもマイナーな相違だしね:-) </small> </div> - エコーバックしない(入力しても反応なし?) - 反応しませんが入力はされています(正しい挙動です)。 自信を持って入力するのみ - **パスワードを入力しても無反応**です。 パスワードを1文字いれるごとに`*`を表示(echo back)するWWWブラウザが身近にあるので、 この挙動に?と思うかもしれませんがUnixに慣れてください (パスワードの桁数も機密情報でしょ?) - プロンプト(prompt) - 以下の解説に登場するプロンプト(入力を促す行の左端にある特殊文字、たとえば`$ > #`)は、 各自の環境(OS, ターミナルソフト)によって変わります。 そこは、あうんの呼吸で読んでいただきたい - **Windowsのユーザ名は英数字**にしてください。**日本語ユーザ名では不具合**が生じます。 Windowsの初回立ち上げ時の推奨設定は「 (a)英数字のローカルアカウントを作成 (b)(必要なら、そのあと)マイクロソフトアカウントを作成or連携 」 --- class: img-right,compact # Windows 固有の注意 <div class=footnote> <small> (脚注) Windowsも御先祖から数えて40年の歴史がり、 互換性を維持しているために中身も相当グチャグチャのはずです。 そのへんが日本語ユーザ名をつけるとバグるなど変な挙動の源泉だと思うのですが、 中途半端に後方互換性をあきらめないっすねぇ、この会社は... (ぼくはこんなOS使わないけど授業で困りますよね〜はぁ) </small> </div> ![](https://store-images.s-microsoft.com/image/apps.64156.13926773940052066.16e93a5b-b25f-4aaf-8a38-77375e237879.00013886-8351-473f-9acd-7fcce9ee7388?w=1083&h=613&q=90&format=jpg) - **Windowsターミナルのおすすめ**は、 2021年春以降**Windows Terminal**です。 これは**過去のしがらみを捨てて一から作られたモダンなターミナル**です。 またMicrosoftにしては珍しくオープンソース開発モデルで作られています - 参考情報 - [Microsoftのドキュメント](https://docs.microsoft.com/ja-jp/windows/terminal/) - [Microsoftから入手](https://www.microsoft.com/ja-jp/p/windows-terminal/9n0dx20hk701) - [github](https://github.com/microsoft/terminal/releases) - [AWS構築ガイドのWindows Tips](https://exercises-aws.fml.org/ja/appendix/windows/) --- class: title, smokescreen, shelf, no-footer # 環境確認<br>DNSを引ける(名前解決ができる) <div class=footnote> <small> </small> </div> --- class: img-right,compact # DNS を引くコマンド(まとめ) <div class=footnote> <small> (脚注) 次頁以降では各OSごとの注意点をまとめています </small> </div> ``` [実行例] プロンプト> nslookup portal.mc.chitose.ac.jp Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: portal.mc.chitose.ac.jp canonical name = portal.chitose.ac.jp. Name: portal.chitose.ac.jp Address: 210.128.52.45 ``` - Windows10 ... はじめからnslookupというコマンドが入っています - MacOSX ... nslookupコマンドがある?(あった気がする...うろおぼえ,未確認) - Debian/Linux (たぶん Ubuntu も) - host コマンドは使えますが、nslookupとdigコマンドは無いかもしれません --- class: img-right,compact # Windows10 でDNSを引けるようにする <div class=footnote> <small> (脚注) 実体は C:\Windows\System32\nslookup.exe というプログラムです </small> </div> ![](images/win10-nslookup.png) - コマンドプロンプトをひらいてください <br> `メニュー -> Windows システムツール -> コマンドプロンプト` - nslookupコマンドが、はじめから使えるはずです - [注意] コマンドの出力の最初の2行(DNSサーバ情報は各自ことなります) - Windows11 でも同様のはずです(未確認) --- class: img-right,compact # Linux 一族でDNSを引けるようにする <div class=footnote> <small> (脚注) Debian/Linux 系(Debian, Ubuntu, Rasbian, ChromebookのLinux環境など)だけ解説します。 Redhat (CentOS) 系は使ってないから、よく分からないし、 そもそも CentOS オワコンなので省略していいよね? </small> </div> ``` [実行例] $ host portal.mc.chitose.ac.jp portal.mc.chitose.ac.jp is an alias for portal.chitose.ac.jp. portal.chitose.ac.jp has address 210.128.52.45 ``` - DNS関係のコマンドは nslookup host dig の3つが有名です。 どれでも名前解決(**IPアドレスを探す**ことが)できるので、どれか一つ入っていればOKです。 Debianデフォルトではhostコマンドしか入っていませんが、 nslookupとdigコマンドはdnsutilsパッケージをインストールすれば利用可 ``` sudo apt install dnsutils ``` --- class: title, smokescreen, shelf, no-footer # 環境確認<br>手動でプロトコルを実行できる <div class=footnote> <small> </small> </div> --- class: img-right,compact # telnetなどのコマンドの確認(まとめ) <div class=footnote> <small> (脚注) WSLとはWindows上にLinux(Ubuntu)を仮想で動かすしくみのこと。 現WSL2はHyper-V上のUbuntu </small> </div> ``` [実行例] プロンプト> telnet 210.128.52.45 80 Trying 210.128.52.45... Connected to 210.128.52.45. Escape character is '^]'. GET / HTTP/1.0 HTTP/1.1 200 OK ... 数十行つづくので省略 ... </html> Connection closed by foreign host. ``` - Windows10 ... telnetコマンドを有効にするか teratermを使ってください - 別解としてWSL2という選択肢もあり(解説は省略;くわしくはTA/SAさんへ:-) - MacOSXとLinux 一族 ... telnetがあればtelnetを、なければncコマンドを使ってください --- class: img-right,compact # Windows10 で telnet コマンドを使う(1): 有効化 <div class=footnote> <small> 参考: <A HREF="https://atmarkit.itmedia.co.jp/ait/articles/0207/06/news002.html#installtelnet"> https://atmarkit.itmedia.co.jp/ait/articles/0207/06/news002.html#installtelnet </A> </small> </div> ![width400px](images/win10-enable-telnet-client.png) ![width320px](images/win10-optionalfeatures.png) - デフォルトでは telnet コマンドが使えません (OS には搭載されていますが有効にされていません)。 有効にするには 1. 「Windowsの機能の有効化または無効化」のメニューを出してください。 追加する機能の一覧画面が表示されます (WindowsキーとRを同時に押す->出てくる窓(右下の図)でOptionalFeaturesを検索すればよい) 2. 機能一覧中で「Telnetクライアント」という項目を探してチェックをいれ、 右下のOKをクリック --- class: img-right,compact # Windows10 で telnet コマンドを使う(2): 使い方 <div class=footnote> <small> (脚注1) Windows 標準搭載なので紹介しているのですが、 この telnet も使いづらいですね (どれもこれもイマイチなものばっかり) ... (脚注2) teraterm とか WSL2 の利用も検討してみてくださいませ </small> </div> - コマンドプロンプトで `telnet IPアドレス ポート番号` を実行してください - 画面が真っ暗になり、入力モードになります (なんていう仕様にするんだ、Microsoft ...) - `Control`と`]`を同時に叩き、 いったん telnet の設定画面に入ってください - `telnet>` と出ている画面で`set localecho`と入力しENTER (これで入力した文字が画面に出力されるようになります) - `telnet>` と出ている画面で`open IPアドレス ポート番号`を入力しENTER (これが`telnet IPアドレス ポート番号`と同じ意味になります)後、 手動HTTP(`GET / HTTP/1.0`)が入力できます - localechoのあと `telnet>`の画面でENTERを入れれば元のモードに戻るはずなのですが、 うまく戻れずにtelnetが終了することがあるので、 `open` を使う方が安全みたい --- class: img-right,compact # Windows10 で teraterm アプリを使う(1) <div class=footnote> <small> 参考: <A HREF="https://ja.osdn.net/projects/ttssh2/"> https://ja.osdn.net/projects/ttssh2/ </A> </small> </div> ![width480px](images/ttermpro416-01.png) - [Teraterm](https://ja.osdn.net/projects/ttssh2/)という有名なターミナルアプリを使いましょう。このポータブル版ならインストール不要(Portalに置いときます) - [teraterm-4.106.zip](https://ja.osdn.net/projects/ttssh2/downloads/74780/teraterm-4.106.zip/)をダウンロード、展開 - 展開したフォルダに移動し、 **ttermpro.exe**というコマンドをクリック - 右図のような画面が出ましたか? --- class: img-right,compact # Windows10 で teraterm アプリを使う(2) ![width320px](images/ttermpro416-03.png) ![width320px](images/ttermpro416-02.png) <div class=footnote> <small> (脚注) いろいろ設定しないと使いづらいので、これを使うのは最後の手段ですかね... </small> </div> - 以下の設定をしてください - 設定->端末->改行->受信->AUTO - 設定->端末->改行->送信->CR+LF - 設定->端末->Local Echo->チェック (これを設定しないと入力した文字が画面に表示されません) - 設定->TCP/IP->自動的にウィンドウを閉じる ... チェックを外す - 右図の画面で次のように設定して OK をクリック(これでtelnetの例と同様の意味) - Host に 210.128.52.45 - TCP Port# に 80 - ServiceをTelnet --- class: img-right,compact # MacOSX 上での nc コマンドの使い方 <div class=footnote> <small> (脚注) ネットワークの改行コードはCRLFを使うならわしです。 telnet は適切に(勝手に)変換するのですが nc は変換しないのがデフォルトの挙動です。 そのため -C オプションをつける必要があります </small> </div> ``` [実行例] $ nc -v -c 210.128.52.45 80 Connection to 210.128.52.45 80 port [tcp/http] succeeded! GET / HTTP/1.0 HTTP/1.1 200 OK ... 以下略 ... ``` - telnet がなくても、同様の目的に nc (netcat)コマンドが使えます - オプションの説明 - **`-v`**はverbose、telnetの表示に近くなります(冗長化optionなので使わなくてもOK) - **`-c`**は改行コードの変更のために必要です。 ちなみに**Linuxでは大文字のC**、**MacOSXでは小文字のcオプション**です。 気をつけて(もうAppleはひどい...) --- class: img-right,compact # Linux 上での nc コマンドの使い方 <div class=footnote> <small> (脚注) ネットワークの改行コードはCRLFを使うならわしです。 telnet は適切に(勝手に)変換するのですが nc は変換しないのがデフォルトの挙動です。 そのため -C オプションをつける必要があります </small> </div> ``` [実行例] $ nc -v -C 210.128.52.45 80 Connection to 210.128.52.45 80 port [tcp/http] succeeded! GET / HTTP/1.0 HTTP/1.1 200 OK ... 以下略 ... ``` - telnet がなくても、同様の目的に nc (netcat)コマンドが使えます - オプションの説明 - **`-v`**はverbose、telnetの表示に近くなります(冗長化optionなので使わなくてもOK) - **`-C`**は改行コードの変更のために必要です。 ちなみに**Linuxでは大文字のC**、**MacOSXでは小文字のcオプション**です。 気をつけて(もうAppleはひどい...) --- class: title, smokescreen, shelf, no-footer # 環境確認<br>sshが使える <div class=footnote> <small> FYI: 身近な各OSが搭載しているsshは、 OpenBSDプロジェクトが開発するフリーソフトウエア(オープンソース)の OpenSSHというソフトウエアです。SSH本家もありますが使われてない </small> </div> --- class: img-right,compact # sshコマンド(まとめ) <div class=footnote> <small> (脚注) 別途、動作確認をするサーバ名は指示します </small> </div> ``` [実行例] > ssh b2929290@www.ex2022.fml.org もしくは > ssh -l b2929290 www.ex2022.fml.org ``` - 遠隔にあるPC(サーバ)に入るためのコマンドがsshです - 現在ではUnix/Linux, Windows10, MacOSXすべてに搭載されています - ターミナル(Windowsではコマンドプロンプト)を開き、 引数に「`ユーザ名@サーバ名`」をつけてsshコマンドを実行してください ``` [例] ssh ユーザ名@サーバ名 次の形式も同じ意味です(-l (エル)オプションでユーザ名を指定する形式) [例] ssh -l ユーザ名 サーバ名 ``` --- class: title, smokescreen, shelf, no-footer # 環境確認<br>AWS Academyにログインできてますか? --- class: compact # AWS Academy にログインできるか確認してください - 招待状が送付済です。AWS Academy にログインできるか確認してください。 いちおう潜在的に4つの授業で使うことを想定していますので使えるようにしておきたい - [コンピュータネットワーク](https://lectures.fml.org/network/) - ソフトウエア工学概論 - [ICTソリューションプロジェクト](https://lectures.fml.org/themes/) - [オペレーティングシステム](https://lectures.fml.org/os/) - AWSの使い方の詳細は、別科目「[オペレーティングシステム(OS)](https://lectures.fml.org/os/)」の以下のスライドを見てください - [AWS Academyの概要](/slides/service/aws/academy/) - [AWS サーバ構築ガイド](https://exercises-aws.fml.org/ja/)に、 サーバ構築法が書いてあります。 ちなみに、 これは[OS](https://lectures.fml.org/os/)後半の資料です - これで、みなさん AWS Academy を一年間自由に使えるはずなので、ご自由にお遊びください。上限は月100ドル。自分でサーバをゴリゴリ作るなら**おつり**がくる感じですが、**AWSのサービスを本格的に使うと、あっという間に無くなる**ので気をつけて!