リモートのファイルサーバと samba でファイル共有をするために,ポートフォワーディングを使ってみました.
ネットワーク構成は以下のとおり.(IP とかは適当)
localhost (192.168.1.10/24)
|
[the Internet]
|
fileserver (192.0.2.10/24, 2001:DB8::821/64)
fileserver は 192.0.2.0/24 からしか samba アクセスを受け付けないので,localhost から ssh ポートフォワーディングしてみました.
localhost で以下のコマンドを打ってポートフォワーディングです.(139番ポートをフォワーディングするには,root 権限が必要です.)
$ sudo ssh user@fileserver -L 139:fileserver:139
で,これで localhost に samba アクセスしてあげればファイル共有できるはず,と思って Konqueror なんかで,smb://localhost/ にアクセスしてみたのですが,
channel 3: open failed: connect failed: Connection refused
なんてのが,fileserver のターミナル上に表示されました...
うーん,なんでだろうと思って少し調べてみると,
つまみがなければ鼻でもつまむさんで役立ちそうな情報を発見.
どーやら,IPv6 の接続性をチェックしておかしくなっている模様.
とりあえず,書かれているとおりに,
$ sudo ssh user@fileserver -L 139:192.0.2.10:139
なんてやってみると,ちゃんとつながりました.
# 裏でどういう動きができているのかは現在調査中...
# パケットダンプをとった具合では IPv6 でアクセスしようとしている様子は見えないのですが,どこが悪いのでしょうか...
# samba クライアントの Konqueror が問題を引き起こしているのはなんとなく分かるのですが.
ちなみに,IPv6 が悪いんだよね?じゃあ,これでよくね?と
$ sudo ssh user@fileserver -L 139:fileserver:139 -4
IPv4 を指定してトンネルを掘ってみたのですが,今度は
channel 2: open failed: connect failed: Connection refused
なんてのが出やがりました...