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環境安裝

程序代码:
bash                    4.1.10-4 (現在該是核心套件,以前是ash)
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

全部註解成

程序代码:
; 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

因為這是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, 例如

程序代码:
[https]
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/目錄內,執行

程序代码:
openssl req -new -x509 -days 365 -nodes -out stunnel.pem -keyout stunnel.pem

執行中會要求輸入資料,全部按ENTER鍵即可, 這時可執行stunnel , 如果沒有甚麼錯誤消息,該是執行成功了,請執行
ps ux看看是否這樣?

程序代码:
nc10@your-5554c55be4 ~
$ 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

程序代码:
#! /bin/bash
# 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可用的免費服務器並自動連接,當然不一定成功,
也不知那天會完成?

欢迎大佬支持本博客的发展 -- Donate --

本文链接:Cygwin简介--你懂的

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
    • DH
    • 2011年08月15日

    以前用过。但是没有深入研究

  1. 没有通告