
내 Windows에서 WSL이 로컬 호스트 프록시(실제로는 Fiddler)를 사용하도록 하려고 하는데 그런 연결이 보이지 않고 일반적으로 다운로드가 실패합니다. 어떻게 해결합니까?
Windows에서 Linux 로컬 호스트에 연결할 수 있다는 것을 알고 있지만 어떻게 되돌릴 수 있습니까?
WSL은 우분투 18.04입니다.
답변1
답변2
관리자 권한으로 실행되는 Powershell에서 다음 명령을 실행해야 합니다.
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
이 명령은 다음에서 비롯됩니다.WSL2 티켓. WSL2 IP는 매번 변경되므로 WSL IP 주소와 관련된 방화벽 규칙은 적용되지 않습니다.
2023년 편집: 새로운네트워크 미러 모드그리고 새로운방화벽 관리 도구구현되었습니다.
답변3
WSL 2는 WSL 1에 비해 몇 가지 추가 작업이 필요합니다.
방화벽을 통해 필요한 포트를 허용하십시오.
1.1 출시
Windows Defender Firewall with Advanced Security
1.2 왼쪽 창에서 을 선택합니다
Incoming Rules
.1.3 오른쪽 창에서 을 클릭합니다
New Rule
.1.4 규칙 유형으로 를 선택합니다
Port
. 다음.1.5
TCP
및 를 선택합니다Specific local ports
. 포트, 쉼표로 구분된 포트 목록 또는 포트 범위를 삽입하십시오. 다음.1.6 선택합니다
Allow connection
. 다음.1.7
Public
프로필만 확인하세요. 다음.1.8 규칙 이름을 입력합니다. 예를 들어
WSL
. 완료.그 안에서 WSL의 IP 주소를 알아보세요.
grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'
이는 네트워크 인터페이스의 IPv4 주소입니다 vEthernet (WSL)
.
curl
또는 다음을 사용하여 Windows 호스트에 대한 연결을 테스트합니다telnet
.3.1
curl ip.from.step.2:port
저는 이 절차를 사용하여 Windows에서 실행되는 Oracle 서버와 X 서버에 연결했습니다.
업데이트: WSL의 IP 주소는 Windows를 다시 시작할 때마다 변경되므로 자동으로 가져와 파일을 업데이트하는 것이 편리합니다 hosts
.
WSL에서:
cat /etc/hosts
Windows 호스트의 이름을 찾으려면 실행하십시오 .다음에 다음 코드를 추가합니다
~/.profile
.HOST=<WINDOWS_HOSTNAME> IP_HOST=$(grep -m 1 $HOST /etc/hosts) OLD_IP=$(echo "$IP_HOST" | awk '{print $1}') NEW_IP=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}') if [ "$NEW_IP" != "$OLD_IP" ]; then echo "Updating IP Address-hostname mapping" sudo sed -i "s|$IP_HOST|$NEW_IP\t$HOST|" /etc/hosts echo "$HOST has the IP Address $NEW_IP" fi
답변4
편리한 '기능'이 함께 제공됩니다.WSL-VPN킷. README 지침에 표시된 대로 이 배포판을 설치하고 가져오면 host.internal
IP 주소를 몰라도 Windows 호스트에 연결하는 데 사용할 수 있습니다 .
다운로드 후,
wsl --import wsl-vpnkit --version 2 $env:USERPROFILE\wsl-vpnkit wsl-vpnkit.tar.gz
~/.bashrc에 추가하세요.
wsl.exe -d wsl-vpnkit --cd /app service wsl-vpnkit status >/dev/null || wsl.exe -d wsl-vpnkit --cd /app service wsl-vpnkit start
터미널을 다시 로드한 후 host.internal
WSL에서 실행해 보세요. 예를 들어 Fiddler 프록시 포트가 8888인 경우
nc -v -w5 -z host.internal 8888