GNOMEアプリケーション(およびFirefoxとChrome)がプロキシ経由でネットワークにアクセスするようにしたい場合は、gnome-network-properties
(私が言わなければならない素敵でシンプルなGUI)。他のアプリ(APT、Transmission、XChatなど)の場合は、それらの特定の方法を使用する必要があります。
これを回避する方法はありますか?プロキシが必要なネットワーク(ホスト名:ポート)でオンとオフを切り替えることができるものはありますか?
ネットワークを使用するほとんどすべてのlinux/unixソフトウェアがhttp_proxy
およびftp_proxy
環境変数。ディストリビューションの設定に応じて、/etc/environment
が存在し、ログインシェルによってデフォルトで読み取られます。
あなたは言う行を追加することができます
http_proxy=123.45.67.89:1011
/etc/environment
十分に簡単ですが、そのファイルでの変更は、次にシェルプロセスを開始したときにのみ有効になります-そしてそのシェルプロセスでonly。 can現在のシェル以外のシェルでグローバル変数を変更するとは思わない。
他の回答が指摘しているように、プロキシサーバーを使用する最良の方法は、環境変数http_proxy
を使用することに同意します。残念ながら、すべてのアプリケーションがhttp_proxy環境変数を尊重するわけではありません。そのため、一部のプログラムでLD_PRELOADを使用してネットワーク接続にSOCKSプロキシを強制的に通過させる tsocks を引き続き使用しています。
私は このツール を使用します。これは基本的に、単一のポイントからさまざまなアプリケーションの設定を構成するためのいくつかのスクリプトです。
PS:私はそのツールを書いて維持しています。
tsocks に加えて、これでもAFAICTを使用するには、適切な環境でプログラムを起動する必要があります— tun2socks を確認する必要があります。これを使用して、TUNインターフェース(つまり、VPNが作成するのと同じような新しいネットワークインターフェース)をセットアップし、そこで送信されたすべてのパケットがSOCKS5サーバーにプロキシされます。次に、実際にトラフィックを送信するようにシステムルートを設定します。素敵なアプローチのようです。
(私は redsocks via this post も見つけました。これは、TUNインターフェイスを使用するほどエレガントではありません。たとえば、UDPをまったく処理しません。スターター。)
万能ソリューションはありません。各プログラムは、独自の方法でプロキシサーバーに接続します。
私のオフィスでも同様の問題があります。これを行うための最良の方法は、VPN接続を使用することです。接続すると、システム全体のネットワークトラフィックがVPNを通過します。 VPNサーバーにアクセスできない場合は、新しいVPNサーバーを手動で実行して、取得したプロキシサーバーに接続できます。
プロキシをサポートしないアプリケーションがある場合は、socksifyのようなものを使用して、ネットワーク接続をラップできます。
これは私のために働いた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
私にも同様の問題がありますが、システム全体のプロキシを実現するには、Linuxのカーネルiptables
に対処する必要があります。 iptables
(特定のアドレス、ポート、プロトコル)での転送ルールの追加と削除、ネットワークレイヤーでの動作は、システム固有のプロキシを保証する唯一の方法であり、アプリ固有の設定で上書きできません。アプリケーション層で。