연결하는 네트워크에 따라 프록시 설정을 변경하는 방법은 무엇입니까?


20

회사의 회사 네트워크를 사용하려면 네트워크에 액세스하기 위해 네트워크 프록시를 설정해야하지만 다른 곳에 있으면 필요하지 않습니다. 우분투 (시스템-> 환경 설정-> 프록시 서버)의 프록시 설정을 통해 수동으로 선택할 수있는 "위치"를 만들 수있었습니다. 그런 다음 "기본"위치 (프록시 없음)와 "직장"위치 (회사 프록시 포함)가 있습니다.

Ubuntu에서 사용중인 연결을 기반으로 "직장"위치를 자동으로 선택하는 방법이 있습니까? IP 서브넷 (매우 구체적)을 사용하여 현재 위치를 감지 할 수 있다고 생각했지만 설정 방법을 모릅니다.

편집 : 시스템 수준에서 프록시 설정을해야합니다. 모든 네트워크 연결 (IMAP, SMTP, 채팅 등)은 프록시를 거쳐야합니다. 웹 브라우저뿐만 아니라

답변:


7

한 가지 방법을 생각할 수 있지만 설정하는 것은 다소 모호합니다.

기본적으로 PAC 파일을 사용할 수 있습니다

시스템에 웹 서버를 설치하십시오. 작은 웹 서버는 아파치와 같은 거대한 시스템이 필요하지 않습니다.

wpad.dat원본 주소를 기준으로 일치하는 PAC 지시문을 사용 하여 파일 을 만든 다음 올바른 프록시를 사용하도록 시스템을 구성하십시오.

firefox에서 로컬 PAC 파일을 가리 키도록 프록시를 구성하십시오. 아마 같은 것입니다 http://localhost/wpad.dat.

PAC 파일은 다음과 같이 보일 수 있습니다 ( 테스트되지 않은 ). 더 많은 PAC 예제는 여기를 참조하십시오 .

function FindProxyForURL(url, host) {   
  // If on a internal/LAN IP address, send traffic direct.
  if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
  {        
    return "PROXY 1.2.3.4:8080; PROXY 4.5.6.7:8080; DIRECT";
  }
  else
  {
    return "DIRECT";
  }
}

나는 그것을 시도한 적이 없으며 테스트 할 시스템이 아니지만 file://firefox 의 URL을 사용하여 PAC 파일을 지정할 수도 있습니다 . 이는 웹 서버 설정을 건너 뛸 수 있음을 의미합니다.

물론 빠르고 쉬운 솔루션도 있지만 위치를 이동할 때 약간의 노력이 필요합니다. Quick Proxy Firefox 확장을 설치하고 툴바에서 버튼을 클릭하여 프록시를 켜거나 끕니다. Firefox 확장을 사용하여이 문제를 처리하려는 경우 FoxyProxy 도 시도 할 수 있으며 여러 프록시 프로파일 설정을 지원하며 프로파일간에 쉽게 전환 할 수 있습니다.


흥미 롭군요 ... 테스트해야합니다. 어떻게되는지 알려 드리겠습니다. 필자는 Firefox 확장 기능이 작동하지 않을 것이라고 생각합니다. 프록시는 HTTP뿐만 아니라 모든 프로토콜에 사용됩니다. 그런 다음 공감, 진화, 모든 것에 대해서도 필요합니다.
Little Jawa

아, 그리고 다른 것. IT 담당자에게 WPAD를 설정하도록 요청할 수 있습니다. 그런 다음 자동 프록시 옵션을 사용하십시오.
Zoredache

글쎄 ... IT가 무엇이든하도록 만드는 것은 내가 두려워하는 옵션이 아닙니다. 요청을 할 수는 있지만 아무 일도 일어나지 않을 것입니다. 비즈니스 정당성이 없다는 것은 그것을 할 자원이 없다는 것을 의미합니다. 그리고 나는 정당화를 작성하는 것보다 나 자신을 더 빨리 할 것이다 :-)
Little Jawa

승인. 조금 더 읽으면이 솔루션에 만족하지 않습니다. 작동하지만 (구현하지는 않았지만) 시스템 전체에서 사용할 수는 없습니다. ( findproxyforurl.com/index.html 에 따라 ) 시스템은 웹 브라우저에서만 지원되므로 (Javascript에 의존하기 때문에) 웹 브라우저에서만 작동합니다.
리틀 자와

5

우분투 10.10에서는 .pac 스크립트가 잘 작동합니다. Zoredache가 설명했듯이 웹 서버를 설정하고 거기에 pac 파일을 넣고 System-> Preferences-> Network Proxy를 열고 "Autoconfiguration URL"을 pac 파일 위치로 설정하십시오.

자신의 IP 주소를 확인하는 PAC 파일의 예 : /var/www/selectProxy.pac :

function FindProxyForURL(url, host)
 {
 if (myIpAddress() == "192.168.22.63") { 
 return "PROXY 192.168.22.8:8080";
 }
 else {
 return "DIRECT";
 }
 }

네트워크 프록시 환경에서 : URL은 다음과 같습니다.

http://localhost/selectProxy.pac

3

Zoredache의 답변 외에도 /etc/network/if-up.d의 스크립트를 사용하여 프록시 쉘 변수를 포함하는 /etc/profile.d/에 스 니펫을 생성 할 수 있습니다. 이것은 새로운 쉘에서만 작동합니다.

또한이 방법을 사용하여 WPAD 파일을 생성 할 수 있으며이를 지원하는 모든 브라우저를 가리킬 수 있습니다.


2

이것은 꽤 오래된 게시물이지만 이것을 찾았습니다. 보세요 : http://marin.jb.free.fr/proxydriver/

Ubuntu에 제공된 .deb 패키지를 설치할 수 있습니다. 이것은 기본적으로 네트워크가 변경 될 때 환경 변수를 변경하는 쉘 스크립트입니다. 에 생성 된 구성 파일을 자동으로 편집하여 각 네트워크에 대한 설정을 구성 할 수 있습니다/etc/proxydriver.d/


2
이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Eliah Kagan

0

나는 같은 문제를 가지고있다. 내 상황을 포함하도록 답변을 일반화하십시오.

무선으로 집에서 랩톱을 사용합니다 :-항상 eth1 인터페이스 고정 IP 주소 (192.168.1.10)

내가 일하러 갈 때 나는 그것을 연결한다 :-항상 eth0 인터페이스 동적 IP 주소 (10.10.xx.xx), 프록시 : 10.10.123.123 포트 8888

Ubuntu가 사용중인 인터페이스에 따라 IP 주소와 프록시를 자동으로 설정하기를 원합니다.

(/ etc / network / interfaces에서 엉망이되었습니다 [ "man interfaces"및 /etc/resolv.conf 참조).


1
내가 이해하는 경우 : Wi-Fi 카드에 고정 IP가 있습니다-이미 "자동으로"설정되어 있습니다. 그리고 유선 네트워크는 DHCP에 의해 설정되며 자동으로 수행됩니다. 그러면 IP 설정과 관련하여 무엇을 추가 하시겠습니까? 프록시가 필요하지만 IP는 이해하지 못합니다.
리틀 자와

알다시피, 나는 당신이 옳다고 생각합니다. holdiays 후 직장으로 돌아 왔으며 자동으로 작동하는 것 같습니다. 유일한 문제는 프록시라고 생각합니다. 내일 더 조사하겠습니다.

0

PAC 파일 접근 방식을 사용하고 탐색에 대해서는 잘 작동하지만 PAC 파일을 이해하지 못하는 다른 많은 응용 프로그램에는 잘 작동하지 않습니다. 앱이 API를 통해 "프록시 구성"을 요청하면 PAC 파일 URL을 다시 사용하는 경우

프록시 지원이 없거나 PAC 파일 (예 : Empathy)을 이해하지 못하는 사용자 응용 프로그램의 경우 tsock을 사용합니다 (프록시 지원에 SSH 터널을 사용하기 때문).

기본 프록시 구성을 지원하는 모든 응용 프로그램에 JavaScript 엔진 또는 PAC 파서를 연결하는 것은 과도한 것처럼 보입니다. 이것은 실제로 PAC 파일을 해석하고 URL 대신 결과를 반환하는 API 호출로 일부 기본 플랫폼 지원의 이점을 얻을 수있는 것으로 보입니다.


0

이것은이 시점의 오래된 게시물이지만이 작업을 수행하는 방법을 찾고 여기에 다른 대답을 찾았습니다. 내가 작업하고있는 대답은 'whereami'라는 패키지에 있으며, detect.conf 파일에서 작업의 서브넷을 정의한 다음 whereami.conf 파일에서 프록시 서버를 정의해야합니다. 작동하고 문제가 있으면 게시하겠습니다.

행운을 빕니다!


1
Ask Ubuntu에 오신 것을 환영합니다! 그래서 ... 누군가 어떻게 실제로 이것을 할 것입니까? 지침을 제공 할 수 있습니까? 지금 이것은 실제로 질문에 대한 답이 아닙니다 ...
Eliah Kagan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.