digital/devices/自宅LAN
の編集
https://over.6pb.info/wiki/?&8b55ed3296
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#contents *後期高齢者を隔離 [#uc52bca2] 後期高齢者が彼/彼女のパソコンで何かミスをしても,自宅LANの他のパソコンに及ぶ影響を最小限にするため,隔離したい。彼/彼女のパソコンからは,WAN(インターネット)には出て行けるが,自宅LAN内の他のパソコンにはアクセスできないようにするというわけだ。一番簡単なのは,無線LANルーターの「ネットワーク分離」機能を使うことだ。 有線でつないでいる場合であっても,いまは非常に手頃な費用で可能。VLAN対応の5ポートスイッチと呼ばれるものを買えばよい。amazon.co.jpで2,500円前後で買える。私が買ったのはTP-LINK TL-SG105E。他に,NETGEAR GS105E-200JPSも安く,同じことができる。VLANの解説ではないが,以下の記事が選択の役に立つ。 -[[【清水理史の「イニシャルB」】 VLANやLAGも可能な管理機能付きスイッチが3000円以下で TP-Linkイージースマートスイッチ「TL-SG105E」 - INTERNET Watch:http://internet.watch.impress.co.jp/docs/column/shimizu/1042279.html]](2017年2月6日) 無線LANルーターまたはルーターが複数台あり,後期高齢者が接続しているのは2台目(内側)の場合は注意が必要だ。単純にネットワーク分離しても内側の内部でしか分離されない。ルーターが入れ子(二重ルーター)のとき,どこが隔離されるかを理解するには,ルーターはファイアーウォールの一種だと考えれば分かり易い。ファイアーウォールの内側が外側から隔離(保護)されるのであって,外側は内側から隔離(保護)されない。もし,1段目(外側)のパソコンを2段目(内側)から保護するなら,合計3台のルーターが必要だ。城の一番外側のルーター(親)の内部に,本丸と二の丸の2つの子ルーター領域を作る。 *VPN [#homevpn] いまどきはVPSが安く使えるので,往年の「自宅サーバー」の効用はかなり小さくなったが,auひかりの新サービス「[[スマホで固定電話:https://www.au.com/internet/auhikari/service/phone/smartphone/]]」を前にまた復活の兆しがある。詳細は[[NET/通信契約>NET/通信契約#auhomedenwa]]。 **使用機材 [#y6f9aee1] VPSを主環境として使っているが,自宅にもサーバーを置いている。自宅サーバーにはThinkPad X201を使っている。ノートパソコンの方が便利だ。画面とキーボードが付いている。[[X201はかなり古い>PC#corei]]機種だが,VPNサーバーとして使う上ではスループットで特に支障はない。しかも,SoftEtherを入れているのは,Windows10の上のVirtualBoxの上のCentOS。それでも遅さを全く感じないし,数値で見ても同様。 -機材をThinkPad T540pに更新した。2018年 6月17日。[[Puppeteer>NET/www/webプログラミング#puppeteer]]をGUIありで(即ちwith-headで)動かす必要があり、X Windowを入れたところ、X201は苦しそうだった。退役。 1万円前後のAtom系オンボードは勧めない。かなり古いノートパソコンよりも処理能力が低いのでコストパフォーマンスに劣る。AtomとCoreプロセッサーとでは大きな格差がある。 **SoftEther [#c6295bd5] ***導入手順 [#g71e1cae] +Windowsパソコンを一つ用意 +VirtualBoxをインストール +VirtualBoxにLinux (CentOS 6.9)をインストール (ver 7でもよいが,ver 6の方が設定が簡単で,情報も圧倒的に多い。) --VirtualBox側のNIC設定はbridge。 --Linux側のネット(eth0)設定は(1) CentOS側はDHCP割当にしてルーターでIPを固定するか,(2) CentOS側で固定するか。どちらでもよいが,ルーターでIPを固定の方が初心者向け。 --/etc/sysctl.conf のnet.ipv4.ip_forward = 1は不要。 +自宅LANの主ルーターで,VirtualBox上のLinuxに対してIPを固定割当。DHCPの項目。 +Linuxで,firewall設定 --(1) SoftEther管理のためのポートと,(2) L2TP/IPsec接続のためのポートを開ける。 ---当座はTCP 992, UDP 500, UDP 4500 --NAT (MASQUERADE)は不要。 +SoftEtherをインストール --インストールから起動まではshell (sshクライアント)で行い,それ以降の設定(ポートその他一切の設定)はWindowsのサーバー管理マネジャーで行うのが簡単。 +SoftEtherのWindows版サーバー管理マネジャーから初期設定 --eth0にbridge --仮想NAT,仮想DHCPはいずれも不要。 --L2TP/IPsecを設定 +VirtualBoxのLinux仮想マシンのNICの設定でプロミスキャスタモードを有効にする。 [[VPNFAQ004. VM においてローカルブリッジが正しく動作しない - SoftEther VPN プロジェクト:https://ja.softether.org/4-docs/3-kb/VPNFAQ004]] +自宅LANに接続中のスマホから,ローカルIPのSoftEhterに対してL2TP/IPsecで接続できるか確認。 --LAN内なので,グローバルIPやホスト名(...softehter.net)では接続できない。 +自宅LANの主ルーターで,VirtualBox上のLinuxに対して,L2TP/IPsec接続のためのポートを転送。UDP 500, UDP 4500 --インタネットに対してこれらポートを開放することを意味する。 +自宅LAN外に接続中のスマホから,SoftEhterに対して,SoftEtherのダイナミックDNS ホスト名(...softether.net)で,L2TP/IPsecで接続できるか確認。 -なお,SoftEtherクライアントからは,特に992などを対外的に開放しなくても接続できる。NAT トラバーサル機能による。[[ダイナミック DNS 機能および NAT トラバーサル機能 - SoftEther VPN プロジェクト:https://ja.softether.org/4-docs/2-howto/6.VPN_Server_Behind_NAT_or_Firewall/1.Dynamic_DNS_and_NAT_Traversal]]。See also [[NET/サーバー>NET/サーバー#softether]] #hr 実際の運用では、仮想マシンを[[サービスとして自動起動するとよい>PC#vboxAsService]]。 ***自分自身へのアクセス [#hbc2f5b5] SoftEtherサーバーが仮に192.168.0.10だとして,自宅LANにVPNした状態で,クライアントから192.168.0.10にアクセスしようとしてもできない(pingすらできない)。(自宅LAN内の他の機器へのアクセスには制限はない。)これはLinuxの仕様だそうだ。「Linux オペレーティングシステム内部での制限事項により、VPN 側 (仮想 HUB 側) からローカルブリッジしている LAN カードに割り当てられる IP アドレスに対して通信を行うことはできません。この制限は SoftEther VPN が原因ではなく、Linux の内部構造に原因があります。」[[3.6 ローカルブリッジ - SoftEther VPN プロジェクト:http://ja.softether.org/4-docs/1-manual/3/3.6#3.6.11_Linux.2C_FreeBSD.2C_Solaris.2C_Mac_OS_X_.E3.82.AA.E3.83.9A.E3.83.AC.E3.83.BC.E3.83.86.E3.82.A3.E3.83.B3.E3.82.B0.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.A7.E3.80.8C.E3.83.AD.E3.83.BC.E3.82.AB.E3.83.AB.E3.83.96.E3.83.AA.E3.83.83.E3.82.B8.E6.A9.9F.E8.83.BD.E3.80.8D.E3.82.92.E4.BD.BF.E7.94.A8.E3.81.99.E3.82.8B.E5.A0.B4.E5.90.88.E3.81.AE.E6.B3.A8.E6.84.8F.E4.BA.8B.E9.A0.85.E3.81.AF.E3.80.81.E4.B8.8B.E8.A8.98.E3.81.AE.E3.81.A8.E3.81.8A.E3.82.8A.E3.81.A7.E3.81.99.E3.80.82]] このままでも(VPNサーバーとして使う上では)特に困ることはないが,この仮想マシンでウェブサーバーを立てているなど,アクセスしたい場合は,VirtualBoxに仮想NICを追加すれば解消できる。幸い物理NICと違って追加は簡単だ。 +VirtulaBox側でNICを追加。MACアドレスをメモ。 +CentOS側でネットワーク設定。IPは0.0.0.0 #pre{{ vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 ONBOOT=yes BOOTPROTO=none HWADDR=08:00:... 先ほどのMACアドレス IPADDR=0.0.0.0 USERCTL=no TYPE=Ethernet IPV6INIT=no /etc/init.d/network restart }} +SoftEtherサーバーマネージャーで,eth1にブリッジを設定。 --hubを選んでeth1へのブリッジを追加。既存のhubでよい。hubを選ばないとブリッジを追加できない。 *自宅サーバー管理 [#r47472a8] **自宅IPの確認手段 [#d5c90960] -WANを交換したとき、アクセス制御を修正するために自宅の値を調べるツール・サイト --[[IPv4/IPv6接続判定ツール:http://kiriwake.jpne.co.jp/]] **Windows [#keddbc7e] 上記のように、サーバーはWindows 10上のVirtualBox上のCentOS 7を使っている。(最近、CentOS 6から更新。)土台のWindowsの状態を遠隔から把握するのに以下のスクリプトを使っている。別途、Apache httpd(Windowsにインストール)とPerl(Active Perl, Windows版)が必要。状態把握のやりかたはいろいろあり、普通はWindowsの管理ツールを使うはずだが、それらは個人的になじみがないので、代わりに使い慣れた道具立てを使っている。 #pre{{{ #!/usr/bin/perl use utf8; open(STDERR, ">&STDOUT"); #open(STDERR, ">>error.log"); use strict; use warnings; use CGI qw(:cgi); my $q = CGI->new; { my $title = 'WMIC PROCESS'; print $q->header(); print $q->start_html( -title=>$title, -style => { -verbatim => 'td:nth-child(4), td:nth-child(6) {text-align: right;}' }, ); } my $wmic = 'wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime,WorkingSet,WorkingSetPeak /format:csv'; my @wmic = qx($wmic); my @lines = (); my %workingSet = (); shift @wmic; # 1行目は空 my @head = map {$_ =~ s/\s+$//; $_} map {split(',')} shift @wmic; push(@head,'rate'); for (@wmic) { chomp; my @headers = @head; my %line = (); my @cols = split(','); for my $key (@headers) { $line{$key} = shift @cols // 0; $line{$key} =~ s/\s+$//; # ゴミ取り } push @lines, {%line}; $workingSet{$line{'Name'}} = $line{'WorkingSet'}; # rate計算用 } # 配列の順序を入れ替え @head[4,5] = @head[5,4]; print qq(<table border>\n); # ソート列を変えて2回呼ぶ。 &sort_print('PercentProcessorTime'); &sort_print('WorkingSet'); print qq(</table>\n); exit; # -----------------------------------終わり sub sort_print { my ($sortKey) = $_[0]; my @lines = sort { $b->{$sortKey} <=> $a->{$sortKey} } @lines; # spliceで原本を壊さないようmyを使う。 splice(@lines,10); print qq(<tr>); map {printf qq(<td>%s),$_} (@head); print qq(</tr>\n); for (@lines) { my %line = %{$_}; next if $sortKey eq 'PercentProcessorTime' && $line{'PercentProcessorTime'} ==0; # 0の項目の順序は無意味なので削除。 print qq(<tr>); $line{'rate'} = sprintf q(%.2f%%), $line{'WorkingSet'}/$workingSet{'_Total'}*100; if ($line{'Name'} eq '_Total') { $line{'rate'} = ''; } for (@head) { $line{$_} =~ s/\s$//; # ゴミ取り if ($line{$_} !~ /\D/) { # 数字なら桁取り。 $line{$_} =~ s/(\d)(?=(\d\d\d)+(?!\d))/$1,/g; } printf qq(<td>%s),$line{$_}; } print qq(</tr>\n); } } }}} *IPv6 [#n6b86749] インターネット上のサーバーに「自宅からのみアクセス可」のような設定をしている場合に、IPv6で「自宅」は[[どのように表記するか>NET/サーバー#homeipv6]]。 *WAN [#t22afd84] -フレッツ光を新規に引いた。(契約は楽天ひかり。コラボ。)光電話あり。NTT貸与のルーターにはsharedでないIPv4が割り当てられており、サーバーを立てる支障はなかった。IPv6プラス類を使うには、ルーターを2段にすることになるが、いまのところ速度的には不要のようだ。幸運。地区によって違うのだと思うが、IPv6プラス類でないと夜に1Mbpsも出ない経験も以前したことがある。これは県単位や市単位よりもっと狭い単位の運不運だろう。(ただし、NTTルーターには無線LAN機能がない(有償オプション)ので、WiFiのためにルーターを2段にしている。IPv6プラス類で自動で接続している。)2021年4月30日 *Wake On LAN [#mf686e8b] 塩田さんのスクリプト([[Windows 10 Wake On LAN(WoL)入門:WoLでPCを起動 - @IT:https://www.atmarkit.co.jp/ait/articles/2004/20/news021_2.html]])を使うと、Windows 10から簡単にWake On LANができるのだが、PowerShellをほとんど使わない僕は少し手間取った。「このシステムではスクリプトの実行が無効になっているため、...」に初めて対面した。[[PowerShellスクリプトを簡単実行 - Qiita:https://qiita.com/biginnings/items/f4e22ad275d9adfc1b57]]を参考に、やりたいことを実現できた。 -こんな内容のBATファイルをデスクトップ等に置く powershell -ExecutionPolicy RemoteSigned -File C:\...\WakeDell3020.ps1 WakeDell3020.ps1の中には、直接塩田さんのスクリプト(関数の定義に当たる)を書いてその次の行で呼び出してもよいし、塩田さんのスクリプト自体は汎用的に使うなら、もう一つ別のps1を介在させる。例えば -WakeDell3020.ps1 #pre{{ WakeOnLAN WakeOnLAN "F8-xx-xx-xx-xx-xx" "192.168.1.255" }}
タイムスタンプを変更しない
#contents *後期高齢者を隔離 [#uc52bca2] 後期高齢者が彼/彼女のパソコンで何かミスをしても,自宅LANの他のパソコンに及ぶ影響を最小限にするため,隔離したい。彼/彼女のパソコンからは,WAN(インターネット)には出て行けるが,自宅LAN内の他のパソコンにはアクセスできないようにするというわけだ。一番簡単なのは,無線LANルーターの「ネットワーク分離」機能を使うことだ。 有線でつないでいる場合であっても,いまは非常に手頃な費用で可能。VLAN対応の5ポートスイッチと呼ばれるものを買えばよい。amazon.co.jpで2,500円前後で買える。私が買ったのはTP-LINK TL-SG105E。他に,NETGEAR GS105E-200JPSも安く,同じことができる。VLANの解説ではないが,以下の記事が選択の役に立つ。 -[[【清水理史の「イニシャルB」】 VLANやLAGも可能な管理機能付きスイッチが3000円以下で TP-Linkイージースマートスイッチ「TL-SG105E」 - INTERNET Watch:http://internet.watch.impress.co.jp/docs/column/shimizu/1042279.html]](2017年2月6日) 無線LANルーターまたはルーターが複数台あり,後期高齢者が接続しているのは2台目(内側)の場合は注意が必要だ。単純にネットワーク分離しても内側の内部でしか分離されない。ルーターが入れ子(二重ルーター)のとき,どこが隔離されるかを理解するには,ルーターはファイアーウォールの一種だと考えれば分かり易い。ファイアーウォールの内側が外側から隔離(保護)されるのであって,外側は内側から隔離(保護)されない。もし,1段目(外側)のパソコンを2段目(内側)から保護するなら,合計3台のルーターが必要だ。城の一番外側のルーター(親)の内部に,本丸と二の丸の2つの子ルーター領域を作る。 *VPN [#homevpn] いまどきはVPSが安く使えるので,往年の「自宅サーバー」の効用はかなり小さくなったが,auひかりの新サービス「[[スマホで固定電話:https://www.au.com/internet/auhikari/service/phone/smartphone/]]」を前にまた復活の兆しがある。詳細は[[NET/通信契約>NET/通信契約#auhomedenwa]]。 **使用機材 [#y6f9aee1] VPSを主環境として使っているが,自宅にもサーバーを置いている。自宅サーバーにはThinkPad X201を使っている。ノートパソコンの方が便利だ。画面とキーボードが付いている。[[X201はかなり古い>PC#corei]]機種だが,VPNサーバーとして使う上ではスループットで特に支障はない。しかも,SoftEtherを入れているのは,Windows10の上のVirtualBoxの上のCentOS。それでも遅さを全く感じないし,数値で見ても同様。 -機材をThinkPad T540pに更新した。2018年 6月17日。[[Puppeteer>NET/www/webプログラミング#puppeteer]]をGUIありで(即ちwith-headで)動かす必要があり、X Windowを入れたところ、X201は苦しそうだった。退役。 1万円前後のAtom系オンボードは勧めない。かなり古いノートパソコンよりも処理能力が低いのでコストパフォーマンスに劣る。AtomとCoreプロセッサーとでは大きな格差がある。 **SoftEther [#c6295bd5] ***導入手順 [#g71e1cae] +Windowsパソコンを一つ用意 +VirtualBoxをインストール +VirtualBoxにLinux (CentOS 6.9)をインストール (ver 7でもよいが,ver 6の方が設定が簡単で,情報も圧倒的に多い。) --VirtualBox側のNIC設定はbridge。 --Linux側のネット(eth0)設定は(1) CentOS側はDHCP割当にしてルーターでIPを固定するか,(2) CentOS側で固定するか。どちらでもよいが,ルーターでIPを固定の方が初心者向け。 --/etc/sysctl.conf のnet.ipv4.ip_forward = 1は不要。 +自宅LANの主ルーターで,VirtualBox上のLinuxに対してIPを固定割当。DHCPの項目。 +Linuxで,firewall設定 --(1) SoftEther管理のためのポートと,(2) L2TP/IPsec接続のためのポートを開ける。 ---当座はTCP 992, UDP 500, UDP 4500 --NAT (MASQUERADE)は不要。 +SoftEtherをインストール --インストールから起動まではshell (sshクライアント)で行い,それ以降の設定(ポートその他一切の設定)はWindowsのサーバー管理マネジャーで行うのが簡単。 +SoftEtherのWindows版サーバー管理マネジャーから初期設定 --eth0にbridge --仮想NAT,仮想DHCPはいずれも不要。 --L2TP/IPsecを設定 +VirtualBoxのLinux仮想マシンのNICの設定でプロミスキャスタモードを有効にする。 [[VPNFAQ004. VM においてローカルブリッジが正しく動作しない - SoftEther VPN プロジェクト:https://ja.softether.org/4-docs/3-kb/VPNFAQ004]] +自宅LANに接続中のスマホから,ローカルIPのSoftEhterに対してL2TP/IPsecで接続できるか確認。 --LAN内なので,グローバルIPやホスト名(...softehter.net)では接続できない。 +自宅LANの主ルーターで,VirtualBox上のLinuxに対して,L2TP/IPsec接続のためのポートを転送。UDP 500, UDP 4500 --インタネットに対してこれらポートを開放することを意味する。 +自宅LAN外に接続中のスマホから,SoftEhterに対して,SoftEtherのダイナミックDNS ホスト名(...softether.net)で,L2TP/IPsecで接続できるか確認。 -なお,SoftEtherクライアントからは,特に992などを対外的に開放しなくても接続できる。NAT トラバーサル機能による。[[ダイナミック DNS 機能および NAT トラバーサル機能 - SoftEther VPN プロジェクト:https://ja.softether.org/4-docs/2-howto/6.VPN_Server_Behind_NAT_or_Firewall/1.Dynamic_DNS_and_NAT_Traversal]]。See also [[NET/サーバー>NET/サーバー#softether]] #hr 実際の運用では、仮想マシンを[[サービスとして自動起動するとよい>PC#vboxAsService]]。 ***自分自身へのアクセス [#hbc2f5b5] SoftEtherサーバーが仮に192.168.0.10だとして,自宅LANにVPNした状態で,クライアントから192.168.0.10にアクセスしようとしてもできない(pingすらできない)。(自宅LAN内の他の機器へのアクセスには制限はない。)これはLinuxの仕様だそうだ。「Linux オペレーティングシステム内部での制限事項により、VPN 側 (仮想 HUB 側) からローカルブリッジしている LAN カードに割り当てられる IP アドレスに対して通信を行うことはできません。この制限は SoftEther VPN が原因ではなく、Linux の内部構造に原因があります。」[[3.6 ローカルブリッジ - SoftEther VPN プロジェクト:http://ja.softether.org/4-docs/1-manual/3/3.6#3.6.11_Linux.2C_FreeBSD.2C_Solaris.2C_Mac_OS_X_.E3.82.AA.E3.83.9A.E3.83.AC.E3.83.BC.E3.83.86.E3.82.A3.E3.83.B3.E3.82.B0.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.A7.E3.80.8C.E3.83.AD.E3.83.BC.E3.82.AB.E3.83.AB.E3.83.96.E3.83.AA.E3.83.83.E3.82.B8.E6.A9.9F.E8.83.BD.E3.80.8D.E3.82.92.E4.BD.BF.E7.94.A8.E3.81.99.E3.82.8B.E5.A0.B4.E5.90.88.E3.81.AE.E6.B3.A8.E6.84.8F.E4.BA.8B.E9.A0.85.E3.81.AF.E3.80.81.E4.B8.8B.E8.A8.98.E3.81.AE.E3.81.A8.E3.81.8A.E3.82.8A.E3.81.A7.E3.81.99.E3.80.82]] このままでも(VPNサーバーとして使う上では)特に困ることはないが,この仮想マシンでウェブサーバーを立てているなど,アクセスしたい場合は,VirtualBoxに仮想NICを追加すれば解消できる。幸い物理NICと違って追加は簡単だ。 +VirtulaBox側でNICを追加。MACアドレスをメモ。 +CentOS側でネットワーク設定。IPは0.0.0.0 #pre{{ vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 ONBOOT=yes BOOTPROTO=none HWADDR=08:00:... 先ほどのMACアドレス IPADDR=0.0.0.0 USERCTL=no TYPE=Ethernet IPV6INIT=no /etc/init.d/network restart }} +SoftEtherサーバーマネージャーで,eth1にブリッジを設定。 --hubを選んでeth1へのブリッジを追加。既存のhubでよい。hubを選ばないとブリッジを追加できない。 *自宅サーバー管理 [#r47472a8] **自宅IPの確認手段 [#d5c90960] -WANを交換したとき、アクセス制御を修正するために自宅の値を調べるツール・サイト --[[IPv4/IPv6接続判定ツール:http://kiriwake.jpne.co.jp/]] **Windows [#keddbc7e] 上記のように、サーバーはWindows 10上のVirtualBox上のCentOS 7を使っている。(最近、CentOS 6から更新。)土台のWindowsの状態を遠隔から把握するのに以下のスクリプトを使っている。別途、Apache httpd(Windowsにインストール)とPerl(Active Perl, Windows版)が必要。状態把握のやりかたはいろいろあり、普通はWindowsの管理ツールを使うはずだが、それらは個人的になじみがないので、代わりに使い慣れた道具立てを使っている。 #pre{{{ #!/usr/bin/perl use utf8; open(STDERR, ">&STDOUT"); #open(STDERR, ">>error.log"); use strict; use warnings; use CGI qw(:cgi); my $q = CGI->new; { my $title = 'WMIC PROCESS'; print $q->header(); print $q->start_html( -title=>$title, -style => { -verbatim => 'td:nth-child(4), td:nth-child(6) {text-align: right;}' }, ); } my $wmic = 'wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime,WorkingSet,WorkingSetPeak /format:csv'; my @wmic = qx($wmic); my @lines = (); my %workingSet = (); shift @wmic; # 1行目は空 my @head = map {$_ =~ s/\s+$//; $_} map {split(',')} shift @wmic; push(@head,'rate'); for (@wmic) { chomp; my @headers = @head; my %line = (); my @cols = split(','); for my $key (@headers) { $line{$key} = shift @cols // 0; $line{$key} =~ s/\s+$//; # ゴミ取り } push @lines, {%line}; $workingSet{$line{'Name'}} = $line{'WorkingSet'}; # rate計算用 } # 配列の順序を入れ替え @head[4,5] = @head[5,4]; print qq(<table border>\n); # ソート列を変えて2回呼ぶ。 &sort_print('PercentProcessorTime'); &sort_print('WorkingSet'); print qq(</table>\n); exit; # -----------------------------------終わり sub sort_print { my ($sortKey) = $_[0]; my @lines = sort { $b->{$sortKey} <=> $a->{$sortKey} } @lines; # spliceで原本を壊さないようmyを使う。 splice(@lines,10); print qq(<tr>); map {printf qq(<td>%s),$_} (@head); print qq(</tr>\n); for (@lines) { my %line = %{$_}; next if $sortKey eq 'PercentProcessorTime' && $line{'PercentProcessorTime'} ==0; # 0の項目の順序は無意味なので削除。 print qq(<tr>); $line{'rate'} = sprintf q(%.2f%%), $line{'WorkingSet'}/$workingSet{'_Total'}*100; if ($line{'Name'} eq '_Total') { $line{'rate'} = ''; } for (@head) { $line{$_} =~ s/\s$//; # ゴミ取り if ($line{$_} !~ /\D/) { # 数字なら桁取り。 $line{$_} =~ s/(\d)(?=(\d\d\d)+(?!\d))/$1,/g; } printf qq(<td>%s),$line{$_}; } print qq(</tr>\n); } } }}} *IPv6 [#n6b86749] インターネット上のサーバーに「自宅からのみアクセス可」のような設定をしている場合に、IPv6で「自宅」は[[どのように表記するか>NET/サーバー#homeipv6]]。 *WAN [#t22afd84] -フレッツ光を新規に引いた。(契約は楽天ひかり。コラボ。)光電話あり。NTT貸与のルーターにはsharedでないIPv4が割り当てられており、サーバーを立てる支障はなかった。IPv6プラス類を使うには、ルーターを2段にすることになるが、いまのところ速度的には不要のようだ。幸運。地区によって違うのだと思うが、IPv6プラス類でないと夜に1Mbpsも出ない経験も以前したことがある。これは県単位や市単位よりもっと狭い単位の運不運だろう。(ただし、NTTルーターには無線LAN機能がない(有償オプション)ので、WiFiのためにルーターを2段にしている。IPv6プラス類で自動で接続している。)2021年4月30日 *Wake On LAN [#mf686e8b] 塩田さんのスクリプト([[Windows 10 Wake On LAN(WoL)入門:WoLでPCを起動 - @IT:https://www.atmarkit.co.jp/ait/articles/2004/20/news021_2.html]])を使うと、Windows 10から簡単にWake On LANができるのだが、PowerShellをほとんど使わない僕は少し手間取った。「このシステムではスクリプトの実行が無効になっているため、...」に初めて対面した。[[PowerShellスクリプトを簡単実行 - Qiita:https://qiita.com/biginnings/items/f4e22ad275d9adfc1b57]]を参考に、やりたいことを実現できた。 -こんな内容のBATファイルをデスクトップ等に置く powershell -ExecutionPolicy RemoteSigned -File C:\...\WakeDell3020.ps1 WakeDell3020.ps1の中には、直接塩田さんのスクリプト(関数の定義に当たる)を書いてその次の行で呼び出してもよいし、塩田さんのスクリプト自体は汎用的に使うなら、もう一つ別のps1を介在させる。例えば -WakeDell3020.ps1 #pre{{ WakeOnLAN WakeOnLAN "F8-xx-xx-xx-xx-xx" "192.168.1.255" }}
テキスト整形のルールを表示する