🐮

SAKURAサーバでGitHub ActionsからFTP接続できない場合の対処法

に公開

背景

SAKURAのレンタルサーバを契約し、GitHub ActionsからFTPでデプロイしようとしたところ、以下のエラーが発生しました。

Error: Error: Server sent FIN packet unexpectedly, closing connection.

FTP接続の設定は正しいはずなのに、なぜか接続できない状態が30分ほど続きました。この記事はその原因と対処法の記録です。

原因

SAKURAレンタルサーバは、デフォルトで国外からのFTP接続を制限しています。

GitHub Actionsのランナー(実行環境)は海外のデータセンターに配置されているため、この制限に引っかかって接続できませんでした。

この設定はセキュリティ強化のためのものですが、GitHub Actionsなど海外のCI/CDサービスを利用する場合は制限を解除する必要があります。

対処方法

1. SAKURAのコントロールパネルにログイン

  1. SAKURAレンタルサーバのコントロールパネルにアクセス
  2. 契約しているサーバにログイン

2. FTP制限設定を変更

  1. 左メニューから「ファイルマネージャー」を選択
  2. 「セキュリティ」タブをクリック
  3. 「国外IPアドレスフィルタ」セクションを確認

デフォルトでは「有効(制限する)」が設定されています。

  1. 「無効(制限しない)」に変更
  2. 「設定する」ボタンをクリック

3. GitHub Actionsで接続確認

設定変更後、GitHub Actionsのワークフローを再実行して接続できることを確認します。

以下は、FTP接続を使用するGitHub Actionsの設定例です。

name: Deploy to SAKURA

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: FTP Deploy
        uses: SamKirkland/FTP-Deploy-Action@4.3.3
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: /www/

まとめ

SAKURAレンタルサーバでGitHub ActionsからFTP接続できない場合は、国外IPアドレスフィルタの設定を確認しましょう。

GitHubで編集を提案

Discussion