2008/10/21(Tue)VistaでIPPプリンタにPortFowardして接続

2008/10/21 20:13 Software::Windows
自宅から遠隔地のオンデマンドIPPプリンタにジョブを投げることが多いのだが、このプリンタがひと癖あって、遠隔地のLAN内からしか要求を受け付けない。
さらに認証方式は、https+Basic認証という形をとっていて、この情報をもとに印刷枚数の管理をしている。

というわけで、これまでXPでは、外部公開しているSSHサーバーを踏み台にして、PortForwardさせていた。
が、Vistaからは少々フォワード設定を工夫しないとうまくつながらないので、そのメモ。

定義

最初に、例として説明する架空のサーバーを定義。
外部公開されているSSHサーバー
login.example.com:22
LAN内しか見えないIPPプリンタ
https://press2.printer.example.com:443

フォワード設定

PuTTYごった煮版に含まれているpfwd.iniに次のように定義しておく。
そして、pfwd.exeを実行。パスワードを入力して、プリンタ使用中だけ常駐状態にしておく。
[SSH]
Host=login.example.com
Port=22
User=kero

[FORWARD]
01=L10443:press2.printer.example.com:443
これで、
自宅PC->遠隔地のSSH->IPPプリンタ
localhost:10443login.example.com:22press2.printer.example.com:443
のように穴が開く(フォワードされる)。

プリンタの追加

XPまでは、このように指定することができた。

vista_ipp_printer_1.png


が、これをVistaでやると……

vista_ipp_printer_2.png


失敗する。
原因を調べてみたところ、ローカルフォワードすることによって、ホスト名が本来のものではなく"localhost"となってしまうのが原因らしい。SSL証明書と一致しないため、無条件で撥ねられてしまう。
証明書の方を黙らせるのは何かと大変だし、あまりやりたくないので、本来のアドレスっぽく見せかけて繋ぐ方向でいく。

hosts

やってみた。
何かとお世話になるC:\Windows\System32\Drivers\etc\hostsを編集。
単に、このホスト名はこちら(自分のPC)ですよ、と書いているだけ。
一行追加。
メモ帳を管理者として実行してから開いて編集→保存としないと、UACによって上書きできないので注意。
127.0.0.1        press2.printer.example.com
で、準備はOK。

本来のようにアクセスする。
ただし、ポートフォワードは、ローカル側が10443になっているのでポート番号指定をお忘れなく。

vista_ipp_printer_3.png


これで一件落着。

さらに

これはXPでも使えるテクニックだが、ネットワークプリンタ名は何故か変更することができない。
例えば、先のプリンタであれば、colorw - https://press2.printer.example.com:10443のような迷惑な長さのプリンタ名になってしまう。
これを自由に変更する方法を紹介する。


まず、↑のようにネットワークプリンタを一度追加する。

次に、再度プリンタの追加を選び、「ローカルプリンタを追加します」を選ぶ

vista_ipp_printer_4.png


先ほど入力したアドレスのプリンタを選択。
おそらくユーザー認証は既に済んでいるので、求められないはず。

vista_ipp_printer_5.png


ドライバを再度選択。

vista_ipp_printer_6.png


そのまま次へ。

vista_ipp_printer_7.png


ここで好きな名前のプリンタ名に変更。後から変更できないのでご注意。*1
名前を変えたくなったら、このセクション(ローカルプリンタの追加から)を再度行ってください。

vista_ipp_printer_8.png


追加完了。

vista_ipp_printer_9.png



後は、長ったらしい名前のプリンタを削除するだけでOKです。
ユーザー情報などの情報はプリンタアイテム毎に持っているわけではなく、アドレス毎なので、同じプリンタを指すものが複数あってその片方を削除しても問題ないというわけです。

ひとつ欠点があるとすれば、プリンタの一覧で、待ちジョブ数が表示されません。
常に"0"となっていますが、ダブルクリックして開けば、きちんと待っているジョブが表示されるので、実際の使用に支障はないかと思われます。

vista_ipp_printer_10.png

*1 : プリンタ名を変更して確定しても、元の名前に戻ってしまいます。何故……?