-
-
Save arsu-leo/6b76c03973bac4ac1d5a86cfec2cfe22 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# NEEDS TO BE RUN AS ADMIN | |
# If ran as a powershell script, you will need to run this first: | |
# Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process | |
# [CONFIGURATION] | |
# Ensure WSL2 container is started and SSH is running | |
wsl sudo /etc/init.d/ssh start | |
# Ports to be forwarded | |
$ports = @(22); | |
#Example | |
#$ports = @(22) + @(6543,6544) + @(6800..6810); | |
# Change $addr to restrict connections to a particular interface IP | |
$listen_addr = '0.0.0.0'; | |
# [RUNTIME] | |
$wsl_addr = (wsl hostname -I).trim() | |
if(!$wsl_addr){ | |
echo "Cannot determine IP of WSL2 instance"; | |
exit; | |
} | |
Write-Host "WSL IP: $wsl_addr" | |
$rule_name = "WSL2 Forwarding" | |
# Remove old firewall rules | |
Write-Host "Removing old firewall rules" | |
Remove-NetFireWallRule -DisplayName $rule_name | |
# Add new firewall rules | |
Write-Host "Add firewall rules" | |
New-NetFireWallRule -DisplayName $rule_name -Direction Outbound -LocalPort $ports_all -Action Allow -Protocol TCP | |
New-NetFireWallRule -DisplayName $rule_name -Direction Inbound -LocalPort $ports_all -Action Allow -Protocol TCP | |
for( $i = 0; $i -lt $ports.length; $i++ ){ | |
$port = $ports[$i]; | |
Write-Host "Update portproxy for $port" | |
Write-Host "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$listen_addr" | |
netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$listen_addr | |
Write-Host "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$listen_addr connectport=$port connectaddress=$wsl_addr" | |
netsh interface portproxy add v4tov4 listenport=$port listenaddress=$listen_addr connectport=$port connectaddress=$wsl_addr | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Removed default ports, added some verbose info about the running commands