Linuxで作業していて、トラフィックをプロキシ経由でルーティングする必要がある場合(パーシング、マーケットプレイスの価格監視、または複数アカウントでの作業のため)— インターネットの標準的な指示はしばしば機能しません。あるものはブラウザのみを説明し、他のものはターミナルのみを説明し、完全な全体像はどこにもありません。このガイドでは、ターミナルの1つのコマンドから、UbuntuとDebianのすべてのトラフィックをカバーするシステム設定まで、すべての方法を説明します。
Linux用のプロキシの種類を選ぶには
設定に進む前に理解しておくべき重要なことがあります: すべてのプロキシが異なるタスクに同じように適しているわけではありません。Linuxマシンは自動化されたタスク(パーシング、監視、大量リクエスト)に頻繁に使用され、ここでのプロキシの種類の選択は重要です。
| プロキシの種類 | プロトコル | 適している用途 | ブロックのリスク |
|---|---|---|---|
| データセンタープロキシ | HTTP, HTTPS, SOCKS5 | パーシング、curl、スクリプト | 中程度 |
| レジデンシャルプロキシ | HTTP, HTTPS, SOCKS5 | マーケットプレイス、ソーシャルメディア、アカウント | 低い |
| モバイルプロキシ | HTTP, SOCKS5 | Facebook, Instagram, TikTok | 最小限 |
LinuxでのほとんどのタスクにはHTTP/HTTPSまたはSOCKS5プロキシが適しています。SOCKS5が好ましいです — TCPレベルで動作し、curl、wget、proxychainsを含むほとんどのツールによってサポートされています。以下のすべての例では、両方のオプションを使用します。
プロキシのデータ形式
以下のすべての設定には、次の形式のデータが必要です:
host:port または host:port:login:password
これらのデータは、プロキシプロバイダーからアカウントで取得します。
ターミナルでの環境変数を介した設定
Linuxでトラフィックをプロキシ経由でルーティングする最も迅速な方法は、環境変数を設定することです。ほとんどのコンソールユーティリティ(curl、wget、pip、aptなど)は、これらの変数を自動的に読み取り、追加の設定なしで指定されたプロキシを使用します。
一時的な設定(現在のセッションのみ)
ターミナルを開き、次のコマンドを実行します。値をプロキシのデータに置き換えてください:
# 認証なしのHTTPプロキシ export http_proxy="http://192.168.1.1:3128" export https_proxy="http://192.168.1.1:3128" # ログインとパスワードを持つHTTPプロキシ export http_proxy="http://login:[email protected]:3128" export https_proxy="http://login:[email protected]:3128" # SOCKS5プロキシ export http_proxy="socks5://login:[email protected]:1080" export https_proxy="socks5://login:[email protected]:1080" # プロキシなしのアドレス(localhostとローカルネットワーク)の例外 export no_proxy="localhost,127.0.0.1,::1,192.168.0.0/16"
これらのコマンドの後、現在のターミナル内のすべてのユーティリティがプロキシを使用します。重要な点: 一部のプログラムは変数を大文字でのみ読み取ります。念のため、大文字のコマンドを重複させてください:
export HTTP_PROXY="http://login:[email protected]:3128" export HTTPS_PROXY="http://login:[email protected]:3128" export NO_PROXY="localhost,127.0.0.1"
ユーザーのための永続的な設定
ターミナルに入るたびに自動的にプロキシが適用されるように、変数を~/.bashrc(bash用)または~/.zshrc(zsh用)ファイルに追加します:
# nanoエディタでファイルを開く nano ~/.bashrc # ファイルの最後に次の行を追加します: export http_proxy="http://login:password@host:port" export https_proxy="http://login:password@host:port" export HTTP_PROXY="http://login:password@host:port" export HTTPS_PROXY="http://login:password@host:port" export no_proxy="localhost,127.0.0.1" # 保存: Ctrl+O, Enter, Ctrl+X # ターミナルを再起動せずに変更を適用する: source ~/.bashrc
すべてのユーザーのためのシステム設定
Linuxがサーバーとして使用されている場合や、システムのすべてのユーザーにプロキシを適用したい場合は、変数を/etc/environmentファイルに追加します:
sudo nano /etc/environment # 行を追加します(exportコマンドなしで!): http_proxy="http://login:password@host:port" https_proxy="http://login:password@host:port" HTTP_PROXY="http://login:password@host:port" HTTPS_PROXY="http://login:password@host:port" no_proxy="localhost,127.0.0.1,::1"
ファイルを保存した後、次回のシステムログイン時に変更が有効になります。再起動なしで適用するには、source /etc/environmentを実行します。
グラフィカルインターフェイス(GNOME)を介したシステムプロキシ設定
GNOMEデスクトップを持つUbuntuを使用している場合(標準のUbuntuデスクトップインストール)、コマンドなしでグラフィカルインターフェイスを介してプロキシを設定できます。これは、Linuxの作業を始めたばかりの人に便利です。
Ubuntu GNOMEのステップバイステップガイド
- 画面の右上隅にあるアイコンをクリック → 「設定」を選択
- 左側のメニューを下にスクロールし、「ネットワーク」を選択
- 「ネットワークプロキシ」セクションで、矢印ボタン(設定アイコン)をクリック
- プロキシモードを選択:
- 無効 — プロキシは使用されません
- 手動 — プロキシのデータを自分で入力します(推奨)
- 自動 — プロバイダーからのPACファイルが使用されます
- 「手動」を選択し、次のフィールドを入力します:
- HTTPプロキシ: ホストのアドレスとポートを入力
- HTTPSプロキシ: 同じデータ
- SOCKSホスト: アドレスとポート(SOCKS5を使用する場合)
- 無視するホスト:
localhost, 127.0.0.0/8
- ウィンドウを閉じる — 設定は自動的に適用されます
⚠️ 知っておくべきこと
GNOMEを介したプロキシ設定は、システム設定を読み取るアプリケーションにのみ適用されます: GNOME Webブラウザ、いくつかのGNOMEアプリケーション。ターミナルユーティリティ(curl、wget、apt)はこれらの設定を使用しません — それらには前のセクションの環境変数が必要です。FirefoxとChromiumには独自のプロキシ設定があります。
gsettingsを介した設定(ターミナル + GUI)
ターミナルを介してGNOMEのシステムプロキシ設定を管理したい場合(たとえば、自動化のために)、gsettingsコマンドを使用します:
# 手動プロキシモードを有効にする gsettings set org.gnome.system.proxy mode 'manual' # HTTPプロキシを設定する gsettings set org.gnome.system.proxy.http host 'host' gsettings set org.gnome.system.proxy.http port 3128 # HTTPSプロキシを設定する gsettings set org.gnome.system.proxy.https host 'host' gsettings set org.gnome.system.proxy.https port 3128 # SOCKS5プロキシを設定する gsettings set org.gnome.system.proxy.socks host 'host' gsettings set org.gnome.system.proxy.socks port 1080 # プロキシを無効にする gsettings set org.gnome.system.proxy mode 'none'
APT用のプロキシ — プロキシ経由でのパッケージインストール
APTパッケージマネージャー(UbuntuとDebianで使用)は、環境変数に依存しない独自のプロキシ設定システムを持っています。これは、インターネットへの直接アクセスがないサーバーや企業ネットワークに特に関連しています。
方法 1: 1つのコマンドのための一時的なプロキシ
# 1つのaptコマンドのためにプロキシを使用する sudo apt-get -o Acquire::http::Proxy="http://login:password@host:port" update # または環境変数を介して sudo http_proxy="http://login:password@host:port" apt-get update
方法 2: APT用の永続的なプロキシ
APTのための設定ファイルを作成します。この方法は、プロキシが常に必要なサーバーに推奨されます:
# 設定ファイルを作成する sudo nano /etc/apt/apt.conf.d/95proxies # 内容を追加します: Acquire::http::Proxy "http://login:password@host:port"; Acquire::https::Proxy "http://login:password@host:port"; Acquire::ftp::Proxy "ftp://login:password@host:port"; # 保存して確認します: sudo apt-get update
認証なしのプロキシの場合、行はよりシンプルになります: Acquire::http::Proxy "http://host:port";。APT用のプロキシを無効にするには、作成したファイルをsudo rm /etc/apt/apt.conf.d/95proxiesコマンドで削除します。
curlとwget用のプロキシ
Curlとwgetは、LinuxでのHTTPリクエストを扱うための主要なツールです。これらは、パーシング、APIのテスト、ファイルのダウンロードに使用されます。両方のツールは、コマンドラインパラメータを介して直接プロキシをサポートしています。
プロキシを使用したCurl
# HTTPプロキシ curl -x http://login:password@host:port https://example.com # SOCKS5プロキシ curl --socks5 host:port --proxy-user login:password https://example.com # プロキシを介して自分のIPを確認する curl -x http://login:password@host:port https://api.ipify.org # SSLエラーを無視する(必要な場合) curl -x http://login:password@host:port -k https://example.com
プロキシを毎回指定しないように、設定を~/.curlrcファイルに追加します:
nano ~/.curlrc # 行を追加します: proxy = "http://login:password@host:port" # これでcurlは常にこのプロキシを使用します: curl https://api.ipify.org
プロキシを使用したWget
# コマンドラインパラメータを介して wget -e "http_proxy=http://login:password@host:port" https://example.com # ~/.wgetrcでの永続的な設定 nano ~/.wgetrc # 行を追加します: http_proxy = http://login:password@host:port https_proxy = http://login:password@host:port use_proxy = on
Linux上のFirefoxとChromium用のプロキシ
Linuxのブラウザには、システムとは独立して動作する独自のプロキシ設定があります。これは、他のトラフィックに影響を与えずにブラウザでのみプロキシを使用したい場合に便利です。
Firefox: 手動設定
- Firefoxを開く → 右上隅の3本の線をクリック → 「設定」
- 「プロキシサーバー」セクションまで下にスクロール → 「設定」をクリック
- 「プロキシの手動設定」を選択
- フィールドを入力します:
- HTTPプロキシ: ホストのアドレス、ポート
- 「すべてのプロトコルにこのプロキシサーバーを使用する」にチェックを入れる
- または、SOCKSを個別に指定: アドレス、ポート、SOCKS v5を選択
- OKをクリック
プロキシが認証を必要とする場合、Firefoxは最初のアクセス時にログインとパスワードを要求し、それを記憶します。複数のプロキシ間で迅速に切り替えるために、FoxyProxy拡張機能をインストールすると便利です — プロファイルを作成し、ワンクリックで切り替えることができます。
Chromium / Google Chrome: プロキシを使用して起動
LinuxのChromiumには、インターフェイスにプロキシの組み込み設定がありません — システム設定を使用します。しかし、コマンドラインパラメータを介して特定のプロキシでブラウザを起動することができます:
# HTTPプロキシでChromiumを起動 chromium-browser --proxy-server="http://host:port" # SOCKS5プロキシで起動 chromium-browser --proxy-server="socks5://host:port" # プロキシとlocalhostを無視して起動 chromium-browser --proxy-server="http://host:port" \ --proxy-bypass-list="localhost;127.0.0.1" # Google Chromeの場合は、chromium-browserをgoogle-chromeに置き換えます google-chrome --proxy-server="socks5://host:port"
💡 マルチアカウントのためのヒント
Linux上のブラウザを介して複数のアカウントを管理する場合、通常のブラウザでプロキシを使用するだけでは不十分です — サイトはブラウザのフィンガープリンティング、クッキー、その他のパラメータを追跡します。完全なマルチアカウントのためには、アンチデテクトブラウザを使用してください: Dolphin Anty、AdsPower、または GoLogin — それぞれのアカウント用に個別のプロキシを持つ隔離されたプロファイルを作成します。
Proxychains — サポートのない任意のアプリケーション用のプロキシ
一部のアプリケーションは、環境変数や独自のパラメータを介してプロキシ設定をサポートしていません。この場合、proxychainsが役立ちます — 任意のプログラムのネットワーク呼び出しをキャッチし、プロキシを介してそれらをルーティングします。これは、Pythonで書かれたパーサーや特化したユーティリティに特に便利です。
proxychainsのインストール
# Ubuntu / Debian sudo apt-get update sudo apt-get install proxychains4 # インストールを確認 proxychains4 --version
設定ファイルの設定
# 設定を開く sudo nano /etc/proxychains4.conf # "dynamic_chain"という行を見つけて、コメントを外します(#を削除): dynamic_chain # "strict_chain"をコメントアウトします(行の先頭に#を追加): # strict_chain # ファイルの最後に[ProxyList]セクションでプロキシを追加します: # フォーマット: タイプ ホスト ポート [ログイン] [パスワード] # 認証なしのHTTPプロキシ: http 192.168.1.1 3128 # 認証付きのSOCKS5: socks5 host 1080 login password
proxychainsの使用
設定後は、任意のコマンドの前にproxychains4を追加するだけです:
# プロキシを介してcurlを起動 proxychains4 curl https://api.ipify.org # プロキシを介してPythonスクリプトを起動 proxychains4 python3 parser.py # プロキシを介してnmapを起動 proxychains4 nmap -sT target.com # プロキシを介してFirefoxを起動 proxychains4 firefox
dynamic_chainモードは、1つのプロキシが利用できない場合、proxychainsがリストの次のプロキシを試みることを意味します。複数のプロキシがある場合は便利です — すべてを[ProxyList]に追加し、自動的なローテーションを得ることができます。
プロキシが機能しているか確認する方法
設定後、トラフィックが実際にプロキシを介して流れていることを確認することが重要です。以下は、いくつかの迅速な方法です:
curlを介して確認
# プロキシなしで現在のIPを確認 curl https://api.ipify.org # 結果: あなたの実際のIP、例えば85.12.34.56 # プロキシを介してIPを確認 curl -x http://login:password@host:port https://api.ipify.org # 結果は異なるべきです — これはプロキシサーバーのIPです # IPに関する詳細情報 curl -x http://login:password@host:port https://ipinfo.io/json
環境変数の確認
# 設定されたプロキシ変数を表示 env | grep -i proxy # 期待される結果: # http_proxy=http://login:password@host:port # https_proxy=http://login:password@host:port
プロキシサーバーの可用性を確認
# プロキシのポートが開いて応答しているか確認 nc -zv host port # 例えば: nc -zv 192.168.1.1 3128 # ncがインストールされていない場合: telnet host port
✅ プロキシチェックリスト
- curlの応答におけるIPがあなたの実際のIPと異なる
- ipinfo.ioの国と都市が選択したプロキシに一致する
Connection refusedや407 Proxy Authentication Requiredのエラーがない- 接続速度が許容範囲内である(
-w "%{time_total}"フラグを使用してcurlで確認)
実践的なシナリオ: パーシング、監視、マルチアカウント
プロキシをLinuxで設定する際にユーザーが最もよく直面する具体的なタスクを考えてみましょう。
シナリオ 1: LinuxサーバーからWildberriesとOzonをパーシング
マーケットプレイスのセラーは、Ubuntuを使用したVPSで価格パーサーを頻繁に起動します。WildberriesとOzonは、サーバーのIPアドレスからのリクエストを積極的にブロックします。この保護を回避するためには、レジデンシャルプロキシが必要です — それらは通常の家庭ユーザーのように見えます。
マーケットプレイスのパーシングに推奨される設定スキーム:
- レジデンシャルプロキシのデータを含む環境変数を
~/.bashrcファイルに設定します - Pythonスクリプトを使用する場合は、
requestsライブラリが環境変数を読み取ることを確認します(デフォルトで読み取ります) - IPのローテーションのために、
dynamic_chainモードでproxychainsに複数のプロキシを設定します - リクエスト間に遅延を追加します(1-3秒) — これによりブロックのリスクが減ります
- リクエストごとにIPを確認します(50-100リクエストごと)
curl https://api.ipify.orgを介して
シナリオ 2: Avitoでの競合の価格監視
Avitoは、リクエストの頻度、User-Agentのタイプ、IPアドレスなど、いくつかの基準に基づいてリクエストをブロックします。Linuxサーバーから広告を監視するためには、次のアプローチを使用してください:
# 正しいヘッダーを持つプロキシを介したAvitoへのリクエストの例 curl -x http://login:password@host:port \ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \ -H "Accept-Language: ru-RU,ru;q=0.9" \ -H "Accept: text/html,application/xhtml+xml" \ "https://www.avito.ru/moskva/nedvizhimost"
Avitoでは、ロシアのIPアドレスを持つプロキシを使用することが特に重要です。必要な都市にジオロケーションを持つレジデンシャルプロキシを使用すると、特定の地域に関連付けられた広告を見ることができます。
シナリオ 3: Linuxを介したFacebook AdsとInstagramの操作
Linuxで作業するアービトラージャーは(しばしばVPSを介して)、広告アカウントを管理するためにアンチデテクトブラウザを使用します。作業のスキーム:
- Dolphin AntyまたはAdsPowerをLinuxにインストールします(両方ともLinuxバージョンがあります)
- Facebook Adsの各アカウント用にブラウザの個別プロファイルを作成します
- 各プロファイルの設定で、個別のプロキシを指定します
- FacebookとInstagramにはモバイルプロキシが推奨されます — それらはモバイルオペレーターの実際のIPを持ち、ブロックのリスクが最小限です
- この場合、Linuxのシステムプロキシは必要ありません — アンチデテクトブラウザが各プロファイルのレベルでプロキシを管理します
Linuxでのプロキシ設定方法の比較
| 方法 | カバー範囲 | 難易度 | 最適な用途 |
|---|---|---|---|
| 環境変数 | ほとんどのCLIユーティリティ | 低い | スクリプト、curl、pip |
| GNOME GUI | GNOMEアプリケーション | 低い | ターミナルなしのデスクトップ |
| APT設定 | APTのみ | 低い | NATの背後にあるサーバー |
| Proxychains | 任意のアプリケーション | 中程度 | パーサー、サードパーティユーティリティ |
| ブラウザ設定 | ブラウザのみ | 低い | ブラウザ内での手動作業 |
Linuxでのプロキシ設定時の一般的なエラー
- 小文字の変数のみ — 一部のプログラムは
HTTP_PROXY(大文字)のみを読み取り、他のプログラムはhttp_proxyのみを読み取ります。両方のバリエーションを設定してください。 - sourceを忘れた —
.bashrcを変更した後は、source ~/.bashrcを実行する必要があります。そうしないと変更が適用されません。 - sudoでプロキシが機能しない — sudoを使用する場合、ユーザーの環境変数は渡されません。変数を渡すには
sudo -Eを使用してください。 - localhostがプロキシを介している — 常に
no_proxyにlocalhost,127.0.0.1の値を追加してください。 - URLの形式が不正 — HTTPプロキシの場合、スキームを必ず指定してください:
http://またはsocks5://。
結論
Linux UbuntuとDebianでのプロキシ設定は、目的に応じていくつかの方法で解決できます。ほとんどのタスクには環境変数が十分です: それらはcurl、wget、pip、ほとんどのスクリプトをカバーします。任意のアプリケーションのトラフィックを完全にカバーするにはproxychainsを使用してください。ブラウザには組み込みの設定または--proxy-serverパラメータを使用して起動します。APTには別の設定ファイルがあります。
主な原則: 特定のタスクに応じて方法を選択してください。1つのスクリプトのためにシステムプロキシを設定する必要はありません。逆に、サーバーのすべてのトラフィックがプロキシを介して流れる必要がある場合は、/etc/environmentに一度設定して忘れてしまってください。
マーケットプレイスのパーシング、価格監視、または自動化されたリクエストのためにLinuxを使用している場合は、レジデンシャルプロキシに注目してください — それらは家庭ユーザーの実際のIPを持ち、Wildberries、Ozon、Avitoでのブロックの影響をほとんど受けません。Facebook AdsおよびInstagramの広告アカウントをアンチデテクトブラウザを介してLinuxで操作するためには、モバイルプロキシが適しています — ブロックのリスクが最小限で、プラットフォームからの信頼が最大限です。