답변:
왜 시스템 환경 설정-> 네트워크-> (창 왼쪽에서 네트워크를 선택하고 오른쪽 하단에서 고급을 선택하십시오)-> 프록시 (위쪽 탭)가 작동하지 않습니까?
SSH 서버를 스스로 설정할 수 있다면, 무료 셔틀 은 연결을 통해 모든 TCP 트래픽을 터널링하여 모든 방화벽이 작동하도록 할 수 있습니다.
모든 TCP 트래픽 및 DNS 요청을 원격 SSH 서버로 전달하려면 명령이 충분히 간단합니다.
sshuttle --dns -vr ssh_server 0/0
TCP와 DNS 외에 sshuttle은 UDP, ICMP, ping 등과 같은 다른 요청을 전달하지 않습니다.
자세한 정보와 예제 는 일상 업무에서 Sshuttle 사용 기사 를 참조하십시오 .
시스템 전체 프록시 설정을 설정하는 것이 좋은 시작이지만 iptables를 사용하여 모든 트래픽이 프록시를 통과하는지 확인할 수도 있습니다. 일부 응용 프로그램은 시스템 전체 구성 설정 (Firefox)을 사용하지 않으므로 직접 연결을 허용하지 않고 프록시를 통해 트래픽을 라우팅하도록 규칙을 조정해야합니다.
편집 : 개인적으로 iptables
VPN에서 잠재적 인 "누설"을 관리하기 위해 규칙을 사용하지만 실제로 iptables가 양말 프록시와 직접 작동 할 수 있다고 생각하는 것으로 잘못 생각했습니다. 가상 터널 인터페이스 (예 : VPN 사용)를 만들려면 tun2socks 와 같은 것이 필요합니다 .
그런 다음 다음과 유사한 iptables 스크립트를 설정할 수 있습니다.
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
# name of primary network interface (before tunnel)
PRIMARY=eth0
# gateway ip address (before tunnel - adsl router ip address)
# automatically determine the ip from the default route
GATEWAY=`route -n | grep $PRIMARY | egrep "^0\.0\.0\.0" | tr -s " " | cut -d" " -f2`
# provided by tun2socks: interface name
TUNNEL=tun0
# If you'd like, putting the tun2socks command here is a good idea. It may or may not be necessary to do so, but either way is more convenient than running the two commands separately.
# iptables rules - important!
LOCAL_NET=192.168.0.0/16
#LOCAL_NET=$GATEWAY
# Flush all previous filter rules, you might not want to include this line if you already have other rules setup
iptables -t filter --flush
iptables -t filter -X MYVPN
iptables -t filter -N MYVPN
# Add local routes to routing table
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -host 23.21.163.237 dev eth0 gw 192.168.1.1
# Add ssh routes to routing table
ip route add table 128 to 192.168.1.0/24 dev eth0
ip route add table 128 default via 192.168.1.1
# Exceptions for local traffic & vpn server
iptables -t filter -A MYVPN -o lo -j RETURN
iptables -t filter -A MYVPN -o ${TUNNEL} -j RETURN
iptables -t filter -A MYVPN --dst 127.0.0.1 -j RETURN
iptables -t filter -A MYVPN --dst $LOCAL_NET -j RETURN
iptables -t filter -A MYVPN --dst ${SERVER} -j RETURN
iptables -t filter -A MYVPN --dst ${VPN_SERVER} -j RETURN
# Add extra local nets here as necessary
iptables -t filter -A MYVPN -j DROP
# MYVPN traffic leaving this host:
iptables -t filter -A OUTPUT -p tcp --syn -j MYVPN
iptables -t filter -A OUTPUT -p icmp -j MYVPN
iptables -t filter -A OUTPUT -p udp -j MYVPN
당연히이 스크립트가 특정 네트워크를 반영하도록하고 싶을 것입니다 (즉, 192.168.0.0/24 서브넷과 같은 것을 사용하는 경우 적절하게 조정하십시오). 또한 VPN과 함께 사용하는 스크립트를 기반으로하기 때문에 MYVPN 또는 VPN에 대한 모든 언급이 있습니다 .VPN을 사용하지 않는 동안 tun2socks
효과적으로 마치 마치 작동하므로 모든 것이 동일하게 작동합니다.
Unix.SE 에서이 답변 에 대한 올바른 감사의 마음을 전합니다.
다시 편집하십시오 : OS X가 실제로 ipfw
iptables 가 아닌 이 작업을 수행하는 것처럼 보입니다 (죄송합니다. 나는 대부분 Linux 사용자이며 OS X에 iptables가 있다고 생각했습니다). 스크립트를 조정할 수있는 등가가 있으며 일부는 여기에서 지적합니다 . man ipfw
구문을 바로 설정해야합니다. 원본 iptables
스크립트를 템플릿으로 남겨두고 개념적으로 진행중인 작업을 확인할 수 있습니다. WaterRoofipfw
는 좀 더 사용자 친화적으로 사용 하는 데 도움이 될 것 같습니다 . 다른 프런트 엔드도 사용할 수 있습니다.
tun2socks
SSH와 서버가 필요하지 않습니다. 사이트의 예는 SSH를 사용하여 SOCKS 프록시를 처음 작성하는 것입니다. 이미 SOCKS 프록시가 있으면 완전히 불필요합니다. 그리고 네, iptables
내 잘못 이었어요. OS X이 BSD를 기반으로하고, 사용 ipfw
하기보다는 iptables
리눅스 커널이다. 복잡하기 때문에 사용하기 쉬운 방식으로 프론트 엔드를 찾을 수는 있지만이 문제에 대한 경험은 없습니다. 어쨌든 낮은 수준에서 복잡 해지는 것은 그것이 왜 그 일을 할 수 있는지와 관련이 있습니다.
ipfw
쉽게 탐색하는 데 도움이 될 경우 답변에 사용할 프런트 엔드를 추가했습니다 .
사용 가능한 여러 가지 솔루션이 있습니다. 그중 일부는 설정을 변경하는 것만 큼 간단하지 않습니다. 이는 프록시 를 떠나는 동안 특정 응용 프로그램을 다른 경로 (스텔스, 보안, 신원 보호 등)를 통해 라우팅하는 프록시의 전체 목표를 무효화 하기 때문입니다. 로컬 경로에 액세스 할 수 있습니다.
일부는 요구 사항으로 인해 폐기되지만 VPN, SSH 터널, pfctl (패킷 필터 및 NAT 제어 인터페이스)의 사용을 위해 완전성을 위해 언급하겠습니다. 또한, 토르는 확실히 당신이 생각하고있는 사용을 위해 설계되지 불구하고, 경로를 통해 모든 트래픽을 수행 할 수 있습니다 자신의 프록시를.
이러한 모든 응용 프로그램은 무료이며 응용 프로그램을 사용하려면 독창성이 필요합니다. 반면에, 대부분의 작업이 다른 사람에 의해 이루어졌지만 가격이 책정 된 유료 애플리케이션이 있습니다.
프록시 서버를 통해 컴퓨터의 네트워크 연결을 리디렉션 할 수 있습니다. 프록시를 통해 어떤 환경에서 어떤 응용 프로그램이 인터넷에 연결되는지 ProxyCap에 알릴 수 있습니다. 이는 인터넷 클라이언트를 재구성 할 필요없이 사용자 친화적 인 인터페이스를 통해 수행됩니다.
또는 Mac 용 Proxifier가 있습니다 (주의 : 10.8까지만 지원). 어느
프록시 서버를 통한 작업을 지원하지 않는 네트워크 응용 프로그램은 SOCKS 또는 HTTPS 프록시 및 체인을 통해 작동 할 수 있습니다.