<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Port Forwarding on 42Class</title><link>https://42class.com/tags/port-forwarding/</link><description>Recent content in Port Forwarding on 42Class</description><generator>Hugo -- gohugo.io</generator><language>ko</language><lastBuildDate>Mon, 03 Aug 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://42class.com/tags/port-forwarding/index.xml" rel="self" type="application/rss+xml"/><item><title>Mac에서 WSL로 자유롭게 접근하기(ssh와 Port Forwarding)</title><link>https://42class.com/posts/mac%EC%97%90%EC%84%9C-wsl%EB%A1%9C-%EC%9E%90%EC%9C%A0%EB%A1%AD%EA%B2%8C-%EC%A0%91%EA%B7%BC%ED%95%98%EA%B8%B0ssh%EC%99%80-port-forwarding/</link><pubDate>Mon, 03 Aug 2020 00:00:00 +0000</pubDate><guid>https://42class.com/posts/mac%EC%97%90%EC%84%9C-wsl%EB%A1%9C-%EC%9E%90%EC%9C%A0%EB%A1%AD%EA%B2%8C-%EC%A0%91%EA%B7%BC%ED%95%98%EA%B8%B0ssh%EC%99%80-port-forwarding/</guid><description>&lt;h2 id="wsl에서-ssh-서버-세팅하기"&gt;WSL에서 SSH 서버 세팅하기
&lt;/h2&gt;&lt;p&gt;wsl을 설치하면 기본적으로 ssh서버가 세팅되어 있습니다.&lt;br&gt;
하지만 왜 인지는 모르겠으나 wsl에 기본으로 세팅되어 있는 ssh서버는 정상적으로 작동 하지 않습니다.&lt;br&gt;
기본 세팅되어 있는 ssh서버는 제거하고 갈끔하게 새로 세팅하는 것이 좋을 것 같습니다.&lt;br&gt;
일단 제 WSL을 Ubuntu 18.04 배포판이라 apt를 사용하여 설치하겠습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;apt 패키지 매니저부터 update &amp;amp; upgrade하고 진행하겠습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get update &lt;span style="color:#ff79c6"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt-get upgrade -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;기본으로 세팅되어 있는 ssh 서버를 제거합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get purge openssh-server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;ssh 서버를 재설치 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get install openssh-server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="windows에서-wsl로-port-forwarding"&gt;Windows에서 WSL로 Port Forwarding
&lt;/h2&gt;&lt;p&gt;작성 중&lt;/p&gt;
&lt;h2 id="wsl-ssh서버---port-forwarding-script-실행-스케쥴러-등록"&gt;WSL SSH서버 / Port Forwarding script 실행 스케쥴러 등록
&lt;/h2&gt;&lt;p&gt;Windows10 PC도 여전히 개발작업에 사용 중이고 수시로 온/오프 하는 랩탑이라서 매번 포트포워딩 잡아주고 ssh서버 실행해주는게 번거로웠습니다.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bash.exe -c &lt;span style="color:#f1fa8c"&gt;&amp;#34;sudo service ssh start&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;powershell.exe -ExecutionPolicy Bypass -File D:&lt;span style="color:#f1fa8c"&gt;\w&lt;/span&gt;sl2-network.ps1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;wsl2-network.ps1 : 파일안에 $ports 변수에 포워딩할 포트 지정&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$remoteport&lt;/span&gt; = bash.exe -c &lt;span style="color:#f1fa8c"&gt;&amp;#34;ifconfig eth0 | grep &amp;#39;inet &amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$found&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$remoteport&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-match&lt;/span&gt; &lt;span style="color:#f1fa8c"&gt;&amp;#39;\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;if&lt;/span&gt;( &lt;span style="color:#8be9fd;font-style:italic"&gt;$found&lt;/span&gt; ){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$remoteport&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$matches&lt;/span&gt;[&lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;} &lt;span style="color:#ff79c6"&gt;else&lt;/span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;echo &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;The Script Exited, the ip address of WSL 2 cannot be found&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#[Ports]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#All the ports you want to forward separated by coma&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ports&lt;/span&gt;=&lt;span style="color:#8be9fd;font-style:italic"&gt;@&lt;/span&gt;(&lt;span style="color:#bd93f9"&gt;80&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;443&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;10000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;3000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;5000&lt;/span&gt;,&lt;span style="color:#bd93f9"&gt;22&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#[Static ip]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#You can change the addr to your ip config to listen to a specific address&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$addr&lt;/span&gt;=&lt;span style="color:#f1fa8c"&gt;&amp;#39;0.0.0.0&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ports_a&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$ports&lt;/span&gt; -join &lt;span style="color:#f1fa8c"&gt;&amp;#34;,&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#Remove Firewall Exception Rules&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;Remove-NetFireWallRule -DisplayName &amp;#39;WSL 2 Firewall Unlock&amp;#39; &amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;#adding Exception Rules for inbound and outbound Rules&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;New-NetFireWallRule -DisplayName &amp;#39;WSL 2 Firewall Unlock&amp;#39; -Direction Outbound -LocalPort &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ports_a&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; -Action Allow -Protocol TCP&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;New-NetFireWallRule -DisplayName &amp;#39;WSL 2 Firewall Unlock&amp;#39; -Direction Inbound -LocalPort &lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$ports_a&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; -Action Allow -Protocol TCP&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;for&lt;/span&gt;( &lt;span style="color:#8be9fd;font-style:italic"&gt;$i&lt;/span&gt; = &lt;span style="color:#bd93f9"&gt;0&lt;/span&gt;; &lt;span style="color:#8be9fd;font-style:italic"&gt;$i&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;-lt&lt;/span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$ports&lt;/span&gt;.length; &lt;span style="color:#8be9fd;font-style:italic"&gt;$i&lt;/span&gt;++ ){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;$port&lt;/span&gt; = &lt;span style="color:#8be9fd;font-style:italic"&gt;$ports&lt;/span&gt;[&lt;span style="color:#8be9fd;font-style:italic"&gt;$i&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;netsh interface portproxy delete v4tov4 listenport=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$port&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; listenaddress=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$addr&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8be9fd;font-style:italic"&gt;iex &lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;netsh interface portproxy add v4tov4 listenport=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$port&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; listenaddress=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$addr&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; connectport=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$port&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt; connectaddress=&lt;/span&gt;&lt;span style="color:#8be9fd;font-style:italic"&gt;$remoteport&lt;/span&gt;&lt;span style="color:#f1fa8c"&gt;&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a class="link" href="https://www.tuwlab.com/ece/29302" target="_blank" rel="noopener"
 &gt;SSH 서버 세팅하기&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;WSL환경에서 맥으로 작업환경 옮기면서 SSH접속이 되면 편할 거 같아서 세팅한건데 맥에서 wsl로 ssh 접근 필요하신 분은 사용하시면 될 듯 합니다.&lt;/p&gt;
&lt;p&gt;링크(&lt;a class="link" href="https://www.tuwlab.com/ece/29302" target="_blank" rel="noopener"
 &gt;https://www.tuwlab.com/ece/29302&lt;/a&gt;) 참조하셔서 wsl에 ssh 서버 설치하시고 첨부 한 zip파일 받으셔서 route.bat 파일 시작프로그램에 넣으시면 됩니다.&lt;/p&gt;
&lt;p&gt;route.bat : 파일안에 파워셀스크립트 파일 경로 자신의 경로대로 변경 필요&lt;/p&gt;</description></item></channel></rss>