お問い合わせはコチラから

海外(国外)アクセスを禁止しているFTPサーバーに海外から接続するには?

サイト運営

最近ではサーバー移転はプラグインがすべて行ってくれるので、移転の作業は以前よりも簡単になってきています。

それはあくまで、移転元と移転先で移転プラグインが使える場合だけです。

例えば、無料サーバーを利用していてサーバーを移転したいと思った時には、移転プラグインが動かなかったりします。

そいう場合は、FTPを使った古典的な手法で移転するしかなくなります。

FTPサーバーに海外からのアクセスを一切禁止しているサービスでは、海外からFTPクライアントで接続することができません。

日本にあるVPNを経由しても、IPアドレスが完全に国内IPになってないことが殆どですので、VPN経由でも歯が立たないことが多いです。

海外からFTP接続をどうしてもする必要があったので調べたら、方法があったのでメモしておきます。

国内サーバーのSSHでwgetを使えばFTPできる

自分がアクセスできる国内サーバーのSSHからwgetでFTPすることで、海外IPを禁止しているFTPサーバーにも接続することができます。

wget -mc ftp://USERNAME:PASSWORD@ftp.yyyy.com

-mcというのは、ミラーリングするオプションです。

USERNAME:ユーザー名

PASSWORD:パスワード

です。

-mcを使うのは、多数のファイルの転送でもファイルの取りこぼしが無い最強のオプションだからです。

wgetのオプション

コマンドラインで、

wget --help

と打てば、以下のように表示されます。

GNU Wget 1.14, 非対話的ネットワーク転送ソフト
使い方: wget [オプション]... [URL]...

長いオプションで不可欠な引数は短いオプションでも不可欠です。

スタートアップ:
  -V,  --version           バージョン情報を表示して終了する
  -h,  --help              このヘルプを表示する
  -b,  --background        スタート後にバックグラウンドに移行する
  -e,  --execute=COMMAND   `.wgetrc'形式のコマンドを実行する

ログと入力ファイル:
  -o,  --output-file=FILE    ログを FILE に出力する
  -a,  --append-output=FILE  メッセージを FILE に追記する
  -d,  --debug               デバッグ情報を表示する
  -q,  --quiet               何も出力しない
  -v,  --verbose             冗長な出力をする (デフォルト)
  -nv, --no-verbose          冗長ではなくする
       --report-speed=TYPE   Output bandwidth as TYPE.  TYPE can be bits.
  -i,  --input-file=FILE     FILE の中に指定された URL をダウンロードする
  -F,  --force-html          入力ファイルを HTML として扱う
  -B,  --base=URL            HTML で入力されたファイル(-i -F)のリンクを
                             指定した URL の相対 URL として扱う
       --config=FILE         設定ファイルを指定する

ダウンロード:
  -t,  --tries=NUMBER            リトライ回数の上限を指定 (0 は無制限).
       --retry-connrefused       接続を拒否されてもリトライする
  -O,  --output-document=FILE    FILE に文書を書きこむ
  -nc, --no-clobber              存在しているファイルをダウンロードで上書きしない
  -c,  --continue                部分的にダウンロードしたファイルの続きから始める
       --progress=TYPE           進行表示ゲージの種類を TYPE に指定する
  -N,  --timestamping            ローカルにあるファイルよりも新しいファイルだけ取得する
  --no-use-server-timestamps     ローカル側のファイルのタイムスタンプに
                                 サーバのものを使わない
  -S,  --server-response         サーバの応答を表示する
       --spider                  何もダウンロードしない
  -T,  --timeout=SECONDS         全てのタイムアウトを SECONDS 秒に設定する
       --dns-timeout=SECS        DNS 問い合わせのタイムアウトを SECS 秒に設定する
       --connect-timeout=SECS    接続タイムアウトを SECS 秒に設定する
       --read-timeout=SECS       読み込みタイムアウトを SECS 秒に設定する
  -w,  --wait=SECONDS            ダウンロード毎に SECONDS 秒待つ
       --waitretry=SECONDS       リトライ毎に 1〜SECONDS 秒待つ
       --random-wait             ダウンロード毎に 0.5*WAIT〜1.5*WAIT 秒待つ
       --no-proxy                プロクシを使わない
  -Q,  --quota=NUMBER            ダウンロードするバイト数の上限を指定する
       --bind-address=ADDRESS    ローカルアドレスとして ADDRESS (ホスト名か IP) を使う
       --limit-rate=RATE         ダウンロード速度を RATE に制限する
       --no-dns-cache            DNS の問い合わせ結果をキャッシュしない
       --restrict-file-names=OS  OS が許しているファイル名に制限する
       --ignore-case             ファイル名/ディレクトリ名の比較で大文字小文字を無視する
  -4,  --inet4-only              IPv4 だけを使う
  -6,  --inet6-only              IPv6 だけを使う
       --prefer-family=FAMILY    指定したファミリ(IPv6, IPv4, none)で最初に接続する
       --user=USER               ftp, http のユーザ名を指定する
       --password=PASS           ftp, http のパスワードを指定する
       --ask-password            パスワードを別途入力する
       --no-iri                  IRI サポートを使わない
       --local-encoding=ENC      指定した ENC を IRI のローカルエンコーディングにする
       --remote-encoding=ENC     指定した ENC をデフォルトのリモートエンコーディングにする
       --unlink                  上書きする前にファイルを削除する

ディレクトリ:
  -nd, --no-directories           ディレクトリを作らない
  -x,  --force-directories        ディレクトリを強制的に作る
  -nH, --no-host-directories      ホスト名のディレクトリを作らない
       --protocol-directories     プロトコル名のディレクトリを作る
  -P,  --directory-prefix=PREFIX  ファイルを PREFIX/ 以下に保存する
       --cut-dirs=NUMBER          リモートディレクトリ名の NUMBER 階層分を無視する

HTTP オプション:
       --http-user=USER        http ユーザ名として USER を使う
       --http-password=PASS    http パスワードとして PASS を使う
       --no-cache              サーバがキャッシュしたデータを許可しない
       --default-page=NAME     デフォルトのページ名を NAME に変更します
                               通常は `index.html' です
  -E,  --adjust-extension      HTML/CSS 文書は適切な拡張子で保存する
       --ignore-length         `Content-Length' ヘッダを無視する
       --header=STRING         送信するヘッダに STRING を追加する
       --max-redirect          ページで許可する最大転送回数
       --proxy-user=USER       プロクシユーザ名として USER を使う
       --proxy-password=PASS   プロクシパスワードとして PASS を使う
       --referer=URL           Referer を URL に設定する
       --save-headers          HTTP のヘッダをファイルに保存する
  -U,  --user-agent=AGENT      User-Agent として Wget/VERSION ではなく AGENT を使う
       --no-http-keep-alive    HTTP の keep-alive (持続的接続) 機能を使わない
       --no-cookies            クッキーを使わない
       --load-cookies=FILE     クッキーを FILE から読みこむ
       --save-cookies=FILE     クッキーを FILE に保存する
       --keep-session-cookies  セッションだけで用いるクッキーを保持する
       --post-data=STRING      POST メソッドを用いて STRING を送信する
       --post-file=FILE        POST メソッドを用いて FILE の中味を送信する
       --content-disposition   Content-Disposition ヘッダがあれば
                               ローカルのファイル名として用いる (実験的)
       --content-on-error      サーバエラー時に受信した内容を出力する
       --auth-no-challenge     サーバからのチャレンジを待たずに、
                               Basic認証の情報を送信します。

HTTPS (SSL/TLS) オプション:
       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,
                                SSLv3, TLSv1, TLSv1_1 and TLSv1_2.
       --no-check-certificate   サーバ証明書を検証しない
       --certificate=FILE       クライアント証明書として FILE を使う
       --certificate-type=TYPE  クライアント証明書の種類を TYPE (PEM, DER) に設定する
       --private-key=FILE       秘密鍵として FILE を使う
       --private-key-type=TYPE  秘密鍵の種類を TYPE (PEM, DER) に設定する
       --ca-certificate=FILE    CA 証明書として FILE を使う
       --ca-directory=DIR       CA のハッシュリストが保持されているディレクトリを指定する
       --random-file=FILE       SSL PRNG の初期化データに使うファイルを指定する
       --egd-file=FILE          EGD ソケットとして FILE を使う

FTP オプション:
       --ftp-user=USER         ftp ユーザとして USER を使う
       --ftp-password=PASS     ftp パスワードとして PASS を使う
       --no-remove-listing     `.listing' ファイルを削除しない
       --no-glob               FTP ファイル名のグロブを無効にする
       --no-passive-ftp        "passive" 転送モードを使わない
       --preserve-permissions  リモートのファイルパーミッションを保存する
       --retr-symlinks         再帰取得中に、シンボリックリンクでリンクされた先のファイルを取得する

WARC オプション:
       --warc-file=FILENAME      リクエスト/レスポンスデータを .warc.gz ファイルに保存する
       --warc-header=STRING      warcinfo record に STRING を追加する
       --warc-max-size=NUMBER    WARC ファイルのサイズの最大値を NUMBER に設定する
       --warc-cdx                CDX インデックスファイルを書く
       --warc-dedup=FILENAME     指定した CDX ファイルに載っている record は保存しない
       --no-warc-compression     WARC ファイルを GZIP で圧縮しない
       --no-warc-digests         SHA1 ダイジェストを計算しない
       --no-warc-keep-log        WARC record にログファイルを保存しない
       --warc-tempdir=DIRECTORY  WARC 書込時の一時ファイルを置くディレクトリを指定する

再帰ダウンロード:
  -r,  --recursive          再帰ダウンロードを行う
  -l,  --level=NUMBER       再帰時の階層の最大の深さを NUMBER に設定する (0 で無制限)
       --delete-after       ダウンロード終了後、ダウンロードしたファイルを削除する
  -k,  --convert-links      HTML や CSS 中のリンクをローカルを指すように変更する
  --backups=N   before writing file X, rotate up to N backup files.
  -K,  --backup-converted   リンク変換前のファイルを .orig として保存する
  -m,  --mirror             -N -r -l 0 --no-remove-listing の省略形
  -p,  --page-requisites    HTML を表示するのに必要な全ての画像等も取得する
       --strict-comments    HTML 中のコメントの処理を厳密にする

再帰ダウンロード時のフィルタ:
  -A,  --accept=LIST               ダウンロードする拡張子をコンマ区切りで指定する
  -R,  --reject=LIST               ダウンロードしない拡張子をコンマ区切りで指定する
       --accept-regex=REGEX        許容する URL の正規表現を指定する
       --reject-regex=REGEX        拒否する URL の正規表現を指定する
       --regex-type=TYPE           正規表現のタイプ (posix|pcre)
  -D,  --domains=LIST              ダウンロードするドメインをコンマ区切りで指定する
       --exclude-domains=LIST      ダウンロードしないドメインをコンマ区切りで指定する
       --follow-ftp                HTML 文書中の FTP リンクも取得対象にする
       --follow-tags=LIST          取得対象にするタグ名をコンマ区切りで指定する
       --ignore-tags=LIST          取得対象にしないタグ名をコンマ区切りで指定する
  -H,  --span-hosts                再帰中に別のホストもダウンロード対象にする
  -L,  --relative                  相対リンクだけ取得対象にする
  -I,  --include-directories=LIST  取得対象にするディレクトリを指定する
  --trust-server-names  ファイル名としてリダイレクト先のURLの最後の部分を使う
  -X,  --exclude-directories=LIST  取得対象にしないディレクトリを指定する
  -np, --no-parent                 親ディレクトリを取得対象にしない

特定のディレクトリだけFTPでダウンロードしたい場合

以下の形式だと、ftpで接続して表示されるルートが丸ごとダウンロードされる。

wget -mc ftp://user:password@ftp.yyyy.com

ディレクトリを指定してダウンロードする場合は、以下の形式にする

wget -mc ftp://user:password@ftp.yyyy.com/hoge/

特定のファイルを除外してFTPでダウンロードしたい場合

wget -mc -nH --preserve-permissions -R .ftpaccess ftp://user:password@ftp.yyyy.com/hoge/

-nH

ホスト名のディレクトリを作らない

-R

指定のファイルをダウンロードしない

「ポート番号が不正です。」というエラーが出る場合

このエラーは以下の形式でパスワード指定した時に、パスワードに特殊な記号が含まれているのが原因の可能性が高い。

wget -mc ftp://user:password@ftp.yyyy.com

パスワードを対話式で入力する型式で実行すると回避できる。

wget -mc --user=USERNAME --ask-password ftp://user:password@ftp.yyyy.com

まとめ

自分が使える国内サーバーがあって、かつ、SSHが使えるのが前提になりますが、国内サーバーを踏み台にしてwgetでftp接続すれば海外IPを制限しているftpサーバーでも海外から接続できます。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました