RDP 접속을 하고싶은데 윈도우가 NAT 뒤에 있거나 방화벽에 막혀있는경우 어디서든 접속가능한 sshd 서버를 프록시로 경유해서 커넥션 하는 방법.
- A: NAT 뒤에 숨은 윈도우
- B: 공인 ip 로 접속가능한 Linux 서버
이때 B 를 프록시로 경유해서 A 로 접속하는 방법은.
1. 먼저 A (3388 포트에서 서비스 러닝중인 컴퓨터) 에서 B (프록시 해줄 서버. daehee.kr 등) 로 터널링 접속(putty 또는 ssh 로)
ssh -R *:7777:127.0.0.1:3388 root@daehee.kr
-R [bind_address:]port:host:hostport
Specifies that the given port on the remote (server) host is to be forwarded to the given host
and port on the local side. This works by allocating a socket to listen to port on the remote
side, and whenever a connection is made to this port, the connection is forwarded over the secure
channel, and a connection is made to host port hostport from the local machine.
Port forwardings can also be specified in the configuration file. Privileged ports can be for‐
warded only when logging in as root on the remote machine. IPv6 addresses can be specified by
enclosing the address in square brackets.
By default, the listening socket on the server will be bound to the loopback interface only.
This may be overridden by specifying a bind_address. An empty bind_address, or the address ‘*’,
indicates that the remote socket should listen on all interfaces. Specifying a remote
bind_address will only succeed if the server's GatewayPorts option is enabled (see
sshd_config(5)).
If the port argument is ‘0’, the listen port will be dynamically allocated on the server and
reported to the client at run time. When used together with -O forward the allocated port will
be printed to the standard output.
2. 1 을 유지한상태에서 B 의 7777 로 RDP 접속을 하면 A 로부터 (127.0.0.1 를 소스아이피로서... 3388을 돌리는 서비스가 IP 바인딩을 0.0.0.0 으로 했다면 구지 127.0.0.1 일필요는 없지만 localhost 로 바인딩해서 돌고있다면 이렇게 지정해줘야함) A 의 3388 을 돌리는 TCP 로 접속하는것과 같은꼴.
'Programming' 카테고리의 다른 글
Linux 에서 실행파일 인식을 못할때 (0) | 2015.07.28 |
---|---|
FS register in x86 Windows (0) | 2015.06.18 |
How to use Linux kptr_restrict (1) | 2015.01.08 |
Difference between context switch and mode switch in Linux (2) | 2014.12.19 |
How Linux kernel implements raw_spin_lock (0) | 2014.12.10 |