프록시를 통한 mosh 터널


16

나는 성장하는 mosh 팬이며 신뢰할 수없는 wifi 링크가있을 때 점점 더 많이 사용하고 있습니다. 내가 알아 내려고하는 것은 DMZ (인터넷 및 방화벽 네트워크에 연결된)에있는 서버를 통해 터널을 만드는 방법입니다.

ssh를 사용하는 현재 솔루션은 다음과 같은 줄을 포함하도록 .ssh / config 를 편집하는 것입니다.

Host server-behind-firewall
  ProxyCommand ssh server-in-dmz nc %h %p

또한 ssh를 사용하여 한쪽 다리를 만들고 다른 한쪽 다리를 깎는 방법을 알아 냈습니다.

ssh -t server-in-dmz mosh server-behind-firewall

server-in-dmz와 server-behind-firewall 사이에 screen을 사용하여 mosh 세션을 준비했습니다.

하지만 실제로 종단 간 mosh를 사용하고 싶습니다. 나는 mosh-server 청취를하기 위해 server-in-dmz를 조작해야한다고 생각한다. 그러나 mosh-server 매뉴얼 페이지에 "60 초 내에 클라이언트가 접속하지 않으면 종료됩니다."

간단히 말해서, 여러 호스트로 mosh 터널을 만드는 방법은 무엇입니까?


답변:


5

TCP 및 UDP 패킷 리피터 인 stone 을 시도 할 수 있습니다 . 이것이 본질적으로 의미하는 것은 다음과 같은 구성을 가질 수 있다는 것입니다.

<---> Stone-in-Dmz의 <---> 서버-방화벽

즉, SSH 패킷이 방화벽 뒤 서버로 전달 될 수 있도록 포트 X에서 수신 대기중인 Dmz 서버와 방화벽 뒤 서버의 포트 60000으로 전달되는 UDP 패킷을 처리하는 다른 포트 인 포트 Y가 있어야합니다. mosh-server.

다음 명령을 사용하여 mosh에 연결해야합니다.

mosh -p 60000 --ssh='ssh -p PORT_X' server-in-dmz

3
한 가지 흥미로운 점은 tsocks 또는 proxychains와 같은 tcp 인터셉터 응용 프로그램을 사용하면 작동하지 않는다는 것입니다. TCP 패킷 만 가로 채고 UDP (mosh가 사용하는 것)는 가로 채지 않기 때문입니다.
Hengjie 2016

하나의 ipv4와 하나의 ipv6 주소로 스톤을 어떻게 사용합니까?
Janus Troelsen

0

@Hengjie가 제안한 것처럼 응용 프로그램 계층의 트래픽을 전달하는 대신 iptables (server-in-dmz)를 사용할 수도 있습니다.

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 11559 -j DNAT --to-destination 178.254.55.220:22
iptables -t nat -A PREROUTING -p udp -m udp --dport 60159:60168 -j DNAT --to-destination 178.254.55.220
iptables -t nat -A POSTROUTING -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

그런 다음 mosh -p 60159 --ssh='ssh -p 11559' server-in-dmz

노트 :

  • mosh-port를 구성 파일에 넣는 방법이없는 것 같습니다. :(
  • 나는 무작위로 포트를 골랐다.
  • 이렇게하면 추가 iptables 구성이 필요할 수 있습니다.
  • 편집 : 서버를 가져 가지 않고 mosh 클라이언트를 실수로 죽일 가능성이 높기 때문에 전체 포트 범위를 DNAT하는 것이 좋습니다. 범위를 전달하지 않으면 서버로 ssh하고 실행중인 mosh 서버를 종료해야합니다. 처음에 연결 상태가 좋지 않으면 약간 성 가실 수 있습니다.
  • 이것에 대한 나의 유스 케이스는 요오드를 통해 mosh입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.