브라우저는 Shadowsocks 서버를 통해 직접 인터넷에 액세스할 수 있지만 액세스할 수는 없습니다.

브라우저는 Shadowsocks 서버를 통해 직접 인터넷에 액세스할 수 있지만 액세스할 수는 없습니다.

좋아요, 이것은 간단해 보이지만 많은 검색 후에는 제대로 작동하지 않습니다. 우분투 14.04가 있습니다.

config.json파일에는 Shadowsocks를 실행하는 내 친구 서버의 구성이 포함되어 있습니다.

{
    "server":"ip address",
    "server_port":23,
    "local_port":1234,
    "password":"password",
    "timeout":600,
    "method":"aes-256-cfb"
}

나는 이것을했고 sslocal -c config.json성공적으로 서버에 연결했습니다.

예를 들어, 이제 google-chrome다음을 사용하여 작동하게 만들 수 있습니다.google-chrome --proxy-server="socks5://127.0.0.1:1234" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"

문제는 어떻게 전체 인터넷 연결이 해당 서버를 먼저 통과하게 할 수 있느냐는 것입니다. 이렇게 하면 모든 응용 프로그램이 기본적으로 이를 사용할 수 있습니다. 간단하게 무언가를 활성화하고 비활성화할 수 있습니다.

내가 시도했지만 실패한 것들:

사용- tsocks>https://askubuntu.com/questions/532375/launch-program-through-shadowsocks

-> iptables로 사용sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:1234http://adminsgoodies.com/configuring-ubuntu-for-global-socks5-proxy/

시스템 설정 사용->네트워크->네트워크 프록시 및 dconf-tools호스트 제외->https://askubuntu.com/questions/70245/how-do-i-make-the-system-wide-proxy-settings-bypass-the-proxy-for-local-addresse

답변1

보편적인 터널링 방법은 없습니다모든SOCKS를 통해 프록시되는 인터넷 트래픽. 그러나 특정 방법을 사용하는 프로토콜이 꽤 많이 있지만 전부는 아닙니다. 내가 아는 한 SOCKS5는 TCP 및 UDP 트래픽을 지원하지만 ICMP는 지원하지 않습니다. 따라서 예를 들어 ping이러한 프록시를 통해 기존 서비스를 사용할 수 없습니다 .

다음은 프록시 클라이언트 목록입니다(대부분 SOCKS5 지원).협회

나는 개인적으로 Linux에서 Dante와 프록시체인(-ng 후속 버전이 아닌 원본 버전)의 클라이언트 부분을 사용해 보았고 둘 다 나에게 효과적이었습니다(프록시체인이 좀 더 안정적인 것으로 입증되었습니다). 둘 다 애플리케이션의 소켓 API 요청을 자체 라이브러리로 리디렉션하여 작동합니다(따라서 애플리케이션에 대해 LD_PRELOAD 환경 변수를 설정해야 함). 이로 인해 애플리케이션이 setuid 바이너리를 LD_PRELOAD로 사용하고 setuid 기능이 보안과 호환되지 않는 경우 문제가 발생할 수 있습니다. 또한 모든 네트워크 관련 API 기능이 리디렉션되는 것은 아니므로 일부 이상한 애플리케이션에서 문제가 발생할 수 있습니다(예: 애플리케이션이 네트워크 인터페이스 및 IP 주소 목록을 얻으려는 경우).

이러한 LD_PRELOAD 유형 프록시 클라이언트는 일반적으로 시스템 수준에서 작동하도록 설계되지 않았으므로 애플리케이션을 시작하는 방식을 변경해야 합니다(애플리케이션 앞에 프록시 클라이언트를 추가하여). 이론적으로는 전체 시스템 또는 로그인 세션에 대해 LD_PRELOAD 환경 변수를 설정할 수 있으며 경우에 따라 작동할 수도 있지만 미묘한 문제가 발생할 수 있습니다. 또한 애플리케이션을 다시 시작하지 않으면 리디렉션을 쉽게 켜거나 끌 수 없습니다.

답변2

openvpn은 모든 것을 라우팅하는 가장 쉬운 방법입니다. sock 프록시를 통해 openvpn 서버에 연결할 수 있습니다

다음 두 줄을 추가하여 ocks 포트 1234를 통해 연결하도록 openvpn 스크립트를 수정합니다.

 socks-proxy localhost 1234
 socks-proxy-retry

이는 좀 더 억압적인 국가에서처럼 openvpn 프로토콜이 차단된 경우 유용할 수 있습니다. 일반적으로 양말 프록시는 애플리케이션별로 설정됩니다. 위의 솔루션에는 openvpn 서버와 Shadowsocks 서버가 필요합니다.

관련 정보