무슨 일이 일어나는지
나는 다음과 같은 설정을 가지고 있습니다 :
server <-NAT-> VPS <-> client
역방향 터널과 다음 설정을 통해 내 서버에 SSH를 설정했습니다.
- VPS에서는
GatewayPorts yes
- 서버에서:
autossh -f -M 57575 -N -R <VPS ip>:9991:localhost:<server ssh port> vps
이 설정을 사용하면 ssh -p 9991 <server user>@<VPS ip>
클라이언트에서 내 서버에 간단히 로그인할 수 있습니다.
뭐지?
- VPS에서는
GatewayPorts yes
및 기타 설정은 SSH 사례와 동일합니다.
- 서버에서:
autossh -f -M 57576 -N -R <VPS ip>:9992:localhost:8988 vps
python -m http.server 8988
http 서버를 시작합니다. 바인딩되었는지 확인 0.0.0.0
하고 로컬 컴퓨터에서 액세스할 수 있습니다.
하지만 을(를) 통해 웹사이트에 액세스하려고 하면 http://<VPS ip>:9992
ERR_EMPTY_RESPONSE가 발생합니다.
netstat에서 두 경우 모두 동일하게 보입니다. VPS에서:
tcp 0 0 0.0.0.0:9992 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:9991 0.0.0.0:* LISTEN -
서버에서:
tcp 0 0 0.0.0.0:8988 0.0.0.0:* LISTEN 21003/python
tcp 0 0 0.0.0.0:<ssh port> 0.0.0.0:* LISTEN 550/sshd
tcpdump
이는 VPS의 포트 9992에 연결이 설정되었지만 포트 8988에는 아무것도 도착하지 않음을 보여줍니다 server
. FIN
지금 VPS에 연결을 설정하세요.
똑같은 SSH 상황이 작동하는데 왜 이것이 작동하지 않습니까?
답변1
먼저 서버를 시작한 다음 원격 포트 전달을 활성화해야 합니다. 그 반대는 사실이 아닙니다.
왜 그런지는 모르겠지만 문제가 해결된 것 같습니다.