Tunneling with PuTTY

etc... 2013.08.19 15:00

Disclaimer: This article is intended for informational/educational purposes only. I do not advocate or condone illegal/unethical behavior, and assume no responsibility or liability for any consequences resulting from the use of the information below.

Tunneling is the process of encapsulating one kind of network traffic (the payload) inside of another kind of network traffic (the container). The resulting traffic would look just like the container traffic to an outside observer.

A common type of network tunnel is the SSH tunnel, which can be used to transfer network traffic through untrusted zones in a secure way. With an SSH tunnel, each packet of the payload traffic is wrapped inside an encrypted SSH packet.

SSH tunnel usage examples

Secure your Internet traffic at the coffee shop

Let's say you would like to transfer your personal email or Internet browsing traffic through an untrusted zone like a public WiFi network. You could create an encrypted SSH tunnel from your computer to a trusted network to ensure your traffic stays secure.

(See poorly-drawn whiteboard diagram above)

Circumvent firewalls and web filters

Firewalls and web filters block access to websites and other Internet services, usually for the purpose of squelching content and services deemed inappropriate by the individuals, organizations, or governments controlling them. The problem is, these systems also prevent access to useful and important content and services. This can result in anything from minor annoyances like being blocked from Wikipediaat school or work, to a government censoring political events.

Creating an SSH tunnel with PuTTY

Here's a guide on how to create an SSH tunnel with PuTTY. This guide makes the following assumptions:

  • You have a Windows machine and administrative access
  • You have SSH access to a trusted server
  • The network you are tunnelling through allows SSH traffic

Install PuTTY on your computer

Download and install PuTTY from its download page.

Test the connection to your SSH server

Run PuTTY and make sure you can connect to your SSH server from the network you're trying to tunnel through.

Set up PuTTY as a local proxy

Once you're sure you can connect to your SSH server normally, you can set PuTTY to act like a local SOCKS proxy, and tunnel all of your system's traffic to your SSH server.

  1. Under connection, expand SSH, and click on Tunnels
  2. Enter a local source port to run the proxy on, e.g., 8888, and choose Dynamic for the Destination
  3. Click add

Note: It's probably a good idea to save this configuration as a session so you don't have to configure it each time.

Configure Windows to connect through the proxy

Next, we'll need to configure Windows to connect through the local proxy you just created.

  1. Open Internet Options from the Control Panel
  2. Click on the Connections tab, and then the LAN settings button
  3. Check the box Use a proxy server for your LAN and enter localhost for the Address and the port number you chose in the last step, e.g., 8888 in the Port field
  4. Click OK and OK again

Note: Alternatively, you could set up individual programs to use the proxy instead of your whole system.

Log in and connect

That's it! Just log into your SSH server like normal, and the tunnel should open up. Now you're browsing with portals tunnels.


[PHP] Json encode/decode

STUDY 2013.08.19 01:21

PHP 자체 기능으로 내장 된 json 파서 사용하기




$json_data['t'] = iconv("CP949", "UTF-8", "29");
   $json_data['r'][0] = array("d"=>"8049", "n"=>"1", "c0"=>iconv("CP949", "UTF-8", "22러8645"));
   $json_data['r'][1] = array("d"=>"8103", "n"=>"2", "c0"=>iconv("CP949", "UTF-8", "경북71고8645"));
   $json_data['r'][2] = array("d"=>"12786", "n"=>"3", "c0"=>iconv("CP949", "UTF-8", "16수8645"));
   $json_data['q'] = iconv("CP949", "UTF-8", "j");
   $json = json_encode($json_data);







$decode = json_decode($json, true);
   $array_t = $decode['t']; echo $array_t."<br/><br/>";
   $array_r = $decode['r'];
   foreach($array_r as $key => $value)
    echo $value['d']."<br/>";
    echo $value['n']."<br/>";
    echo iconv("UTF-8", "EUC-KR", $value['c0'])."<br/>";
    echo "<br/>";
   $array_q = $decode['q']; echo $array_q."<br/>";








[출처] [PHP] Json encode/decode|작성자 성야


sublime TEXT2 - sftp 설정

먼저 package control이 설치가 되어 있어야 한다.


이쪽을 통해서 package Control을 설치를 하여 Sublime text2 에 패키지 자동으로 설치해주는 툴을 미리설치랄 해야 한다.

mac 버전인 경우에는 터미널을 열고 아래와 명령어를 그대로 복사해서 입력해주면 자동으로 설치가 된다. 그런다음에 Sublime text2 를 새로 시작하면 Preferences 에 

Packages Controll 메뉴가 생길것이다.

import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

위의 방식이 잘 안되거나 직접 설정을 하고자 한다면


의 파일을 다운로드 받아 바탕화면(테스크탑)에 복사해 두고


  1. 메뉴에서 Preferences > Browse Packages… 를 클릭하여 브라우저를 열고
  2. 해당 브라우저의 상위폴더인 Installed Packages 로 이동한다.
  3. 바탕화면(테스크탑)에 복사해둔 Package%20Control.sublime-package 파일을 Installed Packages 에 넣어둔다.
  4.  Sublime Text 2 를 재실행한다.

그런 다음에 메뉴에 보면 package Controll 메뉴가 생성되는 것을 확인 할 수 있다.

<Sftp 설치>

Package Control 에서 Package Control: Install Package 를 선택하면 command 창이 뜨고 거기서  sftp 를 찾아서 설치를 하면 간단히 설치가 된다.

아니면 sublime text2  페이지를 하나 연 다음

MAC          : shitf + command + P 

WINDOWS : ctrl + p

를 누르면 검색창이 뜨게 되고 거기에서 Package Controll:Install Package를 찾으면 

금방 찾을 수 있다.

<Sftp 설정>

먼저 sftp 를 사용하기 위해서는 sftp 를 통해서 다운받아야 할 소스가 저장될 폴더가 필요하다. 

공간이 꽤 있는 스토리지(하드디스크)에 sftp 설정정보와 서버의 소스가 저장될 폴더를

미리 만들어 둔다.

(참고로 에디터플러스에 익숙한 사용자라면 헷갈리 수 있다. 기본적으로 sftp 를 통해서 

파일을 불어와서 처리를 하는데 sublime text2  는 소스를 먼저 다운을 받아 로컬상에서 처리를 하고 업로드 하는 방식이다. 이를 좀더 편하게 하기 우해서 sync 를 제공하긴 하지만

기본적으로 백업을 겸하는 안정적인 방식을 취하고 있으므로 이에 대해 혼동하지 않길 바란다.)

메뉴에서 File > Open ( 원도우 : File > Open Folder) 를 클릭하여 미리 만들어둔 폴더를 지정하여 연다

그런 다음 아래의 화면처럼 해당 폴더를 지정하고 오른쪽 마우스버튼을 클릭하여 

SFTP/FTP > Map to Remote 를 선택하여 sftp 환경설정을 할 json 파일을 만든다.

그렇게 하면 sftp-config.json 파일이 하나 만들어지게 된다.

여기에 서버정보를 입력하고 저장한다.

type : sftp 또는 ftp 둘중에 하나를 선택한다.

save_before_upload : true/ false (저장하기 전에 업로드할지 여부를 체크한다.

upload_on_save : true/false (업로드 하면서 저장할지 여부를 체크한다

sync_down_on_open : true/false (다운로드 및 오픈하면서 동기화할지 여부를 체크한다

sync_skip_deletes : true/false (삭제한 파일은 동기화에 제외시킬지 여부를 체크한다

confirm_downloads : true/false (다운로드 확인 여부를 체크한다.

confirm_overwirte_newer : true/false (확인된 파일의 덮어쓰기 여부를 체크하여 새로 만들지 여부를 체크한다.

그 아래의 설정정보는 원격서버의 계정정보 및 해당 계정의 폴더   path 정보를


다 지정하고 저장하면

해당 폴더의 하위 폴더를 클릭하여 오른쪽 마우스버튼을 클릭하면 

Upload File  내지는 Download File , Upload Folder , Download Folder  등이 


거기에서 다운받을 폴더 내지는 파일이 있으면 해당 메뉴를 선택한다.

그러면 위와 같이 해당 sftp로 설정된 원격서버의 폴더가 열리게 된다.

해당 폴더에서 다운받고자 하는 폴더 내지는 파일을 지정하고 더블클릭하면 다운받아진다. (폴더의 경우에는 Folder actions 라는 맨 윗쪽에 있는 메뉴를 선택하면 

그다음 메뉴가 뜨고 거기에서 Download 를 선택하면 폴더채로 다운받아진다.)

다운받아진 파일을을 수정하고 저장하면 sftp_config.json 파일에서 sync 부분을 설정해뒀다면 그에 맞춰서 동기화가 되면서 원격지에도 저장이 된다.


티스토리 툴바