Linux에서 WSL 시작 될 때 설정 하는DNS 서버 설정 파일의 nameserver IP을 활용
Window에서 어뎁터 설정(제어판\네트워크 및 인터넷\네트워크 연결)에서 보면 vEthernet (WSL) 표시 되는 어뎁터의 IP
> cat /etc/resolv.conf
# This file was automatically generated by WSL.
To stop automatic generation of this file,
add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 192.168.61.129
WSL guest vm은 기본적으로 동적으로 IP 할당 받아 NAT를 통해 외부와 통신함
> ip addr |grep eth0
5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
mq state UP group default qlen 1000
inet 192.168.61.130/28 brd 192.168.61.143 scope global eth0
/etc/resolv.conf의 nameserver 뒤의 IP를 가져와 $HOSTIP로 저장
> export HOSTIP=$(cat /etc/resolv.conf | grep -oP '(?<=nameserver ).+')
> echo $HOSTIP
192.168.61.129
#perl 정규표현식이 어렵다면
> tail -1 /etc/resolv.conf | cut -d' ' -f2
192.168.61.129
- P, --perl-regexp
Interpret PATTERNS as Perl-compatible regular expressions
- o, --only-matching
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
WSL에서 windows 명령어를 사용할 수 있으므로 Linux grep 명령어로 WSL IP 획득
> export HOSTIP=$(/mnt/c/Windows/System32/ipconfig.exe \
| grep -A 10 WSL | grep IPv4 | awk '{print $14; exit;}')
~
> echo $HOSTIP
192.168.61.129
-A NUM, --after-context=NUM
Print NUM lines of trailing context after matching lines.
-B NUM, --before-context=NUM
Print NUM lines of leading context before matching lines.
-C NUM, -NUM, --context=NUM
Print NUM lines of output context.
로그인 시에 자동으로 실행 되도록 .zshrc(또는 .bashrc)에 추가
export HOSTIP=$(cat /etc/resolv.conf | grep -oP '(?<=nameserver ).+')
alias gokdrvstg01='ssh vagrant@$HOSTIP -p 60001'
alias gokdrvstg02='ssh vagrant@$HOSTIP -p 60002'
alias gokdrvstg03='ssh vagrant@$HOSTIP -p 60003'
alias gokdrvstg04='ssh vagrant@$HOSTIP -p 60004'