Cygwin简介–你懂的
簡介
Cygwin 是Windows系統的一個類Linux環境的模擬器, 可在Cygwin上執行一些Linux工具.它同時能執行Win32的程序,提供了一個編程,學習,翻~~牆的環境,官網為 http://www.cygwin.com , Cygwin.DLL最新版本為1.7.9-1, 請在官忘下載setup.exe,用以安裝Cygwin
安裝
請參考這裡
http://zhidao.baidu.com/question/246916676.html?fr=qrl&cid=89&index=4
我只介紹使用命令列的工具,以下為建議安裝的套件(除了核心部件外可選的套件), 並請以Unix的PATH環境安裝
bc 1.06-2
binutils 2.21.53-1
bzip2 1.0.6-2
diffutils 2.9-1
curl 7.20.1-1
expect 20030128-1
file 5.05-1
findutils 4.5.9-2
grep 2.6.3-1
gzip 1.4-1
inetutils 1.7-2
lynx 2.8.5-4
nano 2.2.5-1(如果會用emacs,vim編輯器可以不用,適合新手)
ncurses 5.7-18
netcat 1.10-2
openssh 5.8p1-1
openssl 0.9.8r-2
perl 5.10.1-5(這個隨意,但有它可執行網上很多的腳本)
perl-libwin32 0.28-3
ping 1.0-1 (windows自帶的沒這好,可以flood ping!!)
python 2.6.5-2(gappproxy, wallproxy可以使用它執行)
readline 6.1.2-2
rsync 3.0.8-1
rxvt 20050409-21(不需安裝X Window,cmd.exe太陽春,這個必須安裝用來代替)
sharutils 4.10-2
stunnel 4.29-1 (用來翻~~強的,可以不用windows版本,速度更快)
tar 1.25-1
termcap 5.7_20091114-14
tzcode 2010j-1
unzip 6.0-10
util-linux 2.17.2-1 (Linux命令列的工具習合)
vim 7.3.003-1
wget 1.12-1
which 2.20-2
whois 5.0.11-1(查詢IP資訊,如果不安裝可自行編寫)
wput 0.6.2-1
zsync 0.6.2-1
其它gawk,sed就不列入,該是核心套件, 此外請下載plink win32 dev 版本, http://tartarus.org/~simon/putty-snapshots/x86/plink.exe , Cygwin 能執行它, 如果需要其它套件或反安裝,在setup.exe可以選擇就成,安裝完成後請編輯cygwin.bat,以我的windows xp sp3 為例子,以文本編輯器編輯D:\cygwin\Cygwin.bat, 裡面的批處理改為
@echo off
D:
REM chdir D:\cygwin\bin
REM set CYGWIN=codepage:oem tty binmode title
REM rxvt -e bash –login -i
CD D:\cygwin\bin
rxvt -sr -sl 2500 -sb -geometry 90×30 -tn rxvt -fn "Lucida Console-14" -e /usr/bin/bash –login -i
雙擊批處理運行cygwin, 現在你已進入Unix的世界裡,bash在家目錄會生成 .bash_profile和.bashrc,這是bash的設定檔,在家目錄製造一個bin目錄, mkdir bin ,把plink.exe放進去, 以nano編輯 .bash_profile , 加入以下
export PATH="$PATH:/arch/cygwin.i386/bin:$HOME/bin"
儲存後執行source .bash_profile, OK
Cygwin翻~~強方式
先介紹原生的Stunnel, 先執行cd /etc/stunnel/ , 然後執行 cp stunnel.conf-sample stunnel.conf, ,找到
; Certificate/key is needed in server mode and optional in client mode
cert = /etc/stunnel/mail.pem
;key = /etc/stunnel/mail.pem
改為
; Certificate/key is needed in server mode and optional in client mode
;cert = /etc/stunnel/mail.pem
;key = /etc/stunnel/mail.pem
郵箱不用stunnel,往下
; Some security enhancements for UNIX systems – comment them out on Win32
chroot = /var/lib/stunnel/
setuid = nobody
setgid = nobody
; PID is created inside the chroot jail
pid = /stunnel.pid
全部註解成
;chroot = /var/lib/stunnel/
;setuid = nobody
;setgid = nobody
; PID is created inside the chroot jail
;pid = /stunnel.pid
因為這是M$ Windows啊 , 往下找到
; Use it for client mode
;client = yes
改為
; Use it for client mode
client = yes
我們只需客戶端, 再往下找到
;[https]
;accept = 443
;connect = 80
;TIMEOUTclose = 0
改為
[https]
accept = 127.0.0.1:1984
connect = xxx.xxx.xxx.xxx:443
;TIMEOUTclose = 0
xxx.xxx.xxx.xxx 是服務器IP , 以下我給出一枚美國的IP,可用在stunnel, 例如
accept = 127.0.0.1:1984
connect = 204.93.160.144:443
;TIMEOUTclose = 0
怎樣找尋stunnel可用的代理,請參考小弟的舊帖 https://cmded.net/forum/index.php?topic=2807.0
然後我們需生成一個stunnel.pem在 /etc/stunnel/目錄內,執行
執行中會要求輸入資料,全部按ENTER鍵即可, 這時可執行stunnel , 如果沒有甚麼錯誤消息,該是執行成功了,請執行
ps ux看看是否這樣?
$ ps ux
PID PPID PGID WINPID TTY UID STIME COMMAND
3928 1 3928 3928 con 1005 05:31:22 /usr/bin/rxvt
896 3928 896 696 0 1005 05:31:24 /usr/bin/bash
2652 1 2452 2652 0 1005 09:30:32 /usr/bin/stunnel
584 1 2452 584 0 1005 09:30:32 /usr/bin/stunnel
3504 1 2452 3504 0 1005 09:30:32 /usr/bin/stunnel
3508 1 2452 3508 0 1005 09:30:32 /usr/bin/stunnel
3168 1 2452 3168 0 1005 09:30:32 /usr/bin/stunnel
2228 1 2228 2228 ? 1005 09:30:32 /usr/bin/stunnel
2544 896 2544 2064 0 1005 09:41:48 /usr/bin/ps
nc10@your-5554c55be4 ~
$
打開你的瀏覽器找個敏感詞網站訪問,看看是否成功?如要停止運行stunnel, 只需使用kill PID就可中止, 但這太麻煩,我已編寫了腳本,名字隨意,只需執行它就能停止stunnel, chmod +x 腳本名,放到$HOME/bin
# stop stunnel
IsRun(){
ps ux | awk '$NF ~ /stunnel/{ print $1 }'
}
SPID=$(IsRun)
kill $SPID
到此stunnel的翻~~強已介紹完畢,以下會介紹ssh, 很多網友都會有自己的ssh, Cygwin已有原生的openssh, 只需在命令列下鍵入 ssh user@host -vNfD 7070 ,然後輸入密碼,即可使用端口轉發翻~~強, 另一方式是使用windows的plink.exe, 只需鍵入
plink host -N -ssh -2 -P port -l user -pw pass -D 7070 -v 即有相同效果, plink的好處是支援密碼發送,不能登錄的端口轉發
ssh account比較方便,不然需要以expact腳本發送密碼, 對於一些公益的ssh更可以腳本使用, 例如老N的博客提供每半小時改密碼並斷開的ssh端口轉發服務,我們可以用bash腳本取得密碼,斷開後自動重新連接
#! /bin/bash
url="http://neolee.com/free-ssh/"
host="ineolee.co.cc" # IP: 173.213.115.224
user="freessh"
lport=7070
STATUS=1
while (( STATUS > 0 )) ; do
pw=$(curl -s "$url" | sed '/http:\/\/www.clocklink.com\/.*/!d;s/^.*=pass://')
plink "$host" -N -ssh -2 -P 22 -l "$user" -pw "$pw" -D $lport -v
wait
done
這是在Cygwin上ssh翻~~強方式,同樣可在LINUX下使用, 往下介紹Cygwin內的python 執行gappproxy, 先到appengine.google.com 開通賬號並建立自己的應用, 往 http://code.google.com/intl/zh-CN/appengine/downloads.html
下載Google App Engine SDK for Python,選Linux/其他平台,最新版本為1.5.2 – 2011-07-21, 到gappproxy項目主頁下載
localproxy-2.0.0.tar.gz fetchserver-2.0.0.zip, 在家目錄下解開pyhton SDK, localproxy-2.0.0.tar.gz 和 fetchserver-2.0.0.zip, 你可使用WINDOWS的winrar,或是使用cygwin的tar , unzip等工具,例如
unzip -n fetchserver-2.0.0.zip google_appengine_1.5.2.zip
tar zxvf localproxy-2.0.0.tar.gz
其它部署gappproxy全部一樣, 請參考項目教學, 把修改好的fetchserver-2.0.0目錄放到google_appengine_1.5.2目錄裡,
chmod +x appcmd.py 後執行./appcmd.py update fetchserver-2.0.0, 完成後執行 lynx http(s)://your-appid.appspot.com/fetch.py, 看看是不是出現
GAppProxy/2.0.0
___________________________________________________________________________
GAppProxyHTTP Proxy,Python,Google App Engine.
___________________________________________________________________________
,GAppProxy.
___________________________________________________________________________
Powered by Google App Engine
___________________________________________________________________________
這樣的畫面,如果是就是成功了,lynx按'q'鍵退出, 轉到localproxy-2.0.0目錄,設定好proxy.conf, 然後chmod +x proxy.py
執行 ./proxy.py 就會連上, 現在可用它來翻~~強了
結語
Cygwin還有其他的工具,例如connect-proxy,只是我沒有測試使用,就不列出來了,使用CYGWIN等如在學習使用UNIX/LINUX,且能學習編程,組建服務器,作為對WINDOWS系統管理的工具,雖然LINUX的工具不是100%都移植到
CYGWIN,例如free這命令就沒有了,但它有著相同的結構,/proc/meminfo這個文件還是有的,很容易就能以腳本
寫出一個代替品, 今天到此完結,未來我會嘗試利用Cygwin自動尋找stunnel可用的免費服務器並自動連接,當然不一定成功,
也不知那天會完成?
分享到: | |
以前用过。但是没有深入研究
其实呢,还是vpn比较舒服