저는 우분투 가상 서버를 사용하고 있으며 SSH를 통해 연결된 호스트에 클라이언트를 포트 전달하고 싶습니다. 퍼티는 포트 1802를 원격으로 포트 전달하도록 구성되어 있습니다.
내가 이루고 싶은 것:내 가상 서버가 애플리케이션의 특정 포트에 대한 프록시 역할을 하길 원합니다. 해당 포트를 사용하여 가상 서버에 연결할 수 있지만 역방향 프록시(호스트)로 리디렉션되기를 원합니다.
클라이언트 A <== xxxx:1802 ==> 가상 서버(포트 전달) <== 역방향 프록시/ssh 연결 ==> 호스트
내가 이미 가지고 있는 것:호스트에는 이미 putty를 사용하는 원격 포트 전달과 내 가상 서버에 대한 SSH 연결이 있습니다. 내가 놓친 것은 포트 전달이므로 지정된 포트를 사용하여 가상 서버에 연결하는 클라이언트가 호스트에 DNAT로 지정됩니다.
이것이 내가 지금까지 시도한 것입니다:내 nginx 서버 구성을 추가하려고 시도했지만 listen 1802;
전혀 작동하지 않았습니다(구성이 누락된 것 같습니다 proxy_pass
). 그런 다음 iptables를 사용해 보았습니다.
iptables -t nat -A PREROUTING -i -p udp --dport 1802 -j DNAT --to-destination 127.0.0.1:1802
iptables -t nat -A PREROUTING -i -p tcp --dport 1802 -j DNAT --to-destination 127.0.0.1:1802
iptables-save
그러나 매개 변수에 대해서는 확신이 없습니다 --to-destination
. 또한 -i
iptables 항목에 모든 인터페이스가 사용되도록 값을 생략했습니다.
답변1
내 경우에는 추가 GatewayPorts yes
가 /etc/ssh/sshd_config
필요했습니다. SSH를 다시 시작하는 것만으로는 충분하지 않았고 가상 서버를 다시 시작해야 했습니다. 그러면 작동했습니다. 모든 포트가 이미 ACCEPT에 있었기 때문에 특별한 iptables 항목도 필요하지 않았습니다.