[ Proftpd ] ローカルIPでPASV接続が出来ない
PASVモードでクライアントからサーバにftpdata接続を張るときに,
サーバがローカルIPを返してしまうために起こる不具合である.
具体的には,
>OPEN (host)
220 ProFTPD Server (ProFTPD on host) [192.168.0.x]
>USER test
331 Password required for test.
>PASS [xxxxxx]
230 User test logged in.
>PWD
257 "/" is current directory.
>TYPE A
200 Type set to A.
>PASV
227 Entering Passive Mode (192,168,0,x,yyy,zzz).
...
つまり,PASVが来た時点でサーバ側からグローバルIPを返せばいい.
この設定は,rpmでセットアップを行っているなら,/etc/proftpd.confに,
MasqueradeAddress [(ルータに振られた)グローバルIP]
PassivePorts [最小ポート番号] [最大ポート番号]
を付け加え,ルータのNAT設定で指定したポートを開けてやればよい.
もし,動的IPを使っている場合は,DynamicDNSでドメインを取った上で,
MasqueradeAddress [ドメイン]
PassivePorts [最小ポート番号] [最大ポート番号]
とする.
またこの時,デーモンをstandaloneで走らせている場合は,inetdで走らせる必要がある.
これは,standaloneで走らせた場合,
IPが変わったとしてもデーモンを起動した時点でのIPしか返さないためである.
« [ Postfix ] alias設定をする | トップページ | [ iptables ] ポートを開けたい »
「技術情報」カテゴリの記事
- [Win7] 起動時に自動的にVPN接続する(2013.09.06)
- [ Hard ] CPDP-940修理(2013.01.14)
- [ 玄箱 ] squeeze化(2012.01.05)
- [ Hard ] DCP-4200 子機設定手順(2011.01.24)
- [ Linux ] 旧distのapt(2012.01.26)
コメント