SSH Tunnel 만들기
#!/bin/zsh
# 기존 ssh 터널링 종료
pkill ssh
# 새로운 ssh 터널 생성
ssh -i key.pem -Nf \
-L <LOCALPORT1>:<SERVER1_IP>:<SERVER1_PORT> <USERNAME>@<TUNNELLING_SERVER_IP> \
-L <LOCALPORT2>:<SERVER2_IP>:<SERVER2_PORT> <USERNAME>@<TUNNELLING_SERVER_IP>
- ssh 명령어 옵션
-
- C: 압축(Compression)
- N: 쉘 명령 실행 안함(포워딩만 할 때)
- f: 백그라운드 전환
- L: 터널링 정보 제공
- i: key 파일 정보 제공
기존 터널 있으면 프로세스 끝내기
# 특정 포트 리슨중인 프로세스만 종료
sudo lsof -t -i tcp:8000 | xargs kill -9
# ssh 프로세스 전체 종료(정규표현식 사용 가능)
pkill ssh
Tunnel List 보기
$ lsof -i -n |egrep '\<ssh\>'
ssh 10582 ubuntu 3u IPv4 912287 0t0 TCP <SERVER_IP>:36108-><TUNNELLING_SERVER_IP>:ssh (ESTABLISHED)
ssh 10582 ubuntu 4u IPv6 912294 0t0 TCP [::1]:8888 (LISTEN)
ssh 10582 ubuntu 5u IPv4 912295 0t0 TCP 127.0.0.1:8888 (LISTEN)
ssh 10582 ubuntu 6u IPv6 912298 0t0 TCP [::1]:8443 (LISTEN)
ssh 10582 ubuntu 7u IPv4 912299 0t0 TCP 127.0.0.1:8443 (LISTEN)
ssh 10584 ubuntu 3u IPv4 912302 0t0 TCP <SERVER_IP>:36110-><TUNNELLING_SERVER_IP>:ssh (ESTABLISHED)
ssh 10584 ubuntu 4u IPv6 912309 0t0 TCP [::1]:http-alt (LISTEN)
ssh 10584 ubuntu 5u IPv4 912310 0t0 TCP 127.0.0.1:http-alt (LISTEN)