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 웹 브라우저가 있는 경우에이전트 자동 구성 파일, 파일에 이름을 지정 proxy.pac하고 로컬 HTTP 서버가 해당 파일에 대한 MIME 유형을 제공하도록 합니다 application/x-ns-proxy-autoconfig.

그런 다음 데스크톱 환경이나 웹 브라우저의 프록시 설정에서 프록시 자동 구성 URL(가능하면)을 지정하여 http://localhost/some/where/proxy.pac해당 자동 구성 파일을 사용하도록 데스크톱 환경 및/또는 웹 브라우저를 구성합니다 .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";
    }
}

관련 정보