홈 네트워크에 서버가 있고(포트 포워딩 불가) WAN에 VPS가 있습니다. 특정 포트에 대한 요청이 필요합니다.도착하다, 내 홈 서버로 전달되는 VPS가 아닙니다. SSH 터널이 있고 localhost
VPS 에 요청을 보내면 제대로 작동합니다. 그러나 인터넷에서 VPS로 전달된 요청이 localhost
내 홈 서버로 터널링되기를 원합니다. 그리고 양방향 도로여야 합니다.
나는 보았다이것질문이 있지만 나에게는 작동하지 않습니다. 제가 뭔가 잘못하고 있는 것 같아요.
내 정확한 프로세스: 내 홈 서버에서 다음 명령을 실행하여 터널을 설정합니다
.a
ssh -v -N -R 2222:localhost:22 [email protected]
b
서버(VPS)에서 다음 명령을 실행합니다.
iptables -t nat -A PREROUTING -p tcp --dport 2223 -j DNAT --to-destination 127.0.0.1:2222
ssh
다른 컴퓨터에서 시도해 보세요 .
ssh [email protected] -p 2223
설정했지만 GatewayPorts yes
여전히 sshd_config
같은 문제가 발생합니다.
ssh: 호스트 server-b.com 포트 2223에 연결 중: 연결이 거부되었습니다..
답변1
서버 에 설정 GatewayPorts yes
합니다 . IP를 명시적 으로 언급 하거나 서버에 역방향 터널을 생성합니다 . 이 방법으로 서버의 sshd는 공개 연결도 허용합니다.AllowTcpForwarding yes
sshd_config
b
GatewayPorts clientspecified
0.0.0.0
*
a
b
ssh -NTR *:2222:localhost:22 [email protected]
그렇지 않으면 sshd는 .NET Framework와 마찬가지로 루프백 인터페이스만 수신합니다 GatewayPorts no
.
이제 ssh
다른 머신에서 포트로 2222
:
ssh [email protected] -p 2222
a
인증 후 서버에 로그인됩니다. 전달을
설정할 필요가 없습니다 iptables
. 그런데 가능하다면 사용자가 root
원격으로 로그인하는 것을 방지하세요.
옵션을 설정하지 않으려면 다른 포트 GatewayPorts
에서 트래픽을 전달해야 합니다 .2223
localhost:2222
iptables
이 작업은 서버에서 수행할 수 있습니다b
.iptables -t nat -I PREROUTING -p tcp -m tcp --dport 2223 -j DNAT --to-destination 127.0.0.1:2222
*
REDIRECT
동일한 인터페이스에 한함하지만
loopback
인터페이스 로의 경로다음의 경우를 제외하고는 허용되지 않습니다:echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/route_localnet
이제
ssh
다른 머신에서 포트로2223
:ssh [email protected] -p 2223
2223
또 다른 옵션은 2222
.ssh
socat
netcat
*inetd
서버에서 다음을
b
사용하십시오socat
.socat TCP-LISTEN:2223,fork TCP:127.0.0.1:2222
또는 다음을 사용하여
netcat
:nc -l -p 2223 -c "nc 127.0.0.1 2222"
또는 다음을 사용하여
ssh
:ssh -4gfNTL 2223:localhost:2222 localhost
위의 모든 방법을 역터널링과 결합하여 다음을 만들 수 있습니다.이중 전달a
서버의 단계:
ssh -TR *:2222:localhost:22 [email protected] "ssh -4gfNTL 2223:localhost:2222 localhost"