127.0.0.1の要求がhttp_proxyに転送されないようにする

127.0.0.1の要求がhttp_proxyに転送されないようにする

マイコンピュータには次のものがあります。

$ cat /etc/profile.d/proxy.sh 
export http_proxy=http://192.168.1.30:3128
export https_proxy=https://192.168.1.30:3128

これは、localhostのアプリケーションでHTTPインタフェースを使用する必要があるまでうまく機能しました。

$ wget localhost
--2023-03-02 06:54:52--  http://localhost/
Connecting to 192.168.1.30:3128... connected.
Proxy request sent, awaiting response... 503 Service Unavailable
2023-03-02 06:54:52 ERROR 503: Service Unavailable.

$ wget 127.0.0.1
--2023-03-02 06:55:20--  http://127.0.0.1/
Connecting to 192.168.1.30:3128... connected.
Proxy request sent, awaiting response... 403 Forbidden
2023-03-02 06:55:20 ERROR 403: Forbidden.

localhostリクエストが127.0.0.1プロキシに転送されるのを防ぐ方法はありますか?


詳細:

この端末はインターネットに直接接続されていません。ゲートウェイまたはデフォルトパスはありません。ただし、プロキシサーバー(ポート3128)がインストールされており、インターネットに接続されているプロキシシステム(192.168.1.30)があるLANにあります。

$ ip addr
1: lo: ...
    inet 127.0.0.1/8 scope host lo
2: eno1: ...
    altname enp24s0f0
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eno1

$ ip route
192.168.1.0/24 dev eno1 proto kernel scope link src 192.168.1.100

$ cat /etc/hosts
127.0.0.1   localhost

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eno1
iface eno1 inet static
    address 192.168.1.100
    netmask 255.255.255.0

答え1

wgetマニュアルページから:

環境

WgetはHTTPおよびFTP検索プロキシをサポートしています。 Wgetが認識するプロキシの場所を指定する標準的な方法は、次の環境変数を使用することです。

http_proxyそしてhttps_proxy

設定されている場合、http_proxy変数とhttps_proxy変数には、それぞれHTTPおよびHTTPS接続のプロキシURLを含める必要があります。

ftp_proxy

この変数にはFTP接続プロキシのURLを含める必要があります。 http_proxyとftp_proxyが同じURLに設定されるのが一般的です。

プロキシなし

この変数には、コンマで区切られたドメイン拡張プロキシのリストを含める必要があります。いいえたとえば、 no_proxy の値がある場合、.mit.eduプロキシはMITから文書を取得するために使用されません。

したがって、次のよう/etc/profile.d/proxy.shに変更する必要があります。

export http_proxy=http://192.168.1.30:3128
export https_proxy=https://192.168.1.30:3128
export no_proxy="127.0.0.1,localhost"

*_proxy環境変数を使用しないGUI Webブラウザがある場合エージェント自動構成ファイル、ファイルに名前を付けproxy.pac、ローカルのHTTPサーバーがそのファイルのMIMEタイプを提供できるようにしますapplication/x-ns-proxy-autoconfig

次に、デスクトップ環境またはWebブラウザのプロキシ設定でプロキシ自動設定URL(可能であれば)を指定して、その自動設定ファイルを使用するようにデスクトップhttp://localhost/some/where/proxy.pac環境および/またはWebブラウザを設定します。file:///some/location/proxy.pac

あなたの場合、ファイルの内容は次のとおりです。

function FindProxyForURL(url, host)
{
    // If not a http: or https: URL, go direct always.
    if (!shExpMatch(url,"http*") {
        return "DIRECT";
    }

    // If the destination is:
    // - any 127.*.*.* address
    // - or anything like "localhost*"
    // - or the web browser host's own IP address
    // Then go direct to destination.

    else if (shExpMatch(host, "127.*")
        || shExpMatch(host, "localhost*")
        || host == myIpAddress()) {
        return "DIRECT";
    }
    else {
        // Otherwise, use the proxy specified here.
        return "PROXY 192.168.1.30:3128";
    }
}

関連情報