web-dev-qa-db-ja.com

システム全体にネットワークプロキシを設定する方法はありますか?

GNOMEアプリケーション(およびFirefoxとChrome)がプロキシ経由でネットワークにアクセスするようにしたい場合は、gnome-network-properties(私が言わなければならない素敵でシンプルなGUI)。他のアプリ(APT、Transmission、XChatなど)の場合は、それらの特定の方法を使用する必要があります。

これを回避する方法はありますか?プロキシが必要なネットワーク(ホスト名:ポート)でオンとオフを切り替えることができるものはありますか?

19
tshepang

ネットワークを使用するほとんどすべてのlinux/unixソフトウェアがhttp_proxyおよびftp_proxy 環境変数。ディストリビューションの設定に応じて、/etc/environmentが存在し、ログインシェルによってデフォルトで読み取られます。

あなたは言う行を追加することができます

http_proxy=123.45.67.89:1011

/etc/environment十分に簡単ですが、そのファイルでの変更は、次にシェルプロセスを開始したときにのみ有効になります-そしてそのシェルプロセスでonlycan現在のシェル以外のシェルでグローバル変数を変更するとは思わない。

11
Shadur

他の回答が指摘しているように、プロキシサーバーを使用する最良の方法は、環境変数http_proxyを使用することに同意します。残念ながら、すべてのアプリケーションがhttp_proxy環境変数を尊重するわけではありません。そのため、一部のプログラムでLD_PRELOADを使用してネットワーク接続にSOCKSプロキシを強制的に通過させる tsocks を引き続き使用しています。

6
jsbillings

私は このツール を使用します。これは基本的に、単一のポイントからさまざまなアプリケーションの設定を構成するためのいくつかのスクリプトです。

PS:私はそのツールを書いて維持しています。

3

tsocks に加えて、これでもAFAICTを使用するには、適切な環境でプログラムを起動する必要があります— tun2socks を確認する必要があります。これを使用して、TUNインターフェース(つまり、VPNが作成するのと同じような新しいネットワークインターフェース)をセットアップし、そこで送信されたすべてのパケットがSOCKS5サーバーにプロキシされます。次に、実際にトラフィックを送信するようにシステムルートを設定します。素敵なアプローチのようです。

(私は redsocks via this post も見つけました。これは、TUNインターフェイスを使用するほどエレガントではありません。たとえば、UDPをまったく処理しません。スターター。)

3
natevw

万能ソリューションはありません。各プログラムは、独自の方法でプロキシサーバーに接続します。

私のオフィスでも同様の問題があります。これを行うための最良の方法は、VPN接続を使用することです。接続すると、システム全体のネットワークトラフィックがVPNを通過します。 VPNサーバーにアクセスできない場合は、新しいVPNサーバーを手動で実行して、取得したプロキシサーバーに接続できます。

プロキシをサポートしないアプリケーションがある場合は、socksifyのようなものを使用して、ネットワーク接続をラップできます。

2
Aidin

これは私のために働いた
vi /etc/environment

http_proxy="http://username:password@proxysrv:8080/"
https_proxy="https://username:password@proxysrv:8080/"
ftp_proxy="ftp://username:password@proxysrv:8080/"
no_proxy=".mylan.local,.domain1.com,Host1,Host2"

また
vi /etc/yum.conf

proxy=http://proxysrv:8080
0
Shawn Jones

私にも同様の問題がありますが、システム全体のプロキシを実現するには、Linuxのカーネルiptablesに対処する必要があります。 iptables(特定のアドレス、ポート、プロトコル)での転送ルールの追加と削除、ネットワークレイヤーでの動作は、システム固有のプロキシを保証する唯一の方法であり、アプリ固有の設定で上書きできません。アプリケーション層で。

0
Nihad Nagi