WinSCPの使い方
WinSCPは、オープンソースでグラフィカルなFTP、FTPS、SFTPクライアントプログラムです。
私は、ホームページのファイル転送ソフトとして利用しています。
WinSCPのインストールから設定を掲載しています。(私の忘備録です)
私のホームページは「さくらインターネットサーバー(ライト)」を使っているので、SSH接続は出来ません。
この為、FTPS接続で利用していたのですが、Windows11にアップグレードしてからサーバから切断されると言う現象が発生していました。
この対策についても、掲載しています。
私のパソコン環境:Windows11 Home 64ビット
WinSCPの導入
ダウンロード
WinSCPのページ:WinSCP
WinSCPの入手先:窓の杜
インストール
途中、Windwosのユーザーアカウント制御やセキュリティソフトの警告が表示されますが、「はい」「許可」をクリックします。
ダウンロードしたexeファイルを実行しインストールを行います。
「許諾」ボタンをクリックします。
「セットアップ形式」>>>「標準的なインストール」を選択し「次へ」ボタンをクリックします。
「インターフェイススタイル」>>>「コマンダー」を選択し「次へ」ボタンをクリックします。
「インストール」ボタンをクリックします。
WinSCPセットアップウィザードの完了画面で「完了」をクリックすればンストール作業は終了です。
なお、WinSCPの更新は上書きインストールです。(通常は「更新」ボタンからダウンロードを行います)
また、WinSCPのアンイストールはWindowsのアンイストール機能で行いますが、インストールしたフォルダーに設定ファイル等が残ります。(これを削除すれば綺麗な状態となります)
WinSCPの設定
サーバー接続
当然ですが、これを行わないと使えません。
「さくらインターネットサーバー(ライト)」の設定情報です。
左上の方にある「新しいセッション」をクリックします。
「新しいサイト」を選択します。
「転送プロトコル」は「FTP」を選択します。
「FTP」を選択すると「暗号化」が表示されるので「明示的なTLS/SSL暗号化」を選択します。
「ホスト名」(ドメイン)を入力します。
「さくらインタネット」の場合、最初に送られて来る「登録完了のお知らせ」にドメイン情報があります。
「ポート番号」は「ホスト名」を入力すると21になります。
「ユーザー名」は管理し易い名称を入力します。
「パスワード」はセキュリティ上「空白」として「ログイン」を押す度に入力します。
一旦保存を押しログイン情報を保存します。(左「新しいサイト」の下に新たに表示されます)
「ログイン」をクリックします。
パスワードの入力画面が表示されます。
「さくらインタネット」のパスワードを入力し「OK」をクリックします。
開いた画面では、左がローカル、右がリモート(サーバー)となっています。
ローカル側でパソコンのフォルダを指定します。
リモート側ではサーバーのフォルダが開いていますので「www」を指定します。
接続先を確認し、問題なければ接続情報を保存します。
「セッション」>>>「ワークスペースの保存」をクリックして行います。
現れた「ワークスペースに名前を付けて保存」で「自動的に保存」にチェックを入れ「OK」ボタンをクリックし保存します。
この操作を行わずWinSCPを終了しようとすると保存を促す画面が表示されます。
同期設定
私の使い方として、ローカルフォルダの内容がサーバーフォルダの内容と同じになる様にしています。
同期の設定は自由度が高いので、使うシーンで変更するのが良いと思います。
上部タブで「コマンド」>>>「同期」をクリックします。
- ディレクトリ:同期するローカルとリモート(サーバー)のフォルダが正しいものか確認します
- 方向:「ローカル→リモート」を選択
- モード:「新しいファイルを同期」を選択
- 同期オプション:「ファイルを削除する」「変更をプレビュー」をチェック
- 比較基準:「更新日時」をチェック
「OK」をクリックすると同期が始まります。
この作業では「変更プレビュー」のみで、実際には反映されません。
「変更プレビュー」が確認し、良ければ、さらに「OK」をクリックすると反映されます。
サーバから切断される対策
同期中に現れる「サーバから切断されました。・・・」エラーの対策です。
数回「再接続(R)」をクリックすれば完了することは出来ますが、どうも気持ちよくありません。
FTP接続をSSLで暗号化してしまうとWindows11ファイアウォールが動作して切断してしまう様です。
ネットで公開されている解消方法になります。
コマンドプロンプトを管理者として実行します。
キーボードで「Win」+[R]キーを同時に押して「ファイル名を指定して実行」を起動します。
名前欄に「cmd」と入力した後、「Shift」+[Ctrl]キーを押しながら[OK]ボタンをクリックすると、管理者権限でコマンドプロンプトが開きます。
下記のコードを入力して「Enter」キーを押します。
「netsh advfirewall firewall add rule name="FTP for IIS7" service=ftpsvc action=allow protocol=TCP dir=in」
コマンドプロンプトは閉じずに次の作業を行います。
「セキュリティが強化されたWindows Defenderファイアウォール」を開きます。
先程と同様に「ファイル名を指定して実行」を起動します。
名前欄に「wf.msc」と入力し、「OK」をクリックします。
「セキュリティが強化されたWindows Defenderファイアウォール」の「受信の規則」をクリックし、追加されている「FTP for IIS7」を選択します。
さらに「プロパティ」をクリックして開きます。
「FTP for IIS7のプロパティ」で「プログラムおよびサービス」タブを選択します。
参照をクリックしWinSCP.exeを選択します。(私の場合「%ProgramFiles%(x86)\WinSCP\WinSCP.exe」)
「OK」をクリックし終了します。
ステートフルFTP検査フィルターを無効にします。
開いていたコマンドプロンプトに「netsh advfirewall set global StatefulFtp disable」を入力し「OK」が表示されれば完了です。(戻す場合:「netsh advfirewall set global StatefulFtp enable」)
コマンドプロンプトを閉じます。
これでWinSCPを使ってFTPS接続中にサーバーから切断されるエラーが無くなりました!
文字化け対策
WinSCPを利用して数ヶ月間、問題なく使えていたのですが、アップロードしたファイルのファイル名が文字化けする様になりました。
画像ファイル「W2-DIS-X2_001.JPG」をアップロードすると「?W2-DIS-X2_001.JPG」となります。
ファイル名を変更したり置き場所を変えたりしたのですが、解消されません。
ネットで公開されている文字化けの対策で解消されました。
サーバを選択して赤色枠「編集」をクリックします。
赤色枠「設定」をクリックします。
「ファイル名をUTF-8でエンコード」の「自動」をクリックし「オン」に設定します。
「OK」をクリックします。
「保存」をクリックします。
これでファイル名に?が付かなくなり問題が解消されました。
ご注意:本掲載内容のご利用は、あくまでも個人の責任で、お願いします。