
다음과 같은 시나리오가 있습니다
Local Network | Global Network
|
|
|
|
|
|
|
+------------+ +-----------+ | +----------+ +----------------+
| client A | -----------> | server A | <--------------------> | server B | ---------------> | Global Network |
+------------+ +-----------+ | +----------+ +----------------+
|
|
앞으로의 과제:
모든 트래픽을 에서 로 전송 server A
합니다 server B
. 에서는 모든 터널 프로토콜이 닫혀 있으므로 server A
reverse ssh가 좋은 옵션이라고 생각했습니다.
역방향 SSH를 만들기 위해 다음 명령을 사용합니다.
ssh -fNT -R 4000:localhost:22 [email protected] -i <private-key>
이제 server A
포트가 열려 있는 것을 볼 수 있습니다 4000
. 하지만 트래픽 전체를 다음으로 전송하는 방법을 모르겠습니다.server B
답변1
내 즉각적인 생각은 tun 인터페이스를 만들고 라우팅을 적절하게 설정하는 것입니다. 아래에서 볼 수 있듯이 ssh man에서 다음 명령줄 인수를 사용할 수 있습니다.
-w local_tun[:remote_tun] 클라이언트(local_tun)와 서버(remote_tun) 사이에 지정된 tun(4) 장치를 사용하여 터널 장치 전달을 요청합니다. 장치는 숫자 ID 또는 사용 가능한 다음 터널 장치를 사용하는 키워드 "any"로 지정할 수 있습니다. Remote_tun을 지정하지 않으면 기본값은 "any"입니다. >ssh_config(5)의 Tunnel 및 TunnelDevice 지시문도 참조하세요.
Tunnel 지시어가 설정되지 않은 경우 기본 터널 모드인 "지점 간"으로 설정됩니다. 다른 터널 전달 모드가 필요한 경우 -w 앞에 지정해야 합니다.
이 답변은 자세한 내용을 제공합니다.
https://unix.stackexchange.com/questions/525217/create-network-interface-from-ssh-tunnel