このページではSquid により FTP Proxy を実現する方法に関して説明します。以下の2通りがあります。
Squid 接続待ち受けポート(デフォルト) | Squid からの接続先ポート | |
FTP over HTTP (WebFTP) | 3128(httpなどと共用) | 21 |
FTP(一般的なNative FTP) | 21 | 21 |
最終更新日:2021年1月1日
デフォルトでは FTP over HTTP のみ受け付けています。これは 3128で受け付けて外部FTPへ接続する方法です。
IEではこの設定です。
/etc/squid/squid.conf で以下の場所で設定します。デフォルトで設定されているため、特に追加の設定は不要です。
acl Safe_ports port 21 # ftp (中略) # Squid normally listens to port 3128 http_port 3128 |
ブラウザからはWebFTPとして以下のように表示されます。Squid がFTPサーバを HTMLに変換するイメージです。
一般的なFTP接続です。SquidがFTP接続を受け入れ、先に転送します。
一般的なProxyの機能で1段のみ多段化することが可能なようです。連続して多段化していくことはできません。
Squidではデフォルトではこの機能は無効化されています。以下の設定で有効化することが可能です。
ftp_port (IPアドレス):21 |
例:
ftp_port 192.168.1.1:21 |
(*)大昔のバージョンのSquidではこの機能は無効化されていました。昔のSquidはネーティブなFTPは受け付けませんでした。
一般的なFTPではないため通常にログインしようとすると以下のようなエラーが発生します。
# ftp 192.168.1.1 Connected to 192.168.1.1 (192.168.1.1). 220 Service ready 530 Must login first Name (192.168.1.1:root): anonymous 501 Missing host Login failed. |
#ftp 192.168.1.1 192.168.1.1 に接続しました。 220 Service ready 530 Must login first ユーザー (192.168.1.1:(none)): anonymous@microsoft.com |
これでFTP による多段構成が可能です。WinSCPでは以下のように設定します。
Proxytype で Proxyに送信するコマンドを選択します。Squid に対しては"USER @user@%host"
を設定するのが一般的なようです。
"missing host"や"must login first"と表示される場合は" USER
%proxyuser,USER %user@%host"になっている可能性があります。