NAT 뒤의 netcat에서

NAT 뒤의 netcat에서

장치가 인터넷에 연결되어 있지만 NAT 뒤에 있으므로 네트워크 외부에서 SSH를 통해 직접 액세스할 수 없습니다. 역방향 SSH 터널링이 이 문제를 우회할 수 있다는 것을 발견했습니다.

이제 이 장치에서 netcat 서버 프로세스를 실행하여 네트워크 외부에서 다시 액세스할 수 있게 만들고 싶습니다. 어떻게 해야 하나요?

답변1

나는이 문제를 직접 해결했습니다. SSH 터널링은 기본적으로 포트 포워딩인 것 같습니다. NAT 뒤의 서버에서 다음 코드를 실행하고 있습니다.

ssh -N -R 4321:localhost:1234 user@client &

client:4321server:1234이렇게 하면 트래픽을 라우팅 하고 &백그라운드에서 실행하도록 터널이 설정됩니다 . 여전히 서버에서 다음을 실행합니다.

ncat -lk -c "python myscript.py" localhost 1234 &

그러면 netcat 프로세스가 실행되기 시작합니다 myscript.py. 이제 netcat을 통해 클라이언트에서 서버에 연결할 수 있습니다.

nc localhost 4321

ncat(내 클라이언트에서는 아니지만 nc작동합니다. 실제 사용 사례는 socketPython의 라이브러리를 사용하여 연결하는 것인데, 이는 동일하게 작동합니다)

관련 정보