폐쇄망 서버가 외부 저장소에 닿게 하거나, 한 지점에서 나가는 트래픽을 모으려고 프록시 서버를 둔다. 프로토콜에 따라 두 종류로 나뉜다.
| 종류 | 계층 | 대상 | 대표 구현 |
|---|---|---|---|
| HTTP / HTTPS 프록시 | L7 | http_proxy 를 읽는 클라이언트 — dnf, apt, curl, pip, 브라우저 |
Squid |
| SOCKS5 프록시 | L4 (TCP · UDP) | 임의의 TCP 연결. ssh -D, 브라우저, proxychains |
microsocks, dante, 3proxy, shadowsocks |
클라이언트 쪽 설정(환경 변수, dnf.conf, apt.conf)은 Proxy 설정 에 있다.
dante-server 패키지가 있다.PAC 는 브라우저나 운영체제가 요청마다 어떤 프록시를 쓸지 정하는 JavaScript 파일이다. 함수 FindProxyForURL(url, host) 이 "PROXY host:port" · "SOCKS5 host:port" · "DIRECT" 를 돌려준다. 기업망처럼 목적지에 따라 프록시를 나눠 쓸 때 쓴다. 파일은 웹 서버에 application/x-ns-proxy-autoconfig 로 올리고 클라이언트에 URL 을 배포한다.
function FindProxyForURL(url, host) {
if (isPlainHostName(host) || dnsDomainIs(host, ".internal.example")) {
return "DIRECT";
}
return "PROXY proxy.example:3128; DIRECT";
}