MacOSX の Classic 環境から、127.0.0.1 (loopback interface)
には、つながらないんでしょうか。たとえば、telnet でポート番
号 22 に繋ごうとすると、次のようなエラーになります。
Host or gateway not respoinding: 127.0.0.1
同じようにして、普通の IP アドレスに接続すると、問題ありません。
当面やりたいことは、MacSSH で、127.0.0.1 に接続して、文字端
末にしたいわけです。DHCP を使ってたり、あちこちに持ち運んで
固定アドレスで使っていたりして、毎回、IP アドレスが違うわけ
です。127.0.0.1 だと、変らないから便利そうだということです。
ですから、現在使っている IP アドレスが classic 環境からわかっ
て、それを自動的に MacSSH に放り込めればそれでもいいのでしょう。
MacOS 8.5 だと、127.0.0.1は普通に使えていました。SSH でポー
ト・フォワーディングに使っていました。MacOSX 側の ssh コマン
ドの -L でのポート・フォワーディングを使って、BetterTelnet
で遠隔の telnet を叩こうとしてました。でもやはり、127.0.0.1
にはうまくつながりません。MacSSH は、日本語も一応通るし、遠
隔ログインする分には、BetterTelnet はもう不要です。でもやり
たいのは、文字端末にしたいということなので。
JTerminal もいいのですけれど、ちょっと重たいのと、emacs で漢
字を編集していると、表示がおかしくなることが多くて。
漢字のテキスト書きは、普段は、classic 環境で Nitemacs を使っ
ています。Shift を押しながら Open で、型が設定されていない
MacOSX のファイルも読めます。(Shift 押しながらの C-x C-f で
は、だめみたい。)
ちなみに、Nitemacs は、EUC の漢字も読み書きできます。JIS も
Shift-JIS も問題ありません。行末コードも、Mac/Unix/Dos と変
えられます。ワープロ風の行末なしもできます。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
# MacOS X の 127.0.0.1 につなごうと言う話だとして
想像ですが、
Classic 上の 127.0.0.1 == Classic 上の(MacOS9の)loopback interface
ということはないのでしょうか...
--
いけだやすし (doc...@docile.org)
そういえば、ことえりを使って JTerminal 上の emacs に、
例えば「…」を入力しようとするとおかしくなるようです。
他にも発生する文字があるかもしれないですし、ことえりで
なくても起きるかもしれませんが、そのへんは試していないです。
# はやくEGBridge出ないかな...
ちなみに私の場合、 JTerminal 上の emacs で日本語文書いてます :)
OS X に、FreeWnn と たまご4をインストールして使ってます。
「…」問題もないです。
# Ctrl-\ が通らないので .emacs でキーバインドをC-@に設定。
時々 ModeLine が崩れたりしますが、Ctrl-L でなおるので許容範囲と
いうことで。
--
いけだやすし (doc...@docile.org)
In article <9hh071$21tr$1...@sranhh.sra.co.jp>
ya-i...@sra.co.jp (Yasushi Ikeda) writes:
> >MacOSX の Classic 環境から、127.0.0.1 (loopback interface)
> >には、つながらないんでしょうか。たとえば、telnet でポート番
> >号 22 に繋ごうとすると、次のようなエラーになります。
> # MacOS X の 127.0.0.1 につなごうと言う話だとして
はい。SSH で、文字端末としてログインしたいので。
> 想像ですが、
> Classic 上の 127.0.0.1 == Classic 上の(MacOS9の)loopback interface
> ということはないのでしょうか...
IP Stack は、Classic 環境と MacOSX で別なんでしょうかね。
別々の IP アドレスが付けられるかどうかです。
AppleTalk は、なんか別のような気がします。プリンタなど別です
し。AppleShare くらい使えてもいいのになあ。NFS は、使えるの
ですが、unmount するのを忘れてネットワークから切り放した時に
酷い目に合うので。
正しいやり方なのかはよくわかりませんが、わたしの手元では
次のようにして接続できました。
1) SimpleText で、以下の内容のファイルを書く。
(Classic 環境でテキストファイルとして読めるなら何で書いてもよい?)
- - - - - - - - - - ここから - - - - - - - - - -
localhost.foo.bar.net A 127.0.0.1
localhost CNAME localhost.foo.bar.net
- - - - - - - - - - ここまで - - - - - - - - - -
# foo.bar.net は適当に変えてください。
2) Classic 環境の TCP/IP コントロールパネルを開く
「Hostsファイルの選択...」ボタンを押して、1) で作成したファイルを選ぶ
TCP/IPウインドウを閉じる。
3) MacSSH で接続するときに、HostName には "localhost" と入力する。
>In article <9hh071$21tr$1...@sranhh.sra.co.jp>
> ya-i...@sra.co.jp (Yasushi Ikeda) writes:
>> 想像ですが、
>> Classic 上の 127.0.0.1 == Classic 上の(MacOS9の)loopback interface
>> ということはないのでしょうか...
>
>IP Stack は、Classic 環境と MacOSX で別なんでしょうかね。
>別々の IP アドレスが付けられるかどうかです。
このへんはよくわかりませんです。
# TCP/IP コントロールパネルを使って別のアドレス付けられそうな感じ...
--
いけだやすし (doc...@docile.org)
ちょっと実験してみました。
1) Classic 環境から、同じホスト上の(MacOS X の) SSH daemon につなぐ
127.0.0.1 を指定→ X
localhost を指定→ X
2) MacOS X の InternetExplorer から、Classic 上の MacHTTP に接続
http://127.0.0.1/ を指定→ X
http://localhost/ を指定→ O
3) Hosts ファイルを指定して、1) と同じことを行なう
127.0.0.1 を指定→ X
localhost を指定→ O
--
いけだやすし (doc...@docile.org)
In article <9hpbhd$91a$1...@sranhh.sra.co.jp>
ya-i...@sra.co.jp (Yasushi Ikeda) writes:
> >> >MacOSX の Classic 環境から、127.0.0.1 (loopback interface)
> >> >には、つながらないんでしょうか。たとえば、telnet でポート番
> 正しいやり方なのかはよくわかりませんが、わたしの手元では
> 次のようにして接続できました。
情報、ありがとうございます。私の所もうまくいきました。
localhost でつながるのは、いいですね。telnet daemon を
localhost 専用で開いて、telnet を端末にするといいんじゃない
かと思いました。MacSSH で SSH につなぐと、キーのタイプについ
ていけないみたいです。同一ホスト内で暗号通信しているのと、コ
ンテキスト切替えが、遅いというのが効いているみたいです。
コンテキスト切替えは、昔から遅かったけど、MacOSX では、特に
問題はないですよね。リモート・ログインしてもでも、Classic 環
境の方は、昔のままみたい。
> >IP Stack は、Classic 環境と MacOSX で別なんでしょうかね。
> >別々の IP アドレスが付けられるかどうかです。
> このへんはよくわかりませんです。
> # TCP/IP コントロールパネルを使って別のアドレス付けられそうな感じ...
試してみました。手入力して「内蔵Ethernet」を選ぶと、Classic
環境が落ちました。「Ethernetスロット1」だと、MacOSX 側と同
じアドレスです。別に同じアドレスで、不満はないんだけれど。
MacOSX に lsof (list open files) コマンドが入っていたんです
ね。今日、気が付きました。
漢字のファイル名らしきものが「\x16進数」で表示されます。これ
をデコードできるといいんだけど。Unicode かなあ。Unicode なら
Java でプログラムを書くとすぐに解けそう。でも解けとも、その
あと JIS なり EUC にしないといけないんだろうけれど、どうする
んでしょうね。
lsof | perl -p -e 's/\\x([0-9a-f][0-9a-f])/$1/g' | less
まあ、Classic 環境は、TruBlueEn になってしまうのはしょうがな
いとして。
MacOSX で安全に telnet daemon を実行する方法です。他の Unix
でも下の設定で動きますが、localhost で telnet を走らせる意味
は、ほとんどないでしょう。SSH でトンネルする時くらいです。
telnet 以外のサービスや localhost 以外のホストで読み替えれば、
TCP_Wrapper の設定の話ともしれます。ここで「安全」という意味
は、他のコンピュータから telnet で接続されて攻撃されないよう
にという意味です。
(1) TCP Wrapper (tcpd) の設定をします。127.0.0.1 からの
telnetd への接続だけを許可して、後は拒否します。(既に tcpd
の設定している時には、読み替えてください。)
------------------------------------------------------------
% cd /etc
% cat hosts.allow
#
# /etc/hosts.allow
#
telnetd : 127.0.0.1
% cat hosts.deny
#
# /etc/hosts.deny
#
ALL : ALL
% tcpdmatch telnetd 127.0.0.1
client: address 127.0.0.1
server: process telnetd
matched: /etc/hosts.allow line 4
access: granted
% tcpdmatch telnetd 192.168.1.1
client: address 192.168.1.1
server: process telnetd
matched: /etc/hosts.deny line 4
access: denied
%
------------------------------------------------------------
「%」は、シェルのプロンプトです。cat は、ファイルの内容を表
示するコマンドです。その下から、次の「%」までがファイルの内
容です。「#」から始まる行は、コメントなので、実質それぞれ1
行しかありません。127.0.0.1 から telnetd への接続は、allow
して、その他(ALL から ALL)は、deny しています。他に tcpd の
設定をしている人は、
telnetd : 127.0.0.1
という行を hosts.allow に追加してください。
tcpdmatch は、/etc/hosts.{allow,deny} ファイルの確認をするた
めのコマンドです。127.0.0.1 から granted, その他から denied
が返れば成功です。
(2) /etc/inetd.conf を書き換えます。
------------------------------------------------------------
% egrep telnet /etc/inetd.conf
telnet stream tcp nowait root /usr/libexec/tcpd telnetd
%
------------------------------------------------------------
先頭の「#」をエディタで削ります。その後、inetd に設定ファイ
ルを再読み込みさせます。
------------------------------------------------------------
[localhost:/etc] root# ps aux | egrep inetd
root 250 0.0 0.0 1260 112 ?? Ss 0:00.01 inetd
root 2149 0.0 0.0 5744 0 std RV 0:00.00 egrep inetd
[localhost:/etc] root# kill -1 250
[localhost:/etc] root#
------------------------------------------------------------
kill -1 の代りに、システムを再起動してもかまいません。
telnetd の設定は、以上です。これが終わったら確認します。端末
を開いて、telnet localhost してDarwin/BSD が出てくれば、成功
です。
------------------------------------------------------------
% telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Darwin/BSD (localhost) (ttyp3)
login:
------------------------------------------------------------
とまあ、telnet daemon の起動には成功したのですが、肝心の
MacSSH/BetterTelnet からうまくつながりません。MacSSH は、SSH
で localhost にはつながるのに、telnet だとつながらないという
始末です(<9hpbhd$91a$1...@sranhh.sra.co.jp> 参照)。ううむ。
とりあえず、静的にアドレスをふって、自分自身に接続するという
のは、問題ないみたいです。場所が変ると困るのですけれど。この
場合は、上の hosts.allow を次のように修正します。
------------------------------------------------------------
% cat /etc/hosts.allow
#
# /etc/hosts.allow
#
telnetd : 127.0.0.1 192.168.10.20
%
------------------------------------------------------------
192.168.10.20 というのは、静的に割り振ったそのホストのIP ア
ドレスです。DHCP を使っていると毎回変るので、うまくありませ
ん。それを避けるために 127.0.0.1 に接続しようと頑張ったのに。
一応、telnet を使っても、同じホスト内なので、パケットがネッ
トワークを流れることはありません。通信内容が暗号化されません
が、問題はありません。
さすがに、SSH より telnet は速いですね。MacSSH で文字を打っ
てもガクガクしません。emacs を動かして、ことえりで漢字を打っ
ても、問題なさそうです。もっとも、ことえりが使えても、そんな
にうれしくはないんですけれど。コピー&ペーストが簡単という所
がいいかも。でもなんか、Finder からのコピー&ペーストがちょっ
と変か。