powershell 과 wsl를 와리가리
in Archive
wsl에서 netstat 사용하고 싶어.
cmd에서는 ls 같은 게 안돼서 window에서 CLI 필요할 때 powershell 을 쓰는데 얘는 사실 뭔가 애매하게 독자적이라서 또 화나는 일이 많다.
예를 들면 netstat
으로 지금 프로세스들 중에 8080 쓰고 있는 거 확인할 때
linux
netstat -ano | grep '8080'
CMD
netstat -ano | find "8080"
powershell
netstat -ano | select-string "8080"
와,, select-string
이라니
그래서 wsl2 를 메인으로 쓰려 했는데
wsl2에서 netstat 날리면 windows랑 다름
wsl2 의 네트워크 구조
wsl2 요 녀석은 Windows 의 hyper-v
로 가상화된 거라 네트워크 구조가 복잡한 부분이 있다,, ㅇㄴ,,
- 참고 자료: WSL2의 네트워크 통신 방법
- 대충만 이해해보자면, wsl2의 네트워크는 vEthernet 형식으로 구성되어 있고
wsl2 host
- WSL2 에서 띄운 프로세스를 windows의 localhost로 접근 가능함
- 다만 인터넷 -> HOST IP로 WSL2 프로세스 접속은 불가능 (애초에 internal 네트워크이기 때문) –> 포트 포워딩 필요
그니까, wsl2에 8080 포트로 뭔가 열어놨다면 windows 에서는 localhost:8080 으로 접근 가능하지만 외부에서 {wsl2host}:8080 으로 접근 불가하다. (port forwarding 필요)
wsl2
netstat -ano | grep '8080'
일단 wsl2에서 netstat
쓰려면 설치필요: apt install net-tools
wsl에서 netstat
날리면
WSL2 Alias
vi ~/.zshrc
# Custom Aliases
alias netstat="/mnt/c/Windows/System32/NETSTAT.EXE"
source ~/.