Shadowsocks를 통한 SSH?

Shadowsocks를 통한 SSH?

Shadowsocks를 통해 SSH 트래픽을 라우팅하는 방법은 무엇입니까?

저는 Shadowsocks를 사용하여 방화벽 뒤에서 서버에 연결하고 있습니다. 나가는 SSH 연결을 설정하고 싶지만 SSH 트래픽이 인식되어 연결이 닫힐까 봐 걱정됩니다. 따라서 이미 작동 중인 SOCKS5 프록시를 통해 SSH 트래픽을 라우팅할 수 있기를 원합니다.

이 목표를 달성하려면 어디서부터 시작해야 합니까? 출력이 어떻게든 SOCKS5 프록시를 통해 라우팅되도록 다양한 포트를 제공할 수 있는 가상 네트워크 어댑터를 만들어야 한다고 가정하겠습니다.

답변1

Shadowsocks 구성이 다음과 같은 경우:

  • 로컬 주소: 127.0.0.1
  • 로컬 포트: 1080
  • 서버 IP 42.42.42.42

자신만의 구성으로 변경

sudo apt install connect-proxy

~/.ssh/config를 편집하세요.

# Outside of the firewall, with HTTPS proxy
Host 42.42.42.42
  ProxyCommand connect -H 127.0.0.1:1080 %h 22
## Inside the firewall (do not use proxy)
Host *
  ProxyCommand connect %h %p

이제 다음을 시도해 볼 수 있습니다.

ssh username@ipserver

IP 연결 확인

netstat -tn 2>/dev/null

일반적으로 다음과 같은 내용이 표시됩니다.

Connexions Internet actives (sans serveurs)

Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat       
tcp        0     68 69.69.69.69:22        42.42.42.42:42800      ESTABLISHED

더 많은 기술

이 스크립트를~/.bash_profile.

양말 5

export http_proxy=socks5://127.0.0.1:1080
export https_proxy=socks5://127.0.0.1:1080

또는

HTTPS)

export http_proxy=http://127.0.0.1:1080
export https_proxy=https://127.0.0.1:1080

웹 브라우저에 대한 네트워크 연결을 설정하려는 경우

유령의 길(드워프)

  1. 환경
  2. 회로망
  3. 프록시 서버
  4. 구성을 입력하세요
  5. localhost에 대한 프록시를 비활성화하는 것을 잊지 마십시오

여기에 이미지 설명을 입력하세요.

아니면 모든 프록시 리디렉션을 환경에 추가하세요.

환경 | grep -i 에이전트

반환해야합니다

HTTP_PROXY=http://127.0.0.1:1080/
FTP_PROXY=http://127.0.0.1:1080/
ALL_PROXY=socks://127.0.0.1:1080/
NO_PROXY=127.0.0.1,localhost
HTTPS_PROXY=http://127.0.0.1:1080/
https_proxy=http://127.0.0.1:1080/
http_proxy=http://127.0.0.1:1080/
no_proxy=127.0.0.1,localhost
all_proxy=socks://127.0.0.1:1080/
ftp_proxy=http://127.0.0.1:1080/

Shadowsock을 통해서만 컬을 구성하려는 경우

export socks5=socks5://127.0.0.1:1080

그리고

curl api.ipify.org

Git의 경우

git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

답변2

SSH 구성 파일에서 match 지시문을 사용하는 더 쉬운 방법이 있습니다.

Match Exec "nc -z 127.0.0.1 1086"
     ProxyCommand nc -X 5 -x 127.0.0.1:1086 %h %p

이 지시문은 ssh를 실행할 때마다 실행됩니다(모든 항목과 일치). 먼저 : -z 옵션을 사용하여 Shadowsocks 프록시에 연결을 시도합니다 nc. 이는 단지 IO 없이 포트를 확인한다는 의미입니다. 내 ssocks 프록시가 포트 1086에서 실행 중입니다. 실행 중이면 ProxyCommand를 설정하고, 그렇지 않으면 설정하지 않고 프록시 없이 정상적으로 연결합니다.

답변3

tsocks저는 Ubuntu 18.04에서 작업하고 있습니다.

sudo apt install tsocks

다음과 같이 구성하십시오 /etc/tsocks.conf.

# Local networks accessible without socks server
local = 192.168.0.0/255.255.0.0
# Socks server address
server = 127.0.0.1
# Server type SOCKS5
server_type = 5
# Server port
server_port = 1080

그런 다음 다음을 전달할 수 있습니다.

tsocks ssh USER@SERVER

SSH 시간 제한은 SERVER에서도 구성되어야 합니다 /etc/ssh/sshd_config.

# 10 minutes
ClientAliveInterval 10m
# Max number of client alive messages without response
ClientAliveCountMax 3

30분 후에 자동으로 클라이언트 연결이 끊어집니다. ( man sshd_config이 두 매개변수의 의미는 참고자료를 참조하세요.)

관련 정보